例
New-Object
コマンドレットは、オブジェクトの作成に使用します。
# Create a DateTime object and stores the object in variable "$var"$var = New-Object System.DateTime# calling constructor with parameters$sr = New-Object System.IO.StreamReader -ArgumentList "file path"
多くの場合、データをエクスポートしたり他のコマンドレットに渡すために新しいオブジェクトが作成されるでしょう。 これは次のように行うことができます:
$newObject = New-Object -TypeName PSObject -Property @{ ComputerName = "SERVER1" Role = "Interface" Environment = "Production"}
オブジェクトを作成する方法はたくさんあります。 次の方法は、おそらく最も短くて速い作成方法です。 PSCustomObject
:
$newObject = @{ ComputerName = 'SERVER1' Role = 'Interface' Environment = 'Production'}
すでにオブジェクトがあるが、1 つか 2 つの追加のプロパティだけが必要な場合、Select-Object
:
Get-ChildItem | Select-Object FullName, Name, @{Name='DateTime'; Expression={Get-Date}}, @{Name='PropertieName'; Expression={'CustomValue'}}
すべてのオブジェクトは変数に格納したり、パイプラインに渡すことができます。 また、これらのオブジェクトをコレクションに追加して、最後に結果を表示することもできます。
オブジェクトのコレクションは、Export-CSV (と Import-CSV) でうまく機能します。 CSV の各行はオブジェクトで、各列はプロパティです。
Format コマンドはオブジェクトを表示のためのテキスト・ストリームに変換します。 オブジェクトの使い勝手を維持するため、データ処理の最終段階まで Format-* コマンドの使用は避けてください。