Powershell-スクリプト
WindowsPowerShellは command-line shell そして scripting languageシステム管理用に特別に設計されています。Linuxでのその類似物は、Bashスクリプトと呼ばれます。.NETFramework上に構築されたWindowsPowerShellは、ITプロフェッショナルがWindowsオペレーティングシステムとWindowsServer環境で実行されるアプリケーションの管理を制御および自動化するのに役立ちます。
と呼ばれるWindowsPowerShellコマンド cmdlets、コマンドラインからコンピュータを管理できます。Windows PowerShellプロバイダーを使用すると、ファイルシステムにアクセスするのと同じくらい簡単に、レジストリストアや証明書ストアなどのデータストアにアクセスできます。
さらに、Windows PowerShellには、豊富な式パーサーと完全に開発されたスクリプト言語があります。つまり、簡単に言えば、GUIなどで行うすべてのタスクを完了することができます。Windows PowerShellスクリプティングは、完全に開発されたスクリプト言語であり、豊富な式パーサー/を備えています。
特徴
Cmdlets −コマンドレットは、レジストリ、サービス、プロセス、イベントログの管理、Windows Management Instrumentation(WMI)の使用など、一般的なシステム管理タスクを実行します。
Task oriented − PowerShellスクリプト言語はタスクベースであり、既存のスクリプトとコマンドラインツールをサポートします。
Consistent design−コマンドレットとシステムデータストアは共通の構文を使用し、共通の命名規則があるため、データ共有は簡単です。あるコマンドレットからの出力は、操作なしで別のコマンドレットにパイプライン処理できます。
Simple to Use −簡略化されたコマンドベースのナビゲーションにより、ユーザーはファイルシステムナビゲーションと同様にレジストリやその他のデータストアをナビゲートできます。
Object based− PowerShellは、強力なオブジェクト操作機能を備えています。オブジェクトは、他のツールやデータベースに直接送信できます。
Extensible interface. − PowerShellは、独立系ソフトウェアベンダーやエンタープライズ開発者が、PowerShellを使用してソフトウェアを管理するカスタムツールやユーティリティを構築できるため、カスタマイズ可能です。
変数
PowerShell変数は名前付きオブジェクトです。PowerShellはオブジェクトを操作するため、これらの変数はオブジェクトを操作するために使用されます。
変数の作成
変数名は$で始まる必要があり、名前に英数字とアンダースコアを含めることができます。変数は、有効な変数名を入力することで作成できます。
PowerShellISEコンソールで次のコマンドを入力します。D:\ testフォルダーにいると仮定します。
$location = Get-Location
ここでは、変数$ locationを作成し、Get-Locationコマンドレットの出力を割り当てました。現在の場所が含まれています。
変数の使用
PowerShellISEコンソールで次のコマンドを入力します。
$location
出力
PowerShellコンソールで次の出力を確認できます。
Path
----
D:\test
変数の情報を取得する
Get-Memberコマンドレットは、使用されている変数のタイプを通知できます。以下の例を参照してください。
$location | Get-Member
出力
PowerShellコンソールで次の出力を確認できます。
TypeName: System.Management.Automation.PathInfo
Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
Drive Property System.Management.Automation.PSDriveInfo Drive {get;}
Path Property System.String Path {get;}
Provider Property System.Management.Automation.ProviderInfo Provider {get;}
ProviderPath Property System.String ProviderPath {get;}