下面记录了关于Powershell 安装MSI 和EXE 两种文件的powershell 命令

  1. 安装MSI 文件, 示例以SCOM agent 代理为参考, 附​ ​​msiexec.exe 工具使用官方介绍​​​​​ 以及​​SCOM agent 命令行安装介绍​
  2. 通用语法可以参考需要安装的工具的官方介绍, 相对应的参数需要根据实际情况进行调整参数是否缺少, 例如以下列出的参数AcceptEndUserLicenseAgreement就强制依赖/qn 的, 所以很多商业软件都有一些用户协议或者是授权确认信息, 所以说, 既然使用了/qn 就有必要使用AcceptEndUserLicenseAgreement 来补充完整对静默安装的工作

AcceptEndUserLicenseAgreement=1

Used to specify that you accept the End User License Agreement (EULA). This parameter is required when you use /qn to perform a fully silent installation of the agent.

对于msiexec 的具体使用因软件不同, 可以尝试以下几种安装格式

icm -ComputerName $serverip -Credential $credstring  -ScriptBlock {
msiexec.exe /i 'C:\MOMAgent.msi' /qn 'MANAGEMENT_GROUP=SCOMGroup001 MANAGEMENT_SERVER_DNS=scommgmt001.contoso.com ACTIONS_USE_COMPUTER_ACCOUNT=1 USE_MANUALLY_SPECIFIED_SETTINGS=1 AcceptEndUserLicenseAgreement=1'
}

或者

icm -ComputerName $serverip -Credential $credstring  -ScriptBlock {
& cmd /c "msiexec.exe /i C:\MOMAgent.msi /qn MANAGEMENT_GROUP=SCOMGroup001 MANAGEMENT_SERVER_DNS=scommgmt001.contoso.com ACTIONS_USE_COMPUTER_ACCOUNT=1 USE_MANUALLY_SPECIFIED_SETTINGS=1 AcceptEndUserLicenseAgreement=1"
}

或者 同时存在卸载和安装要多次调用msiexec 根据经验, 建议在msiexec 完成之后重启Windows Installer 服务, 再进行再次调用msiexec

icm -ComputerName $serverip -Credential $credstring  -ScriptBlock {
msiexec.exe /i 'C:\MOMAgent.msi' /qn 'MANAGEMENT_GROUP=SCOMGroup001 MANAGEMENT_SERVER_DNS=scommgmt001.contoso.com ACTIONS_USE_COMPUTER_ACCOUNT=1 USE_MANUALLY_SPECIFIED_SETTINGS=1 AcceptEndUserLicenseAgreement=1'
Restart-Service msiserver -Force
sleep 10
msiexec.exe /X 'C:\Monitor2.0.msi'
}



  1. 安装EXE 文件
icm -ComputerName $serverip -Credential $credstring  -ScriptBlock {
Start-Process C:\Printer\setup.exe -ArgumentList "/s /v/qn" -Wait
}