在本地会话中访问远程(Invoke-Command)数组变量

时间:2019-10-30 07:23:56

标签: powershell invoke-command

我正在尝试在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

1 个答案:

答案 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
}