【发布时间】:2012-05-04 03:23:19
【问题描述】:
在this question 之后,似乎 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 在第一次运行Select-Object 后被设置为$null。例如,在两个 Select-Object 行之间插入 $input | Get-Member 会引发错误,指出“没有为 get-member cmdlet 指定对象。”
这是怎么回事?
【问题讨论】:
标签: powershell powershell-2.0 powershell-remoting