この質問に続いて、Select-Objectは処理の一部として入力をnullに設定しているようです。これは私には間違っているようです。これが私がやろうとしていることです:
$sessionInput = new-object -TypeName System.Object
$sessionInput | Add-Member -MemberType NoteProperty -Name Foo -Value $foo
$sessionInput | Add-Member -MemberType NoteProperty -Name Bar -Value $bar
Invoke-Command -Session $session -InputObject $sessionInput {
$foo = $input | Select-Object -ExpandProperty Foo
$bar = $input | Select-Object -ExpandProperty Bar
# Expected: $foo, $bar inside the session = $foo, $bar outside the session
}
実際に起こることは$foo
、期待値しかなく、$bar
常にであるということ$null
です。少し調べてみると、最初の実行後に$input
設定されていることがわかりました。例として、2行の間に挿入すると、「get-memberコマンドレットにオブジェクトが指定されていません」というエラーがスローされます。$null
Select-Object
$input | Get-Member
Select-Object
ここで何が起こっているのですか?