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

Accessing remote (Invoke-Command) array variable in local session

我试图在调用命令之外访问数组变量。我尝试了下面的代码,我无法从本地会话访问远程数组变量。

$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

远程会话中设置的变量未填充到本地 powershell 会话 (About Scopes)。您可以 return 调用的会话中的值供以后使用。

$ReturnValues = Invoke-Command -ComputerName $Server -ScriptBlock {
    $testVar=@("Stack","over","flow")
    return  $testVar #return data
}

foreach ($ReturnValue in $ReturnValues)
{
    $ReturnValue
}