MSI包的静默安装

112

我有一个 MSI 安装包,需要在未安装时进行安装,并且需要静默安装。该安装包会提示用户:

  • 安装位置 (C:\Program Files\Foobar)
  • 安装类型:最小化和完整安装(最小化)

我需要使用命令行参数或其他方法来覆盖这两个参数。那么,如何解决这两个问题?我将使用 VBScript 进行脚本编写。

2个回答

162
你应该能够使用/quiet/qn选项与msiexec一起执行静默安装。
MSI包导出公共属性,你可以使用PROPERTY=value语法在msiexec参数末尾设置它们。
例如,此命令安装一个没有UI和重启的包,并记录两个属性:
msiexec /i c:\path\to\package.msi /quiet /qn /norestart /log c:\path\to\install.log PROPERTY1=value1 PROPERTY2=value2

你可以通过从开始菜单 -> 运行中不带选项运行msiexec来阅读其选项。


9
有没有办法找到可接受参数的列表(例如你的示例中的 PROPERTY1PROPERTY2)? - Salman A
9
注意:msiexec 对指定 MSI 安装包的完整文件路径非常挑剔。不要尝试使用“.\mypackage.msi”这样的方式。我花了一点时间才明白这一点。 - Phil
5
这个 MS 产品的名字实际上是 Orca,而不是 ocra。用这样的错误拼写可能很难通过谷歌搜索到,你可能会得到很多克里奥尔菜谱……但找不到 MSI 构建程序。 http://msdn.microsoft.com/en-us/library/aa370557(v=vs.85).aspx - Scott Lundberg
@phedonrousou 这可能不是MSI包,而是另一种(可能是商业)安装程序。如果您遇到问题,请开启一个新的问题。 - Polynomial
我该如何修改脚本以将CMake添加到Windows路径中? - Cartucho
显示剩余7条评论

23
正确安装MSI的方法是通过以下方式使用msiexec.exe命令行进行静默安装:
msiexec.exe /i c:\setup.msi /QN /L*V "C:\Temp\msilog.log"

快速解释:
 /L*V "C:\Temp\msilog.log"= verbose logging
 /QN = run completely silently
 /i = run install sequence 

这里有一个更全面的答案:批处理脚本安装MSI。这个答案提供了关于msiexec.exe命令行选项的详细信息,以及关于如何在安装时找到可以在命令行上设置的"公共属性"的描述。这些属性通常对每个MSI都不同。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接