パイプライン処理

 

適用先: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

トピックの最終更新日: 2006-08-15

Exchange 管理シェルでのパイプライン処理は、あるコマンドレットで操作を実行するときに、別のコマンドレットの出力を使用するためのものです。パイプライン処理は、パイプ記号 "|" を使用して実行します。同じ名詞コマンドレット セットのすべての動詞は、別のコマンドからパイプライン処理をとおして渡された情報を使用できます。一部の名詞コマンドレット セットでは、パイプラインをとおして別の名詞コマンドレット セットにデータを渡すこともできます。

パイプライン処理を使用した複数の操作の実行

パイプライン処理を使用して 2 つ以上のコマンドレットの操作を結合すると、Exchange 管理シェルが組み合わせ処理を可能にし、小さいコンポーネントを組み合わせることで、より強力な処理を実行できます。たとえば、あるコマンドレットを使用してデータを収集します。次に、そのデータを 2 番目のコマンドレットに渡し、データにフィルタを適用してサブセットに分類します。さらに、そのデータを 3 番目のコマンドレットに渡してサブセットのみを処理します。

たとえば、次のコマンドは、パイプライン処理を使用して Server1 上のすべてのメールボックスを Server2 上の Executives データベースに移動します。ここでは、Get-Mailbox コマンドレットからパイプライン処理によって渡された出力に基づいて、Move-Mailbox コマンドレットを使用しています。

Get-Mailbox -Server Server1 | Move-Mailbox -TargetDatabase Server2\Executives

パイプライン処理を使用した別のコマンドレットのデータの処理

パイプライン処理を使用して、あるコマンドレットによって出力されたデータを処理することもできます。たとえば、HandleCount プロパティが 400 より大きいすべてのプロセスの一覧を取得するには、次のコマンドを実行します。

Get-Process | Where { $_.HandleCount -gt 400 } | Format-List

この例では、Get-Process コマンドレットは Where-Object コマンドレットにオブジェクトを渡します。Where-Object コマンドレットは、HandleCount というプロパティを持ち、その値が 400 より大きいオブジェクトを選択します。

この例では、HandleCount プロパティの前に $_ 変数が使用されています。この変数は、現在のパイプライン オブジェクトを格納するために、Exchange 管理シェルによって自動的に作成されます。次に、Where-Object コマンドレットは、これらのオブジェクトを表示するために Format-List コマンドレットに送ります。 

テキストではなく構造化オブジェクトを使用することは、Exchange 管理シェルの最も優れた機能の 1 つです。構造化オブジェクトの使用は、強力な組み合わせ型の管理モデルの基礎を形成しています。

構造化オブジェクトの詳細については、「構造化データ」を参照してください。

パイプライン処理を使用したエラー報告

エラーを報告するには、エラー パイプラインを使用できます。エラー パイプラインを使用すると、コマンドの実行中にエラーを報告できます。つまり、コマンドの実行が終了するまで待ったり、エラー情報を標準の結果パイプラインに格納したりする必要がありません。Write-Error コマンドレットは、引数をエラー パイプラインに書き込みます。

パイプライン処理の詳細については、Exchange 管理シェルで次のコマンドを実行してください。

Get-Help About_Pipeline

参照している情報が最新であることを確認したり、他の Exchange Server 2007 ドキュメントを見つけたりするには、Exchange Server TechCenter を参照してください。