パイプを使用したコマンドレットの結合

Windows PowerShell は、.NET 共通言語ランタイム (CLR) および .NET Framework の基礎の上に構築されています。そのため、テキストを受け付けて返す大部分のコマンド ライン シェルとは異なり、Windows PowerShell コマンドレットは .NET オブジェクトを受け付けて返します。Windows PowerShell と AppFabric でのこの機能の使用方法の 1 つは、1 つのコマンドレットの実行結果を別のコマンドレットの入力として渡すことです。コマンドレットを結合するこのプロセスは、パイプ処理またはパイプライン処理と呼ばれます。

パイプ処理はコマンドレットへの入力の作成を自動化する場合に非常に便利です。AppFabric のパイプ処理の一般的なシナリオは、Get コマンドレットの結果をコントロール コマンドレット、構成コマンドレット、または別の Get コマンドレットに渡すためのパイプです。たとえば、Get-Application コマンドレットを Get-ApplicationService コマンドレットにパイプで渡し、Web サイトで実行される各アプリケーション用に展開されたすべてのサービスに関する情報を返すことができます。Web サイトに対して Get-Application コマンドレットを実行すると、サイトで実行されているすべてのアプリケーションに関する情報が返されます。その情報 (具体的には各アプリケーションの名前) を Get-ApplicationService コマンドレットにパイプで渡すと、各アプリケーション用に展開されたすべてのサービスに関する情報が返されます。これを手動で行うことは容易ではありません。パイプを使用すると、1 行のコードを作成するだけで済みます。

1 つのコマンドで 2 つのコマンドレットをパイプ処理するには、パイプ文字でコマンドレットを接続します。パイプ文字の左側にあるコマンドレット プロデューサーの出力が、パイプによって、パイプ文字の右側にあるコマンドレット コンシューマーに渡されます。これはすべてのコマンドレットで可能なわけではありません。これを可能にする条件が 2 つあります。つまり、コマンドレット プロデューサーの出力オブジェクトのデータ型がコマンドレット プロデューサーの入力オブジェクトのデータ型に一致すること、または、コマンドレット プロデューサーの出力オブジェクトのプロパティ名が、コマンドレット コンシューマーのパラメーター名に一致することです。

コマンドレット コンシューマーによって生成された出力オブジェクトを別のコマンドレットにパイプで渡すことができます。以降、さらに別のコマンドレットへと次々に渡していくことができます。その結果、一連の簡単なコマンドから成るコマンド チェーン (パイプライン) になります。

パイプ処理によって結合できる AppFabric コマンドレットの一覧については、「コマンドレット パイプ」を参照してください。コマンドレット プロデューサーによって生成され、コマンドレット コンシューマーによって使用されるオブジェクトの詳細については、「コマンドレットのデータ型」を参照してください。

パイプ処理の動作の詳細については、Microsoft TechNet で「about_Pipelines」のトピック (http://go.microsoft.com/fwlink/?LinkId=113246) を参照してください。

  2012-03-05