2011-12-19 75 views
59

如果程序包尚未安装,我需要安装MSI程序包。另外我需要安静地安装它。该软件包将提示用户为:MSI程序包的无提示安装

  • 安装位置(C:\ Program Files文件\ Foobar的)
  • 安装类型:最小和全(最小)

我需要重写使用命令这两个参数线路参数或其他方法。那么我怎么去解决这两个问题。我将使用VBScript进行脚本编写。

回答

91

您应该能够使用/quiet/qn选项与msiexec执行静默安装。

MSI包出口的公共属性,你可以在msiexec参数结束的PROPERTY=value语法设定。

例如,此命令会安装一个包,没有用户界面,并没有重新启动,以记录和两个属性:

msiexec /i c:\path\to\package.msi /quiet /qn /norestart /log c:\path\to\install.log PROPERTY1=value1 PROPERTY2=value2 

你可以只是没有从开始选择运行它读msiexec的选项 - >运行。

+1

有没有办法找到可接受的参数列表(在你的例子中是'PROPERTY1'和'PROPERTY2')? –

+0

以下是预定义的属性列表:http://msdn.microsoft.com/en-us/library/windows/desktop/aa370905(v=VS.85).aspx 安装文件夹属性对于每个设置创作都不同工具。你用什么来创建MSI? –

+0

@Cosmin:MSI由支付系统的运行时DLL组成(不是由我创建的)。我正在研究一种称为Ocra的工具来解析MSI,它给了我一个关于一个名为“INSTALLLOCATION”的变量的提示。我正在查。 –

1

静默安装的MSI正确的方法是通过msiexec.exe command line如下:

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 

有一个更全面的答案在这里:Batch script to install MSI。此答案详细说明了msiexec.exe命令行选项的说明如何查找可在安装时在命令行上设置的“公共属性”。这些属性对于每个MSI通常是不同的。