MSI安装时默认使用默认值

时间:2014-07-09 15:42:25

标签: installation windows-installer powershell-v2.0

我正在编写一个PowerShell脚本来卸载和安装产品。卸载和安装过程只需单击几个下一个按钮,并填充默认值。

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

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

我正在使用PowerShell 2.0,如果需要进一步的信息,请告诉我。提前谢谢。

此致 库马尔

3 个答案:

答案 0 :(得分:3)

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

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

要查看所有选项,只需运行msiexec,不带任何参数。 This question也与你的非常相似。

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

msiexec.exe /I "C:\WiX.msi" /QN /L*V "C:\msilog.log" MYPROPERTY=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。

您还可以通过其他各种方式卸载MSI文件(除了msiexec.exe命令行)。 Here is a rough guide for how to uninstall MSI files。它包含有关如何使用PowerShell,WMI,VBScript Automation等卸载的信息...还有another post on serverfault.com关于避免使用msiexec.exe以防止在自动运行期间弹出不需要的对话框的问题。