使用Invoke-Command处理远程计算机上的命令列表

时间:2010-08-16 05:56:34

标签: powershell powershell-remoting invoke-command

我正在尝试编写一个powershell脚本,它将获取一个命令列表,然后在远程计算机上运行它们,我有以下代码:

foreach($command in $commands)
{
  Invoke-Command -computer "BNEBAK" -scriptblock{"$command"}
}

哪个不会抛出任何错误但也不会实际运行命令(例如stop-service servicename)。在调用脚本时,作为参数传递的文本文件读入$命令,我知道这个脚本的其余部分可以正常工作,因为我一直用它来用Invoke-Expression做本地命令。

任何帮助都会很棒。

1 个答案:

答案 0 :(得分:3)

正确的代码是

$commands = @(get-content com.txt)
for($command in $commands) { 
  $scriptblock = $ExecutionContext.InvokeCommand.NewScriptBlock($command) 
  Invoke-Command -computer $computer -scriptblock $scriptblock 
}