PowerShell使用属性文件安装MSI

时间:2019-02-12 17:10:06

标签: powershell

我希望将我们的旧命令文件替换为PowerShell文件,以便在多个服务器上安装msi,以实现远程自动安装。

我正在尝试做的事情,这就是如何让PowerShell安装msi,其中安装依赖于来自属性文件的详细信息作为一个参数,同时将安装注销为日志文件并设置一个。新的用户名和密码?

当前,我们的旧cmd文件看起来像这样:

msiexec / I mymsi.msu / quiet / lv mymsi.log USERNAME = AName PASSWORD = APassword CONFIG =“ C:\ Some.properties.env”

我想做的是重新创建此代码,但是要在PowerShell中进行,但是我找不到能够工作的示例。

1 个答案:

答案 0 :(得分:0)

我建议使用Start-ProcessSplatting使其具有可读性和功能性:

$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


about_Splatting

Start-Process