2011-12-19 140 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通常是不同的。