2011-09-04 29 views
4

我正在創建一個可以運行MSI和EXE的自動更新程序。這些MSI/EXE不是我自己的。如果存在,我想使用任何無人值守/無提示安裝選項。是否有某種方法可以確定MSI/EXE是否具有某種無人蔘與的安裝支持,如果有,請獲取正確的參數,以便在運行時將它傳遞給文件?我知道,默認情況下'/ quiet'是靜默安裝選項,但我也對EXE和任何可能定製此選項的MSI很好奇。確定MSI/EXE是否支持某些標誌/參數?

這個問題 - detect msi parameters for unattended install - 是類似的,但答案中的鏈接被打破,我不知道我會做什麼。

謝謝。

+0

以何種方式被打破他們?錯誤?事情沒有顯示出來?在你的問題中指定這可能會讓人們幫你解開它們。 –

+0

這個鏈接 - http://www.scriptbox.at.tt/index.php?search=Get%20MSI-File%20properties.vbs&site=1 - 那是一個腳本被破壞的答案。 – Chad

回答

1

如果是MSI,那麼參數是標準的,您可以通過msiexec /?或查看the docs on MSDN獲得選項列表。

沒有辦法檢測它支持的任意EXE的選項,如果有的話。嘗試從供應商處找到文檔,或者嘗試使用/?開關...

+0

好吧,我想不出有什麼方法可以輕鬆搞清楚可執行文件是否具有某些功能,但值得一提。我不知道供應商是誰,所以我不能只讀他們的文檔。謝謝。 – Chad

+0

@Chad你可以用文本編輯器試着在exes中查看字符串。通常你可以看到所有的開關:程序需要這些字符串來比較參數。如果.exe是Unicode,則會在每個字符之間看到「空格」。這與逆向工程相似,但它有時可能有所幫助。 –

14

只需打開日誌記錄即可運行安裝程序,它會顯示特定MSI接受的所有可能參數。

例如:在整個安裝和LOGFILE.TXT msiexec /log logfile.txt /i installer.msi

運行會告訴你過得去參數「屬性(S)」或「屬性(C)」,在全部大寫的名字。

來源: http://www.codeproject.com/Articles/16767/How-to-Pass-Command-Line-Arguments-to-MSI-Installe

+0

與其他所有腳本和其他答案中的現在死鏈接程序相比,它非常簡單直接。謝謝! –

相關問題