我已经打开了远程会话 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 文件接收)移交给脚本块的最干净的方法是什么?
答案1
ArgumentList
您需要使用参数 on将参数“传递”到脚本块中Invoke-Command
。这应该可以为您完成:
Invoke-Command -Session $s1 -scriptblock {param($a, $b, $c, $d) Write-Host "BBBBB: $a $b $c $d"} -ArgumentList $a, $b, $c, $d