Устанавливайте ПО удаленно - зависает - PullRequest
0 голосов
/ 03 апреля 2020

Я пытаюсь развернуть программное обеспечение с помощью Powershell в моем домене, и по какой-то причине скрипт зависает при выполнении командлета «Start-Process».

Вот что у меня есть:

Invoke-Command -ComputerName $servers -Credential $creds -ScriptBlock {
   $args = "/param1=`"{0}`" /param2=`"{1}`" /param3=1 /S" -f "value1", "value2"
   Start-Process "c:\temp\installer.exe" -Wait -ArgumentList $args
}

Интересно, что у меня нет проблем, если я вручную Enter-PSSession на одном сервере и запускаю:

Enter-PSSession one_server
cd c:\temp\
$args = "/param1=value1 /param2=value /param3=1 /S"
Start-Process .\installer.exe -Wait -ArgumentList $args

Есть идеи? Спасибо

Ответы [ 2 ]

1 голос
/ 04 апреля 2020

Решением оказалось повышение прав доступа, для которого требовалось "-Verb RunAs". Отдельное спасибо Марку Аренду за то, что он сообщил мне о зарезервированной переменной $ arg.

Invoke-Command -ComputerName $servers -Credential $creds -ScriptBlock {
   $args = "/param1=`"{0}`" /param2=`"{1}`" /param3=1 /S" -f "value1", "value2"
   Start-Process "c:\temp\installer.exe" -Wait -ArgumentList $args -Verb RunAs
}
1 голос
/ 03 апреля 2020

Измените вашу переменную $ args на другое имя, например $ a или $ arguments. $ args зарезервирован и является объектом system.array. Вы хотите создать строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...