はじめに
Windows PowerShellは.NET Frameworkをベースとした非常に強力なシェルです。ただし、独自のコマンドレットを作成し、Windows PowerShellを拡張できることについてあまり知られていないかと思います。今回から数回にわたり、コマンドレットの開発手法について説明します。
開発環境について
開発環境はVisual Studio 2005以降(説明はVisual Studio 2008 Professional Edition、言語はVB.NET)を想定しています。
Microsoft Windows SDKをダウンロードし、インストールしてください。
また、Windows PowerShellがインストールされていることを前提としています。インストール方法は『Windows PowerShell入門(1) - 基本操作編』を参照ください。
PSスナップイン
PowerShell用の独自コマンドレットを作成するには、.NET Frameworkを用いてPSスナップインを作成する必要があります。「PSスナップイン」とはPowerShellのプロバイダやコマンドレットを含むファイルのことで、Visual Studioでクラスライブラリとして開発を行います。
PowerShellにはあらかじめ下記のPSスナップインが登録されており、Get-PSSnapinコマンドレットで確認できます。
PSスナップイン | 説明 |
Microsoft.PowerShell.Core | Windows PowerShell のコンポーネントを管理するコマンドレット |
Microsoft.PowerShell.Host | Windows PowerShell ホストで使用するコマンドレット |
Microsoft.PowerShell.Management | Windows コンポーネントの管理に使用する管理コマンドレット |
Microsoft.PowerShell.Security | Windows PowerShell のセキュリティを管理するためのコマンドレット |
Microsoft.PowerShell.Utility | データの操作に使用できるユーティリティ コマンドレット |
新規プロジェクトの作成と初期設定
はじめにVisual Studioを起動し、新しいプロジェクトの作成で、言語にVisual Basic、テンプレートにクラスライブラリを選択します。ファイル名と場所を入力して[OK]ボタンを押してください(ここではファイル名を「My.PowerShell.Cmdlets」、場所を「C:\Work」とします)。
プロジェクトを作成すると、デフォルトで「Class1.vb」というファイルが追加されています。まずはこのファイルを削除します。
次に、PSスナップインを開発する上で欠かせない以下のdllを参照設定に追加します。
追加するdll | 参照先 |
System.Management.Automation.dll | C:\Program Files\Reference Assemblies\Microsoft\WindowsPowerShell\v1.0 |
System.Configuration.Install.dll | System.Configuration.Install.dll |
上記はWindows PowerShellおよびWindows SDKを既定通りインストールした場合です。必要に応じて適宜読み替えてください。