適用対象: Windows PowerShell 2.0、Windows PowerShell 3.0
次のトピックでは、さまざまなバージョンの Windows に PowerShell SDK をインストールする方法について説明します。
Windows 8 および Windows Server 2012 用 Windows PowerShell 3.0 SDK のインストール
Windows PowerShell 3.0 は、Windows 8 および Windows Server 2012 と共に自動的にインストールされます。 さらに、Windows 8 SDK の一部として、Windows PowerShell 3.0 の参照アセンブリをダウンロードしてインストールできます。 これらのアセンブリを使用すると、Windows PowerShell 3.0 用のコマンドレット、プロバイダー、およびホスト プログラムを記述できます。 Windows SDK for Windows 8 をインストールすると、Windows PowerShell アセンブリは参照アセンブリ フォルダーの \Program Files (x86)\Reference Assemblies\Microsoft\WindowsPowerShell\3.0
に自動的にインストールされます。 詳細については、Windows 8 SDK のダウンロード サイトを参照してください。 Windows PowerShell コード サンプルは、powershell-sdk-samples リポジトリでも入手できます。
参照アセンブリ
参照アセンブリは、既定で次の場所にインストールされます: C:\Program Files\Reference Assemblies\Microsoft\WindowsPowerShell\V1.0
。
注
Windows PowerShell 2.0 アセンブリに対してコンパイルされたコードは、Windows PowerShell 1.0 のインストールに読み込むことができません。 ただし、Windows PowerShell 1.0 アセンブリに対してコンパイルされたコードは、Windows PowerShell 2.0 のインストールに読み込むことができます。
サンプル
コード サンプルは、既定で次の場所にインストールされます: C:\Program Files\Microsoft SDKs\Windows\v7.0\Samples\sysmgmt\WindowsPowerShell\
。 次のセクションでは、各サンプルの機能について簡単に説明します。
コマンドレットのサンプル
- GetProcessSample01 - ローカル コンピューター上のすべてのプロセスを取得する単純なコマンドレットを記述する方法を示します。
- GetProcessSample02 - コマンドレットにパラメーターを追加する方法を示します。 コマンドレットは 1 つ以上のプロセス名を受け取り、一致するプロセスを返します。
- GetProcessSample03 - パイプラインからの入力を受け入れるパラメーターを追加する方法を示します。
- GetProcessSample04 - 終了しないエラーを処理する方法を示します。
- GetProcessSample05 - 指定されたプロセスの一覧を表示する方法を示します。
- SelectObject - 特定のオブジェクトのみを選択するフィルターを記述する方法を示します。
- SelectString - 指定されたパターンのファイルを検索する方法を示します。
- StopProcessSample01 - PassThru パラメーターを実装する方法と、ShouldProcess メソッドと ShouldContinue メソッドの呼び出しによってユーザー フィードバックを要求する方法を示します。 ユーザーは、コマンドレットがオブジェクトを返すように強制する場合に、PassThru パラメーターを指定します。
- StopProcessSample02 - 特定のプロセスを停止する方法を示します。
- StopProcessSample03 - パラメーターのエイリアスを宣言する方法と、ワイルドカードをサポートする方法を示します。
- StopProcessSample04 - パラメーター セットを宣言する方法、コマンドレットが入力として受け取るオブジェクト、および使用する既定のパラメーター セットを指定する方法を示します。
リモート処理のサンプル
- RemoteRunspace01 - リモート接続を確立するために使用されるリモート実行空間を作成する方法を示します。
- RemoteRunspacePool01 - リモート実行空間プールを構築する方法と、このプールを使用して複数のコマンドを同時に実行する方法を示します。
- Serialization01 - 既存の .NET クラスを確認し、このクラスの選択したパブリック プロパティの情報がシリアル化/逆シリアル化の間で保持されることを確認する方法を示します。
- Serialization02 - 既存の .NET クラスを確認し、クラスのパブリック プロパティで情報を使用できない場合に、このクラスのインスタンスからの情報がシリアル化/逆シリアル化の間で保持されることを確認する方法を示します。
- Serialization03 - 既存の .NET クラスを確認し、このクラスと派生クラスのインスタンスがライブ .NET オブジェクトに逆シリアル化 (リハイドレート) されていることを確認する方法を示します。
イベントのサンプル
- Event01 - ObjectEventRegistrationBase から派生してイベント登録用のコマンドレットを作成する方法を示します。
- Event02 - リモート コンピューターで生成された Windows PowerShell イベントの通知を受信する方法を示します。 Runspace クラスを介して公開されている PSEventReceived イベントを使用します。
ホスティング アプリケーションのサンプル
- Runspace01 - PowerShell クラスを使用して、
Get-Process
コマンドレットを同期的に実行する方法を示します。Get-Process
コマンドレットは、ローカル コンピューターで実行されている各プロセスの Process オブジェクトを返します。 - Runspace02 - PowerShell クラスを使用して、
Get-Process
コマンドレットとSort-Object
コマンドレットを同期的に実行する方法を示します。Get-Process
コマンドレットは、ローカル コンピューターで実行されている各プロセスの Process オブジェクトを返し、Sort-Object
は Id プロパティに基づいてオブジェクトを並べ替えます。 これらのコマンドの結果は、DataGridView コントロールを使用して表示されます。 - Runspace03 - PowerShell クラスを使用してスクリプトを同期的に実行する方法と、終了しないエラーを処理する方法を示します。 スクリプトはプロセス名の一覧を受け取り、それらのプロセスを取得します。 スクリプトの実行時に生成された終了しないエラーを含むスクリプトの結果は、コンソール ウィンドウに表示されます。
- Runspace04 - PowerShell クラスを使用してコマンドを実行する方法と、コマンドの実行時にスローされる終了エラーをキャッチする方法を示します。 2 つのコマンドが実行され、最後のコマンドには無効なパラメーター引数が渡されます。 その結果、オブジェクトは返されず、終了エラーがスローされます。
- Runspace05 - Runspace を開いたときにスナップインのコマンドレットを使用できるように、InitialSessionState オブジェクトにスナップインを追加する方法を示します。 スナップインには、PowerShell オブジェクトを使用して同期的に実行される Get-Proc コマンドレット (GetProcessSample01 サンプルで定義) が用意されています。
- Runspace06 - InitialSessionState オブジェクトにモジュールを追加して、実行空間を開いたときにモジュールが読み込まれるようにする方法を示します。 このモジュールには、PowerShell オブジェクトを使用して同期的に実行される Get-Proc コマンドレット (GetProcessSample02 サンプルで定義) が用意されています。
- Runspace07 - 実行空間を作成し、その実行空間を使用して PowerShell オブジェクトを使用して 2 つのコマンドレットを同期的に実行する方法を示します。
- Runspace08 - PowerShell オブジェクトのパイプラインにコマンドと引数を追加する方法と、コマンドを同期的に実行する方法を示します。
- Runspace09 - PowerShell オブジェクトのパイプラインにスクリプトを追加する方法と、スクリプトを非同期的に実行する方法を示します。 イベントは、スクリプトの出力を処理するために使用されます。
- Runspace10 - 既定の初期セッション状態を作成する方法、InitialSessionState にコマンドレットを追加する方法、初期セッション状態を使用する実行空間を作成する方法、PowerShell オブジェクトを使用してコマンドを実行する方法を示します。
- Runspace11 - ProxyCommand クラスを使用して、既存のコマンドレットを呼び出すが、使用可能なパラメーターのセットを制限するプロキシ コマンドを作成する方法を示します。 その後、プロキシ コマンドは、制約付き実行空間の作成に使用される初期セッション状態に追加されます。 これは、ユーザーがプロキシ コマンドを使用してのみコマンドレットの機能にアクセスできることを意味します。
- PowerShell01 - InitialSessionState オブジェクトを使用して、制約付き実行空間を作成する方法を示します。
- PowerShell02 - 実行空間プールを使用して複数のコマンドを同時に実行する方法を示します。
ホストのサンプル
- Host01 - カスタム ホストを使用するホスト アプリケーションを実装する方法を示します。 このサンプルでは、カスタム ホストを使用する実行空間を作成し、PowerShell API を使用して、
exit
を呼び出すスクリプトを実行します。 その後、ホスト アプリケーションはスクリプトの出力を確認し、結果を出力します。 - Host02 - カスタム ホスト実装と共に Windows PowerShell ランタイムを使用するホスト アプリケーションを記述する方法を示します。 ホスト アプリケーションは、ホスト カルチャをドイツ語に設定し、
Get-Process
コマンドレットを実行し、pwrsh.exeを使用して結果を表示し、ドイツ語で現在のデータと時刻を出力します。 - Host03 - コマンド ラインからコマンドを読み取り、コマンドを実行して結果をコンソールに表示する、対話型のコンソール ベースのホスト アプリケーションを構築する方法を示します。
- Host04 - コマンド ラインからコマンドを読み取り、コマンドを実行して結果をコンソールに表示する、対話型のコンソール ベースのホスト アプリケーションを構築する方法を示します。 このホスト アプリケーションでは、ユーザーが複数の選択肢を指定できるようにするプロンプトの表示もサポートしています。
- Host05 - コマンド ラインからコマンドを読み取り、コマンドを実行し、結果をコンソールに表示する、対話型のコンソール ベースのホスト アプリケーションを構築する方法を示します。 このホスト アプリケーションでは、
Enter-PSSession
コマンドレットとExit-PSSession
コマンドレットを使用したリモート コンピューターへの呼び出しもサポートしています。 - Host06 - コマンド ラインからコマンドを読み取り、コマンドを実行し、結果をコンソールに表示する、対話型のコンソール ベースのホスト アプリケーションを構築する方法を示します。 さらに、このサンプルではトークナイザー API を使用して、ユーザーが入力するテキストの色を指定します。
プロバイダーのサンプル
AccessDBProviderSample01 - CmdletProvider クラスから直接派生するプロバイダー クラスを宣言する方法を示します。 ここでは完全性のみを目的として含まれています。
AccessDBProviderSample02 - NewDrive メソッドと RemoveDrive メソッドを上書きして、
New-PSDrive
およびRemove-PSDrive
コマンドレットの呼び出しをサポートする方法を示します。 このサンプルのプロバイダー クラスは、DriveCmdletProvider クラスから派生しています。AccessDBProviderSample03 - GetItem メソッドと SetItem メソッドを上書きして、
Get-Item
コマンドレットとSet-Item
コマンドレットの呼び出しをサポートする方法を示します。 このサンプルのプロバイダー クラスは ItemCmdletProvider クラスから派生しています。AccessDBProviderSample04 - コンテナー メソッドを上書きして、
Copy-Item
、Get-ChildItem
、New-Item
、およびRemove-Item
コマンドレットの呼び出しをサポートする方法を示します。 これらのメソッドは、データ ストアにコンテナーである項目が含まれている場合に実装する必要があります。 コンテナーは、共通の親項目の下にある子項目のグループです。 このサンプルのプロバイダー クラスは ItemCmdletProvider クラスから派生しています。AccessDBProviderSample05 - コンテナー メソッドを上書きして、
Move-Item
およびJoin-Path
コマンドレットの呼び出しをサポートする方法を示します。 これらのメソッドは、ユーザーがコンテナー内で項目を移動する必要がある場合、およびデータ ストアに入れ子になったコンテナーが含まれている場合に実装する必要があります。 このサンプルのプロバイダー クラスは、NavigationCmdletProvider クラスから派生しています。AccessDBProviderSample06 - コンテンツ メソッドを上書きして、
Clear-Content
、Get-Content
、およびSet-Content
コマンドレットの呼び出しをサポートする方法を示します。 これらのメソッドは、ユーザーがデータ ストア内のアイテムのコンテンツを管理する必要がある場合に実装する必要があります。 このサンプルのプロバイダー クラスは NavigationCmdletProvider クラスから派生し、IContentCmdletProvider インターフェイスを実装します。
PowerShell