回答在scriptblock里面执行一个管道命令,但是管道命令的第一个参数是一个已经获取了对象的变量,而不是一个command,在这种情况下执行invoke-command会报错


只有简单的参数可以通过-ArgumentList 来传输,VMSnapshot应当不支持。
至于你说的不想定义多次的问题,可以这样来处理:

#将函数内容定义成脚本块
$myLocalFunc={
 param($a,$b)
 "$a+$b=$($a+$b)"
}
#在本地调用执行脚本块
& $myLocalFunc 10 9

#在远程机器调用执行脚本块
#这样避免同样的脚本块重复定义多次
Invoke-Command -ScriptBlock $myLocalFunc -ComputerName pstips.net -ArgumentList 10,9

关于 Mooser Lee

我是一个Powershell的爱好者,创建了PowerShell中文博客,热衷于Powershell技术的搜集和分享。本站部分内容来源于互联网,不足之处敬请谅解,并欢迎您批评指正。