1

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

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

这不会引发任何错误,但也不会实际运行命令(例如 stop-service servicename)。$commands 是在调用脚本时从作为参数传递的文本文件中读取的,我知道这个脚本的其余部分可以工作,因为我已经使用它来执行 Invoke-Expression 的本地命令一段时间了。

任何帮助都会很棒。

4

1 回答 1

3

正确的代码是

$commands = @(get-content com.txt)
for($command in $commands) { 
  $scriptblock = $ExecutionContext.InvokeCommand.NewScriptBlock($command) 
  Invoke-Command -computer $computer -scriptblock $scriptblock 
}
于 2010-08-17T01:26:42.193 回答