Обработка списка команд на удаленной машине с помощью Invoke-Command - PullRequest
0 голосов
/ 16 августа 2010

Я пытаюсь написать скрипт powershell, который будет принимать список команд и затем запускать их на удаленной машине. У меня есть следующий код:

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

Который не выдает никакой ошибки, но также фактически не запускает команду (например, имя-службы-остановки). $ command считывается из текстового файла, передаваемого в качестве аргумента при вызове скрипта, я знаю, что остальная часть этого скрипта работает, потому что я уже некоторое время использую его для выполнения локальных команд с Invoke-Expression.

Любая помощь была бы фантастической.

1 Ответ

3 голосов
/ 17 августа 2010

Правильный код будет

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