Использование команды Powershell Invoke-Command для вызова командного файла с аргументами

Я хочу использовать Powershell для вызова командного файла на удаленных машинах. Этот командный файл имеет аргументы. Вот что у меня есть на данный момент:

$script = "\\fileshare\script.cmd"
$server = $args[0]
$args [string]::join(',',$args[1 .. ($args.count-1)])

Invoke-Command -computername $server {$script + ' ' + $args}

После небольшого поиска я обнаружил, что функция Invoke-Command запускает свой блок сценария в совершенно новом процессе, поэтому вы не можете помещать в него переменные (они не будут расширены) . Для этого предназначен тег -ArgumentList. Поэтому я попробовал это вместо этого ...

Invoke-Command -computername $server {\\fileshare\script.cmd} -ArgumentList "FirstArgument"

Это тоже не сработало ... мой пакетный сценарий сообщает мне, что ему не передаются никакие аргументы. Я не могу найти ничего, что прямо говорит об этом, но похоже, что параметр -ArgumentList работает только со сценариями Powershell (он не будет передавать их в пакетный сценарий).

Есть идеи, как с помощью Invoke-Command вызвать командный файл с аргументами?

8
задан Jay Spang 17 December 2011 в 01:03
поделиться