Доступ к переменной удаленного массива (Invoke-Command) в локальном сеансе - PullRequest
0 голосов
/ 30 октября 2019

Я пытаюсь получить доступ к переменной массива вне команды 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 Ответ

1 голос
/ 30 октября 2019

Переменные, заданные внутри удаленного сеанса, не были заполнены в локальный сеанс powershell ( Об областях действия ). Вы можете return значения из вызванного сеанса для использования позже.

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

foreach ($ReturnValue in $ReturnValues)
{
    $ReturnValue
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...