2014-04-04 58 views
1

我有以下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時$服務的價值傳遞。

任何提示解決它?

謝謝

回答

1

您需要將參數傳遞給腳本塊。它不會擴展腳本塊中的變量,直到它在遠程系統上執行,並且該局部變量不存在於此處。

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

參數列表將與腳本塊一起傳遞給遠程系統。

+0

謝謝mj。它解決了這個問題 – md1