PDA

Показать полную графическую версию : Установка MSI-пакета с параметрами в Powershell


DJ Mogarych
02-06-2023, 09:17
Привет!

Есть какой-нибудь простой способ сабжа?

У меня пока как-то так, и я не уверен, работает это или нет:

$logInstall = "$env:temp\$prog $progVersion install.log"
$params = '/quiet ' + `
'/i ' + `
'"' + "$path" + '" ' + `
'UNINSTALL_PASSWORD_SHA1_HASH="1234567899" ' + `
'PROXYDN="CN=Example,C=RU,O=AO Example,OU=TechDep,ST=Moscow" ' + `
'REBOOT_NOTIFICATION_PERIOD="0" ' + `
'REBOOT_NOTIFICATION_RATE="1" ' + `
'WAITING_REBOOT_PERIOD="10" ' + `
'HIDE_CLIENT="#x01000000" ' + `
'SHOW_USER_NOTIFICATION="#x00000000" ' + `
'FORCE_REBOOT="1" ' + `
'NOPROXY="0" ' + `
'SRVPOOL="server.example.ru:15101;" ' + `
'SRVHASH="#1234567890" ' + `
'SRVLINKMODE="#x01000000" ' + `
'/lvp ' + `
'"' + "$logInstall" + '"'

Start-Process -FilePath "msiexec.exe" -Wait -ArgumentList $params


Можно как-то попроще сделать и чтобы это работало?

Sham
02-06-2023, 11:50
с массивом параметров удобнее: $params = @('/quiet', '/i', $path, ...)
коды ошибок msiexec (https://learn.microsoft.com/en-us/windows/win32/msi/error-codes) - вроде 0 и 3010 успешные. Start-Process -PassThru возвращает объект с .ExitCode (https://learn.microsoft.com/en-us/dotnet/api/system.diagnostics.process.exitcode).




© OSzone.net 2001-2012