Я хочу использовать 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 вызвать командный файл с аргументами?