Проблема с msiexec и pssession в скрипте - PullRequest
0 голосов
/ 12 июня 2019

Я пытаюсь написать скрипт powershell, который устанавливает пакет .msi. Он принимает данные пользователя (IP-адрес и имя пользователя клиента), затем создает новый сеанс PSSession и извлекает файл с сетевого диска.

Enter-PSSession -ComputerName $destination -Credential <xxxxxx>
Invoke-Command -ScriptBlock {msiexec /i "\\CLOUD_IP\road-to\msi-location\msi_to_install.msi"}

Это главная проблема со скриптом. Как только сценарий завершается, установка запрашивает у меня на компьютере, а не на клиентском компьютере, но он все еще остается в сеансе. Пока я не выйду из сессии ни вручную, ни через скрипт.

Когда все эти строки вводятся вручную в подсказку powershell, все работает как положено.

Я попытался поместить Start-Sleep между двумя строками, поскольку для Enter-PSSession требуется немного времени, но это ничего не сделало.

$ destination - это IP-адрес пользователя, который также работает как -ComputerName , поскольку Get-PSSession показывает IP в качестве имени компьютера.

1 Ответ

0 голосов
/ 12 июня 2019

Измените его на:

Invoke-Command -ComputerName $destination -Credential <xxxxxx> -ScriptBlock {msiexec /i "\\CLOUD_IP\road-to\msi-location\msi_to_install.msi" /qn /quiet /norestart}
...