Windows Installer 核心功能
- 交易式安裝/回滾: 追蹤安裝過程所有系統變更,失敗時自動還原至初始狀態。
- 衝突防護: 強制執行安裝規則,防止共用 DLL 版本衝突(安裝時版本檢查、解除安裝時引用計數保留)。
- 自我修復: 偵測遺失/損壞檔案並自動從來源重新複製(廣告捷徑觸發)。
- 可靠解除安裝: 移除專屬檔案與登錄,保留共用元件。
- 依需安裝: 僅安裝核心子集,首次使用功能時動態安裝附加元件。
- 無人值守安裝: 支援腳本/命令列自動化部署。
架構雙核心
- 用戶端安裝服務 — msiexec.exe: 讀取 .msi 封裝、套用 .mst 轉換、合併命令列參數,執行檔案複製、登錄寫入、捷徑建立、UI 顯示。
- MSI 封裝檔: 關聯式資料庫,儲存安裝/解除安裝所需所有指令、檔案清單、註冊表項、UI 序列、條件判斷、自訂動作等。
安裝 MSI 後,系統會將 .msi 副檔名關聯至 msiexec.exe,雙擊即可啟動安裝。
常見錯誤與解決方案
症狀一:解除安裝後,執行其他軟體彈出「Windows 正在配置 Windows Installer,請稍候」
原因: 共用元件被誤移除,觸發自我修復嘗試重新安裝。
解決辦法
- 重新安裝 Windows Installer:Office XP 光碟根目錄
InstMsiW.exe (Win2K/XP) 或 instmsi.exe (Win9x/Me)。
- 群組原則暫時停用 Windows Installer:
電腦設定 → 系統管理範本 → Windows 元件 → Windows Installer → 停用 Windows Installer → 已啟用(但會導致所有 MSI 軟體無法安裝,僅供診斷)。
- 參考本系列終極方案(CleanUp Utility)。
症狀二:安裝軟體提示「無法存取 Windows Installer 服務,服務狀態為停止,無法啟動」
解決辦法
- CMD 執行:
msiexec /regserver
- 服務管理員 (
services.msc) 中啟動 Windows Installer 服務,啟動類型設為 手動。
結語
理解 Windows Installer 的交易式架構與自我修復機制,能從根本理解為何「解除安裝 A 導致 B 壞掉」以及「為何重新安裝 Installer 服務能修好」。遇到 MSI 疑難雜症,優先嘗試 msiexec /unregserver → /regserver 重置服務,再配合 CleanUp Utility 清除殘留註冊,成功率極高。