出力
標準出力ストリームに書き込まれる出力は、コンピュータ出力ファイルに書き込まれます。 Security Controls スクリプト エンジンでエラーが検出された場合は、詳細なエラー メッセージがコンピュータ エラー ファイルに書き込まれます。
出力ファイルの書式を明示的に設定することをお勧めします。 出力の書式を明示的に設定しない場合、既定の書式が使用されます。 出力されるフィールドと、表示方法が制限されます。
PowerShell remoting を使用しているスクリプトでは、出力の書式を設定することが特に重要です。 リモート スクリプトの既定の動作は、ターゲット コンピュータでスクリプト出力オブジェクトをシリアル化し、その後にコンソールでシリアル化解除することです。 シリアル化解除されたオブジェクトは、プロパティがあり、メソッドがないスナップショットです。 出力の書式を明示的に文字列に設定していない場合は、エラーが発生したり、予期しない結果になったりすることがあります。
出力の書式を設定するには複数の方法があります。 その一部を示します。
- Out-String: 一連の文字列を出力します。
- Format-List: プロパティのリストとして出力します。各プロパティは新しい行に出力されます。
- Format-Table: 出力の書式を表として設定します。
- Format-Wide: オブジェクトの書式を横長の表に設定します。各オブジェクトの1つのプロパティのみが表示されます。
- Select-Object: 出力するプロパティを選択し、プロパティ名を任意で変更します。 出力内容を細かく制御できます。
- Export-CSV: 出力を CSV ファイルに保存します。 一時ファイルに出力してから、Get Content を使用して、標準出力に書き込むことができます。
次の例では、サービスのリストを取得してから、コンピュータ名、ステータス、サービス名、表示名の CSV 出力を作成します。
$fn = [io.path]::GetTempFileName()
Get-Service -ComputerName "$ST_ComputerName" | select-object
@{Name="ComputerName"; Expression={$ST_ComputerName}}, Status, Name,
DisplayName | export-csv "$fn" -notype
get-content $fn
remove-item $fn