По какой-то причине Start-Process msiexec не будет работать при выполнении команды вызова на удаленной машине. Я посмотрел его, и хотя некоторые люди рекомендуют использовать psiexec, я видел много людей, использующих старую простую команду вызова для запуска установщиков msi на удаленных машинах.
Это код, который я сейчас использую:
$session = New-PSSession -computername $computerName -ea stop
$command = {
Param(
[Parameter()]
[string]$computerName,
[Parameter()]
[string]$domain,
[Parameter()]
[string]$user,
[Parameter()]
[string]$password,
[Parameter()]
[string]$installDir
)
$msiArgumentList = "/i C:\Installer.msi /l c:\log.txt /quiet /qr /norestart IAGREE=Yes DOMAIN=$domain ACCOUNT=$user PASSWORD=$password PASSWORDCONFIRM=$password INSTALLDIR=$installDir"
Start-Process msiexec -ArgumentList $msiArgumentList -Wait
}
Invoke-Command -session $session -ScriptBlock $command -ArgumentList $computerName, $domain, $user, $password, $installDir
Remove-PSsession -session $session
Я использовал тот же метод для удаленной установки служб с помощью intallutil, и это сработало. Сценарии включены на целевой машине, а также удаленное взаимодействие, поэтому для всех учетных записей это должно работать. Оба компьютера имеют одинаковые учетные данные, но я все же попытался добавить учетные данные как в команду вызова, так и в pssession. Я протестировал код локально, и установка сработала. Удаленно это не так, и никаких ошибок нет. я вижу на целевой машине в диспетчере задач, что msiexec запущен, но ничего не происходит. Я даже пытался отключить брандмауэр и все равно ничего. я попробовал оператор &, чтобы запустить msiexec, и все равно ничего.
Не уверен, что еще я мог бы попробовать.