我正在尝试在invoke命令之外访问数组变量。我尝试了下面的代码,无法在本地会话中访问远程数组变量。
$serverlist = @("server1", "server2")
foreach ($server in $serverlist) {
#Write-Host $computer
$vinodh = Invoke-Command -ComputerName $server -ScriptBlock {
$testVar = @("Stack", "over", "flow")
}
}
foreach ($vars in $testVar) {
Write-Host $vars # Unable to get the values as stack,over, flow
}
实际结果:无法获取价值。
我希望输出为
stack over flow
答案 0 :(得分:1)
在远程会话中设置的变量未填充到本地Powershell会话(About Scopes)中。您可以return
从被调用的会话中获取值以供以后使用。
$ReturnValues = Invoke-Command -ComputerName $Server -ScriptBlock {
$testVar=@("Stack","over","flow")
return $testVar #return data
}
foreach ($ReturnValue in $ReturnValues)
{
$ReturnValue
}