Я открыл удаленный сеанс s1 и хотел бы запустить функцию с передачей параметров i в моем блоке сценариев:
Упрощенный пример с Write-Host:
$a = "aaa"
$b = "bbb"
$c = "ccc"
$d = "ddd"
Write-Host "AAAAA: $a $b $c $d" #This works fine as it's locally
Invoke-Command -Session $s1 -scriptblock {Write-Host "BBBBB: $a $b $c $d"} #These variables are empty
Каков самый чистый способ передать переменные (я обычно получаю их из локального CSV-файла) в блок сценария?
Вам нужно «передать» параметры в ваш блок скрипта, используя ArgumentList
параметр на Invoke-Command
. Это должно сделать это за вас:
Invoke-Command -Session $s1 -scriptblock {param($a, $b, $c, $d) Write-Host "BBBBB: $a $b $c $d"} -ArgumentList $a, $b, $c, $d