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

问题描述 投票:0回答:1

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

实际结果:无法获取值。

我希望输出为

堆过度流
powershell invoke-command
1个回答
1
投票

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

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

foreach ($ReturnValue in $ReturnValues)
{
    $ReturnValue
}
© www.soinside.com 2019 - 2024. All rights reserved.