关于Windows Installer:使用默认值静默安装MSI

MSI installation quietly with default values

我正在编写Powershell脚本来卸载和安装产品。 卸载和安装过程只需单击接下来的几个按钮,其中将填充默认值。

您能否建议如何安装MSI文件,而不提示用户单击几个下一个按钮,并非常安静地完成安装过程。

如果我想在安装过程中提供自定义的值,那么查找属性名称以及如何以静默方式运行属性的过程可能是什么? 请参考任何参考资料以进一步探索。

我正在使用Powershell 2.0,如果需要更多信息,请告诉我。 提前致谢。

问候,
库玛


要以静默方式安装.msi文件,您应该能够将/quiet开关与msiexec一起使用。
如果需要自定义任何内容,则可以设置如下属性值:PROPERTY=Value

共:
msiexec /i C:\\Path\\To\\File.msi /quiet PROPERTY=Value

要查看所有选项,只需运行不带任何参数的msiexec
这个问题也和你的非常相似。


静默运行的基本命令行是(路径被截断):

1
msiexec.exe /I"C:\\WiX.msi" /QN /L*V"C:\\msilog.log" MYPROPERTY=1

您还可以应用转换(请参见下面的说明):

1
msiexec.exe /I"C:\\WiX.msi" /QN /L*V"C:\\msilog.log" TRANSFORMS="C:\\Wix.mst"
  • / QN:静默运行,在安装过程中或安装后均不提供GUI
  • / L * V:写入包含所有信息的详细日志文件
  • MYPROPERTY:在命令行中设置一个属性。您可以设置多个。

  • 应当修改MSI文件以供公司使用的方式是使用转换文件(* .mst)。

    • 这是一个小的"数据库片段",可以在运行时将MSI文件(它是数据库)应用于该文件后对其进行更改。
    • 转换可以从字面上改变MSI中的任何内容,但大多数情况下,它用于调整一些小事情,例如删除快捷方式,消除不希望的运行时等。
    • 通过添加关键字TRANSFORMS和* .mst文件的路径,将转换应用于msiexec.exe命令行上的MSI。

您还可以通过多种其他方式(除了msiexec.exe命令行)卸载MSI文件。这是有关如何卸载MSI文件的粗略指南。它包含有关如何使用PowerShell,WMI,VBScript Automation等进行卸载的信息。并且在serverfault.com上还有另一则帖子,内容涉及避免使用msiexec.exe来防止在自动运行过程中弹出不需要的对话框的问题。 。


仅当MSI帮助您时,您才能这样做:)。例如,如果在对话框中将名为SERVERNAME的属性设置为FRED,则可以在命令行上说SERVERNAME = FRED。假定执行安装工作的InstallExecuteSequence仅使用值FRED。当UI序列执行在静默模式下不会发生的其他事情时,会出现问题,因为UI序列不在静默安装中运行。如果UI序列对话框通过(例如)在前面添加\并在末尾添加\ MyShare来更改SERVERNAME,并且在执行序列中使用了\ FRED \ MyShare,那么您需要知道将命令行设置为SERVERNAME =" \ FRED \ MyShare",因为这就是执行顺序所期望的。如果您不知道所有潜在的相关属性值,则可以在UI模式下使用详细日志运行安装并查看它们。因此,在没有用于静默安装的文档的情况下,您需要对它进行一些逆向工程。

如果要指定要安装的功能,请使用ADDLOCAL =逗号分隔的功能名称列表。