如果你想将脚本块发送到远程主机去执行,一定要记住脚本块中的变量在远程主机上默认为NULL,是不能识别的。需要单独使用参数指定,例如:
$session=New-PSSession -ComputerName "pstips.net" -Credential "pstips.net\mosser" Invoke-Command -Session $session -ScriptBlock {param($a,$b) $a + $b } -ArgumentList $a,$b
但是在PowerShell 3.0 中,一切来得更顺畅了,可以使用using前缀作为传递远程变量的关键字。
$session=New-PSSession -ComputerName "pstips.net" -Credential "pstips.net\mosser" Invoke-Command -Session $session -ScriptBlock {param($a,$b) $using:a + $using:b } -ArgumentList $a,$b
原文链接:http://powershell.com/cs/blogs/tips/archive/2012/10/25/using-local-variables-remotely.aspx
本文链接: https://www.pstips.net/powershell-using-local-variables-remotely.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
最近也在学这个~CMD Shell加强版的果然不错~这下和Linux的命令行有得一拼了~支持博主~
当时贴代码时,忘记:param($a,$b),所以一直测试不成功,非常感谢Lili的提醒。