Invoke-Command错误

时间:2014-04-04 02:32:29

标签: powershell

我有以下Powershell脚本

$se1 = New-Pssession  -computerName .
$service = "Myservice"  
Invoke-Command -session $se1 -scriptblock { Stop-Service -displayname  $service   } 
Remove-PSSession  $se1 

失败并显示错误

Cannot bind argument to parameter 'DisplayName' because it is null

执行cmdlet时似乎传递了$ service的值。

有任何解决方法吗?

由于

1 个答案:

答案 0 :(得分:1)

您需要将参数传递给脚本块。它不会在脚本块中扩展变量,直到它在远程系统上执行,并且该局部变量不存在。

$se1 = New-Pssession  -computerName .
$service = "Myservice"  
Invoke-Command -session $se1 -scriptblock { Stop-Service -displayname  $args[0]  }  -argumentlist $service
Remove-PSSession  $se1 

参数列表将与脚本块一起传递给远程系统。