powershell - PowerShell 使用属性文件安装 MSI
问题描述
我希望用 PowerShell 文件替换我们的旧命令文件,以便在多个服务器上安装 msi,以实现远程自动化安装。
我正在尝试做什么,这就是如何让 PowerShell 安装 msi,其中安装依赖于来自属性文件的详细信息作为一个参数,同时将安装作为日志文件注销并设置新用户名和密码?
目前我们的旧 cmd 文件看起来有点像这样:
msiexec /I mymsi.msu /quiet /lv mymsi.log USERNAME=AName PASSWORD=APassword CONFIG="C:\Some.properties.env"
我想要做的是在 PowerShell 中重新创建它,但我无法找到一个有效的示例。
解决方案
我建议使用Start-Process
并Splatting
使其具有可读性和功能性:
$startProcessParams = @{
'FilePath' = "$Env:SystemRoot\System32\MSIEXEC.exe"
'ArgumentList' = @(
'/i', 'mymsi.msu'
'/quiet'
'/lv', 'mymsi.log'
'USERNAME=AName', 'PASSWORD=APassword', 'CONFIG="C:\Some.properties.env"'
)
'WorkingDirectory' = $PSScriptRoot
'Wait' = $true
'PassThru' = $true
}
$process = Start-Process @startProcessParams
return $process.ExitCode
请务必设置WorkingDirectory
为您的.msu
文件所在的位置。