概要
有些 Microsoft 軟體更新使用 Hotfix.exe 或 Update.exe 作為安裝程式。這些安裝程式會檢查 Windows Service Pack 的版本和作業系統的語言,並在電腦上安裝和註冊軟體更新,然後對檔案進行備份以允許刪除軟體更新。
使用上述安裝程式之一的軟體更新支援多個命令列開關,管理員可使用這些開關來部署更新。
要確定 2004 年 7 月之後發布的軟體更新程式包是使用 Hotfix.exe 還是 Update.exe 作為安裝程式,只需該程式包“屬性”對話方塊的“版本”選項卡上的“安裝程式引擎”值即可。對於 2004 年 7 月之前發布的程式包,則必須解壓縮程式包的內容才能查看它使用的是安裝程式。
簡介
Microsoft 使用幾種不同的自解壓縮檔案格式來對軟體更新進行打包,這些檔案格式能夠自動運行程式包中所包含的安裝程式。本文描述了可與使用 Hotfix.exe 或 Update.exe 作為安裝程式的軟體更新程式包一起使用的命令列開關。下文將這些程式包稱為“Windows 軟體更新程式包”。
有關其他資訊,請單擊下面的文章編號,以查看 Microsoft 知識庫中相應的文章:
824684 (http://support.microsoft.com/kb/824684/) 有關用於描述 Microsoft 軟體更新標準術語的介紹
更多資訊
要確定軟體更新程式包是否使用 Update.exe 作為安裝程式以及它所使用的版本,請按照下列步驟操作:1. 按右鍵該程式包,然後單擊“屬性”。
2. 在“版本”選項卡上的“其他版本資訊”下,單擊“安裝程式引擎”。如果使用 Update.exe,它應出現在“值”欄位中。
3. 要確定版本,請單擊“安裝程式版本”。程式包中使用的安裝程式的版本出現在“值”欄位中。
對於 2004 年 7 月之前發布的程式包,或者“常規”選項卡上的“說明”值顯示為“自解壓縮 Cabinet”的程式包,請執行下列步驟來確定它們使用的是 Update.exe 還是 Hotfix.exe,以及它們所使用的版本:1. 將軟體更新程式包解壓縮到一個唯一的臨時檔案夾中。例如,要將名為 KBArticleNumber.exe 的更新程式包的檔案解壓縮到磁碟機 C 上名為 ExtractedPackage 的檔案夾中,請在命令提示字元處鍵入以下命令:
KBArticleNumber /X:C:\ExtractedPackage
2. 開啟軟體更新程式包的解壓縮檔案所在的臨時檔案夾。例如,開啟 C:\ExtractedPackage。
3. 在臨時檔案夾或子檔案夾中找到 Update.exe 或 Hotfix.exe 檔。
4. 要判斷 Update.exe 或 Hotfix.exe 的版本,按右鍵該檔案,然後單擊“屬性”。
5. 單擊“版本”選項卡,然後記下“檔案版本”行上的值。
注意:如果程式包說明是“Win32 Cabinet 自解壓程式”,則軟體更新程式包是一個 IExpress 程式包。 有關 IExpress 程式包的其他資訊,請單擊下面的文章編號,以查看 Microsoft 知識庫中相應的文章:
197147 (http://support.microsoft.com/kb/197147/) IExpress 軟體更新程式包的命令列參數
如果該程式包使用 .msi 或 .msp 副檔名,則表明軟體更新程式包使用 Windows Installer 作為安裝程式。有關 Windows Installer 使用的命令列選項的其他資訊,請訪問下面的 Microsoft 網站:
http://msdn.microsoft.com/library/en-us/msi/setup/command_line_options.asp (http://msdn.microsoft.com/library/en-us/msi/setup/command_line_options.asp)
用於 Windows NT 4.0 的軟體更新以及 Windows 2000 Service Pack 3 或更低版本中包含的軟體更新使用 Hotfix.exe 作為安裝程式。
Windows 2000 Service Pack 4 和更高版本以及 Windows XP 和 Windows Server 2003 中包含的軟體更新使用 Update.exe 作為安裝程式。
注意:用於“適用於”部分中所列 Windows 版本的一些軟體更新程式包使用 IExpress 或 Windows Installer 程式包。這些程式包不使用 Hotfix.exe 或 Update.exe 作為安裝程式。
安裝過程概述
運行 Windows 軟體更新程式包時,如果不使用命令列開關,則會自動運行 Hotfix.exe 或 Update.exe 安裝程式來安裝軟體更新。安裝程式執行的操作如下:• 安裝程式(Hotfix.exe 或 Update.exe)檢查當前使用的 Service Pack 版本。如果 Service Pack 版本低於軟體更新版本,但是不低於軟體更新指定的最低版本,並且語言相同,則安裝程式將自動安裝軟體更新。如果 Service Pack 版本高於軟體更新版本,則不會繼續安裝。
• 如果軟體更新語言版本與作業系統語言不匹配,則不會繼續安裝。
• 如果不存在版本衝突,則 Hotfix.exe 或 Update.exe 將安裝該軟體更新。
• 安裝程式會在下面某個登錄機碼下註冊該軟體更新:
HKEY_LOCAL_MACHINE \Software\Microsoft\Updates\<operating system>\<service pack level>\KB<nnnnnn>
HKEY_LOCAL_MACHINE \Software\Microsoft\Windows NT\CurrentVersion\Hotfix\Q<nnnnnn>
HKEY_LOCAL_MACHINE \Software\Microsoft\Windows NT\CurrentVersion\Hotfix\KB<nnnnnn>
• 軟體更新的刪除資訊儲存在 %Systemroot% 下名為 $NtUninstallQnnnnnn$ 或 $NtUninstallKBnnnnnn$ 的隱藏檔案夾中。
Update.exe 程式的命令列開關
下表列出了 Update.exe 程式的各個不同版本所支援的命令列開關。
標準開關 開關說明 支援此開關的 Update.exe 版本
/help 顯示命令列協助。 5.3.24.3 版本和更高版本支援 /help 開關。為了與舊版本相容,可以使用 /? 開關。
/passive 無人值守安裝模式。無需使用者互動,但會顯示安裝狀態。如果安裝完成時需要重新啟動電腦,則會出現一個對話方塊,其中包含一條計時器警告,指出電腦將在 30 秒後重新啟動。 5.3.24.3 版本和更高版本支援 /passive 開關。為了與舊版本相容,可以使用 /u 開關。
/quiet 安靜模式 - 與無人值守模式相同,但不顯示狀態或錯誤資訊。 5.3.24.3 版本和更高版本支援 /quiet 開關。為了與舊版本相容,可以使用 /q 開關。
/norestart 安裝完成後不重新啟動電腦。 5.3.24.3 版本和更高版本支援 /norestart 開關。為了與舊版本相容,可以使用 /z 開關。
/warnrestart 出現一個對話方塊,其中包含一條計時器警告,指出電腦將在 x 秒後重新啟動。(預設為 30 秒)。應與 /quiet 或 /passive 開關一起使用。 6.1.22.0 版本和更高版本支援 /warnrestart 開關。
/forcerestart 安裝後重新啟動電腦,並強制其他應用程式在關機時立即關閉,而不是先儲存開啟的檔案。 5.3.24.3 版本和更高版本支援 /forcerestart 開關。
/promptrestart 出現一個對話方塊,提示使用者在必要時重新啟動電腦。應與 /quiet 一起使用。 6.1.22.0 版本和更高版本支援 /promptrestart 開關。
/forceappsclose 強制其他程式在電腦關機時關閉。 5.4.15.0 版本和更高版本支援 /forceappsclose 開關。為了與舊版本相容,可以使用 /f 開關。
/nobackup 不為備份卸載檔案。 6.1.22.0 版本和更高版本支援 /nobackup 開關。為了與舊版本相容,可以使用 /n 開關。
/overwriteoem 不經提示即覆蓋 OEM 檔案。 6.1.22.0 版本和更高版本支援 /overwriteoem 開關。為了與舊版本相容,可以使用 /o 開關。
/integrate:path 將軟體更新整合到位於指定路徑的 Windows 安裝源檔案中。注意,:path 指包含 i386 檔案夾的檔案夾。 5.4.15.0 版本和更高版本支援 /integrate:path 開關。為了與舊版本相容,可以使用 /s 開關。
/log:path 允許使用者指定記錄檔的建立位置。 6.1.22.0 版本和更高版本支援 /log 開關。
/ER 啟用擴充錯誤報表。 所有版本都支援 ER 開關。
/verbose 啟用詳細日誌記錄。安裝時建立 %Windir%\CabBuild.log,以詳細描述要複製的檔案。使用此開關可能導致安裝速度變慢。 5.3.24.3 版本和更高版本支援 /verbose 開關。為了與舊版本相容,可以使用 /v 開關。
/d:path 指定 Windows Service Pack 安裝的備份目錄。:path 指備份檔案的目標檔案夾。預設備份位置為 %Systemdrive%\$ntservicepackuninstall$。 此開關不能用於 Service Pack 以外的更新,並且只能在 Installer 5.3.16.5 版本和更高版本中使用。
/extract[:path] 解壓縮檔案,但不啟動安裝程式。如果不包含“:path”,則會提示您提供要將檔案解壓縮到的目標檔案夾的路徑。如果包含“:path”,則將檔案解壓縮到指定的目標檔案夾中。 5.3.24.3 版本和更高版本支援 /extract 開關。為了與舊版本相容,可以使用 /x 開關。
/hotpatch:disable 禁用熱修補功能,只安裝冷Hotfix。 這隻用於支援熱修補的 Windows Server 2003 程式包,並且可在 6.1.22.0 版本和更高版本中使用。有關熱修補的更多資訊,請參見本文的“參考”部分,擷取指向“Inside Update.exe”白皮書的連結。
注意:• 我們採用的是一致的命令列開關集,您可以使用這些開關部署套件含軟體更新的程式包。 有關更多資訊,請單擊下面的文章編號,以查看 Microsoft 知識庫中相應的文章:
824687 (http://support.microsoft.com/kb/824687/) Microsoft 軟體更新程式包的命令列開關
為了實現向後相容,實施新的標準開關名稱的 Windows 軟體更新也支援較低版本的 Update.exe 所使用的安裝開關。但是,我們建議您停止使用這些舊開關,因為將來的軟體更新可能會取消這種支援。
• 列出的所有開關均使用正斜杠 (/)。為了與舊版本相容,您也可以使用連字號 (-) 來代替正斜杠 (/)。
• 要安全地刪除軟體更新,應首先刪除最近安裝的軟體更新。例如,假定修複程式 A 和 B 都替換同一檔案或登錄機碼,並且您先安裝的是 A,後安裝的是 B。要使系統復原到安裝 A 之前的狀態,必須先卸載 B,再卸載 A。 有關如何刪除 Update.exe 更新的更多資訊,請單擊下面的文章編號,以查看 Microsoft 知識庫中相應的文章:
823836 (http://support.microsoft.com/kb/823836/) 以錯誤順序刪除 Windows 軟體更新可能導致作業系統停止工作
Hotfix.exe 程式的命令列開關
下表列出了 Hotfix.exe 程式所支援的命令列開關。
命令列開關 說明
/f 強制其他程式在關機時退出
/l 列出已安裝的軟體更新
/m 無人值守模式
/n 不為卸載備份檔案
/q 安靜模式 - 無需使用者互動
/y 執行卸載(必須與 /m 或 /q 一起使用)
/z 安裝後不重新啟動電腦
有關如何安裝和刪除使用 Hotfix.exe 的軟體更新,請單擊下面的文章編號,以查看 Microsoft 知識庫中相應的文章:
184305 (http://support.microsoft.com/kb/184305/) 如何使用 Hotfix.exe 安裝和刪除修複程式
參考
以下白皮書討論了 Windows 和 Windows 組件的程式包安裝程式 Update.exe:
http://www.microsoft.com/technet/prodtechnol/windowsserver2003/deployment/winupdte.mspx