すべてのforeachで$Target
という配列にオブジェクトを追加するこのスクリプトがあります。
foreach ($Machine in $Machines)
{
$TargetProperties = @{Name=$Machine}
$TargetObject = New-Object PSObject –Property $TargetProperties
$Target= @()
$Target = $TargetObject
}
$Target = $TargetObject
が同じオブジェクトと等しくなるため、機能していないことがわかります。
置換の代わりに配列に追加するにはどうすればよいですか?
配列に追加するには、単に_+=
_演算子を使用します。
_$Target += $TargetObject
_
また、ループの前に$Target = @()
を宣言する必要があります。そうしないと、ループごとに配列が空になります。