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