ja-JP/about_Remote_Output.help.txt
|
TOPIC about_Remote_Output 簡単な説明 リモートコマンドの出力を解釈および書式設定する方法について説明します。 詳細な説明 リモートコンピューターで実行されたコマンドの出力は、ローカルコンピュータ ーで実行された同じコマンドの出力と似ているように見えますが、いくつかの重 要な違いがあります。 このトピックでは、リモートコンピューターで実行されたコマンドの出力を解釈、 書式設定、表示する方法について説明します。 コンピューター名を表示する Invoke-Command コマンドレットを使ってリモートコンピューターでコマンドを実 行すると、データを生成したコンピューターの名前を含むオブジェクトが返され ます。PSComputerName プロパティには、リモートコンピューター名が含まれま す。 多くのコマンドでは、PSComputerName は既定で表示されます。たとえば、次のコ マンドは Server01 と Server02 の 2 台のリモートコンピューターで Get-Culture コマンドを実行します。以下に示す出力には、コマンドが実行されたリモートコ ンピューターの名前が含まれます。 Invoke-Command -ScriptBlock {Get-Culture} -ComputerName Server01, Server02 LCID Name DisplayName PSComputerName ---- ---- ----------- -------------- 1033 en-US English (United States) Server01 1033 es-AR Spanish (Argentina) Server02 Invoke-Command の HideComputerName パラメーターを使うと、PSComputerName プ ロパティを非表示にできます。このパラメーターは、1 台のリモートコンピュータ ーからのみデータを収集するコマンド向けに設計されています。 次のコマンドは、Server01 リモートコンピューターで Get-Culture コマンドを実 行します。HideComputerName パラメーターを使って、PSComputerName プロパティ と関連するプロパティを非表示にします。 $invokeCommandSplat = @{ ScriptBlock = {Get-Culture} ComputerName = 'Server01' HideComputerName = $true } Invoke-Command @invokeCommandSplat LCID Name DisplayName ---- ---- ----------- 1033 en-US English (United States) PSComputerName プロパティが既定で表示されない場合でも、表示することができ ます。 たとえば、次のコマンドは Format-Table コマンドレットを使って、リモートの Get-Date コマンドの出力に PSComputerName プロパティを追加します。 $invokeCommandSplat = @{ ScriptBlock = {Get-Date} ComputerName = 'Server01', 'Server02' } Invoke-Command @invokeCommandSplat | Format-Table DateTime, PSComputerName -AutoSize DateTime PSComputerName -------- -------------- Monday, July 21, 2008 7:16:58 PM Server01 Monday, July 21, 2008 7:16:58 PM Server02 逆シリアル化されたオブジェクト 出力を生成するリモートコマンドを実行すると、コマンドの出力はネットワーク を介してローカルコンピューターに転送されます。 ライブの .NET オブジェクトはネットワーク経由で転送できないため、ライブオ ブジェクトはシリアル化されます。つまり、オブジェクトとそのプロパティの XML 表現に変換されます。PowerShell は、シリアル化されたオブジェクトをネットワ ーク経由で転送します。 ローカルコンピューターでは、PowerShell はシリアル化されたオブジェクトを受 け取り、シリアル化されたオブジェクトを標準の .NET オブジェクトに変換するこ とで逆シリアル化します。 ただし、逆シリアル化されたオブジェクトはライブオブジェクトではありません。 シリアル化された時点でのオブジェクトのスナップショットです。逆シリアル化さ れたオブジェクトには、プロパティは含まれますがメソッドは含まれません。これ らのオブジェクトは、パイプラインに渡したり、選択したプロパティを表示した り、書式設定したりするなど、PowerShell で使用および管理できます。 ほとんどの逆シリアル化されたオブジェクトは、Types.ps1xml ファイルまたは Format.ps1xml ファイルのエントリによって、表示用に自動的に書式設定されま す。ただし、ローカルコンピューターには、リモートコンピューターで生成された すべてのオブジェクトの書式設定ファイルが存在しない場合があります。オブジェ クトが書式設定されない場合は、各オブジェクトのすべてのプロパティがストリー ミングリストとしてコンソールに表示されます。 オブジェクトが自動的に書式設定されない場合は、Format-Table や Format-List などの書式設定コマンドレットを使って、選択したプロパティを書式設定して表示 できます。または、Out-GridView コマンドレットを使って、オブジェクトをテー ブルで表示できます。 ローカルコンピューターに存在しないコマンドレットを使うコマンドをリモートコ ンピューターで実行する場合、それらのオブジェクト型の書式設定ファイルがコン ピューターに存在しないと、コマンドが返すオブジェクトが期待どおりに書式設定 されないことがあります。別のコンピューターから書式設定データを取得するに は、Get-FormatData コマンドレットと Export-FormatData コマンドレットを使い ます。 DirectoryInfo オブジェクトや GUID などの一部のオブジェクト型は、受け取られ たときにライブオブジェクトに変換し戻されます。これらのオブジェクトには、特 別な処理や書式設定は必要ありません。 結果を並べ替える コマンドレットの ComputerName パラメーターでのコンピューター名の順序によっ て、PowerShell がリモートコンピューターに接続する順序が決まります。ただし、 結果はリモートコンピューターからデータが受信された順序で表示されます。 Sort-Object コマンドレットを使うと、PSComputerName で結果を並べ替えること ができます。オブジェクトの他のプロパティで並べ替えると、異なるコンピュータ ーからの結果が出力内で交互に並びます。 関連項目 about_Remote about_Remote_Variables Invoke-Command Get-EventLog Out-GridView Select-Object Get-Process Get-Service Format-Table Get-WmiObject ---- 原文: PowerShell-Docs (CC BY 4.0) の翻訳 / PSHelpJaJP |