Windows-Server-2003

使用“Invoke-WmiMethod”(通過 cmd 文件)安裝 msi 與直接在伺服器上安裝之間的區別

  • July 24, 2014

跑到伺服器上安裝微星;事件日誌很乾淨並且一切順利;但是 bin direstory 中的密鑰文件仍然很舊。後來嘗試直接通過RDP點兩下安裝到伺服器中;安裝成功,bin 文件已更新。

-> 不需要重新啟動,並且在這兩種情況下都沒有涉及。-> 為什麼會這樣?我在哪裡可以找到更多日誌?-> 伺服器是 windows 2008 R2

可能的原因是您通過 WMI靜默執行 MSI,並在登錄到伺服器時以****互動方式執行(除了根本沒有執行安裝)。這是你實際做的嗎?還有其他可能導致相同問題的原因。我們需要查看update.cmd文件的內容才能確定。

首先處理靜默與互動問題:每個 MSI 文件中都有不同的安裝順序,其中最重要的兩個是:

  • UserInterfaceSequence - 顯示 MSI 的使用者界面,您可以輸入數據並在螢幕之間導航,也可以中止設置。
  • InstallExecuteSequence - 這是在您點擊使用者界面序列中的最後一個按鈕時啟動的實際安裝序列。

**在靜默安裝期間發生的情況是整個 UserInterfaceSequence 被跳過。這通常沒問題,並且在正確編寫的 MSI 包中不會導致任何問題。**但是,有時,或者實際上這些天經常,安裝開發人員沒有將安裝期間需要執行的所有自定義操作或腳本插入到靜默安裝序列中,從而導致靜默執行時安裝不完整。儘管您報告的症狀(文件未更新)不是此靜默安裝問題的最典型症狀,但它仍然是可能的原因。其他原因可能包括不正確的命令行,或者我不知道的來自 WMI 的干擾。我從不使用 WMI 安裝 MSI 文件,因為還有很多其他方法可以執行 MSI 文件. 這是另一個處理 msiexec.exe部署替代方案的執行緒(在後台,我猜所有這些不同的方式都呼叫了C 風格的 windows 32 API)。

對靜默安裝的正確支持是 MSI 的絕對要求——它必須能夠靜默執行,或者它的定義不正確。但總有辦法做錯事,還有很多不符合規定的包。對於企業用途,靜默安裝通常是 MSI 唯一始終使用的功能。這是MSI 文件的主要優勢之一

在專業的應用程序打包程序級別,我們會在每種情況下找到處理此問題的方法。經常求助於大量修改 MSI 文件以確保所有必須執行的東西都能執行。對於伺服器安裝,這通常不值得付出努力,因為互動式執行安裝程序更容易。然而,企業現在使用越來越多的瘦客戶端,因此有更多的專用伺服器來執行網路,在這些情況下,靜默安裝同樣重要。更好的解決方案是將整個 MSI 發送回其供應商並讓他們修復它。檢查我的供應商 MSI 文件的常見設計問題列表。在將 MSI 發回之前,您不需要太多這些錯誤。

引用自:https://serverfault.com/questions/590795