文章編號: 296861 - 檢視此文章適用的產品。
本文曾發行於 CHT296861
全部展開 | 全部摺疊

在此頁中

結論

本文將告訴您,如何只重新開機一次,就能安裝多個使用 Hotfix.exe (Microsoft Windows NT 4.0) 或 Update.exe (Microsoft Windows 2000、Microsoft Windows XP 或 Microsoft Windows Server 2003) 的 Windows 產品更新程式 (例如,重大更新、安全性補充程式或 Hotfix)。本文主要提供給系統管理員與 IT 專業人員使用。您可以單獨安裝,或是與 Windows (包含或不包含 Service Pack) 一同安裝使用 Hotfix.exe 或 Update.exe 的 Windows 產品更新程式。

注意 本文所說明的程序僅適用於以 Hotfix.exe 或 Update.exe 做為安裝程式的產品更新程式。例如,Windows NT 4.0、Windows 2000 與 Windows XP 的 Internet Explorer 更新程式是使用 INF 安裝,而非 Update.exe,因此,您無法使用此程序在 Windows NT 4.0、Windows 2000 或 Windows XP 上,只重新開機一次就安裝多個 Microsoft Internet Explorer 更新程式。由於 Windows Server 2003 的 Internet Explorer 更新程式使用 Update.exe 做為安裝程式,因此,您可以使用此程序進行安裝。

如需有關這些主題的詳細資訊,請參閱下列 Microsoft 網站:

Windows 2000
Microsoft Windows 2000 Hotfix 安裝與部署指南 (英文)
http://technet.microsoft.com/zh-tw/library/cc750542.aspx
Windows XP
Microsoft Windows XP Service Pack 2 安裝與部署指南 (英文)
http://technet.microsoft.com/zh-tw/library/bb457071.aspx
Windows Server 2003 和 Windows XP Professional x64 Edition
Microsoft Windows Server 2003 和 Windows XP 64 位元版本 2003 安裝與部署指南 (英文)
http://technet.microsoft.com/zh-tw/library/cc700814.aspx
Windows Server 2003 Service Pack 1
Microsoft Windows Server 2003 Service Pack 1 安裝與部署更新 (英文)
http://technet.microsoft.com/zh-tw/library/cc706993(WS.10).aspx

其他相關資訊

Windows 產品更新程式 (例如,重大更新、安全性補充程式或 Hotfix) 是包含一個以上系統檔案的可執行檔 (.exe),可以讓您套用至 Windows 以修正特定問題。「Microsoft 技術支援處」會將 Hotfix 散發給嚴重受到特定問題影響的客戶。重大更新與安全性補充程式為 Microsoft 建議所有客戶使用的更新。您可以從 Windows Update 網站、Microsoft Update 網站、Microsoft 下載中心或其他 Microsoft 網站取得重大更新和安全性更新程式。

在 2002 年 12 月之後建立的 Windows XP x64 Edition 更新和 Windows Server 2003 更新或 Windows XP 和 Windows 2000 更新

注意 如果要判斷更新的建立日期,請檢視更新程式封裝中 Update.exe 或 Hotfix.exe 安裝程式的修改日期。

如果要在單一電腦上安裝 Windows 產品更新程式,請在想要進行更新的電腦上執行產品更新程式。如果要安裝多個產品更新,而不必每次安裝之後都重新開機,請使用 /z 參數。

Update.exe 程式的命令列選項

下表指出 Update.exe 程式支援的命令列選項 (或參數):
參數說明 ------ ----------- /f 當電腦關機時,強迫其他程式關閉。/n 移除 Hotfix 時不要備份檔案。/z 安裝完成後,不要重新啟動電腦。/q 使用無訊息模式 (不需要使用者互動)。/m 使用自動安裝模式 (Windows 2000)。/u 使用自動安裝模式 (Windows XP)。/l 列出已安裝的 Hotfix。
下列程式碼範本為安裝多個產品更新程式的批次檔,並且可以確保電腦重新啟動之後已取代為正確的檔案。
@echo off
setlocal
set PATHTOFIXES=E:\hotfix

%PATHTOFIXES%\Q123456_w2k_sp4_x86.exe /Z /M
%PATHTOFIXES%\Q123321_w2k_sp4_x86.exe /Z /M
%PATHTOFIXES%\Q123789_w2k_sp4_x86.exe /Z /M
注意 使用 Update.exe 且在 2001 年 5 月 18 日之後發行的 Windows XP x64 Edition、Windows Server 2003、Windows XP 和 Windows 2000 產品更新都隨附 QChain.exe 功能。但是,2002 年 12 月之前的產品更新存在問題,在某些情況下,您的電腦可能會套用錯誤的二進位檔案。2003 年 3 月 Microsoft 已發行 QChain.exe 的更新版本,以解決此問題。 如需有關此問題,或如何取得更新版 Qchain.exe 工具的詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
815062 當您鏈結多個 Hotfix 時並未安裝正確的檔案

在 2002 年 12 月之前建立的所有 Windows NT 4.0 更新或 Windows XP 和 Windows 2000 更新

注意 如果要判斷產品更新的建立日期,請查看更新程式封裝中 Update.exe 或 Hotfix.exe 安裝程式的修改日期。

Microsoft 已發行名為 QChain.exe 的命令列工具,有了 QChain.exe,系統管理員就可以將更新程式鏈結在一起。鏈結更新程式後,您就可以安裝多個更新程式,而不需要在每次安裝後重新啟動電腦。如果沒有這個工具,您就必須在每次安裝更新程式後重新啟動電腦。QChain.exe 工具擁有下列優點:
  • 增加了伺服器的運作時間,因為電腦不需要在每次安裝更新程式之後重新啟動。
  • 可以更快速地在單一電腦上安裝多個更新程式。
  • 同時適用於 Windows 2000 與 Windows NT 4.0。
注意 所有於 2001 年 5 月 18 日以後發行的 Windows XP 與 Windows 2000 更新程式,均包含 QChain.exe 功能,然而,2002 年 12 月之前發行的更新程式中所存在的問題,在某些情況下可能會將錯誤的二進位編碼套用到您的電腦上。2003 年 3 月,Microsoft 發行 QChain.exe 的更新版本以解決這個問題。 如需有關此問題,或如何取得更新版 Qchain.exe 工具的詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
815062 當您鏈結多個 Hotfix 時並未安裝正確的檔案

不使用 QChain.exe 鍵結更新安裝並不安全

安裝更新時,如果已鎖定或正在使用檔案,則無法取代該檔案。因此,系統會將檔案放在「擱置檔案重新命名」(Pending File Rename) 佇列中,並在電腦重新啟動後加以取代。在下列情況中就會發生此問題:
  • 安裝了更新程式 A 與更新程式 B,卻未在兩次安裝之間重新啟動電腦。
  • 兩個套件都含有檔案 X。套件 A 的檔案 X 是第 3 版;套件 B 的檔案 X 為第 2 版;電腦上檔案 X 的版本是第 1 版。
  • 當套件 A 安裝完成之後,會將所包含的檔案 X 放在「擱置檔案重新命名」佇列中。
  • 當套件 B 安裝完成之後,也會將它包含的檔案 X 放在「擱置檔案重新命名」佇列中。
  • 當電腦重新啟動時,由於套件 B 是最後安裝的,所以電腦會安裝套件 B 中檔案 X 的版本 (在「擱置檔案重新命名」佇列中,最後一個檔案即為所使用的檔案)。因此,便會安裝第 2 版,而不是您想要的第 3 版。

安裝先前鍵結的更新後未重新開機

雖然此情況非常少見,但建議您確認電腦是否已安裝所有您認為已安裝的修正程式。如果要進行確認,請使用 Qfecheck.exe 工具。 如需有關 Qfecheck.exe 的詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
282784 Qfecheck.exe 驗證 Windows 2000 和 Windows XP Hotfix 的安裝
QChain.exe 會清除登錄中的 Pending File Rename Operations 機碼,以確認電腦重新啟動之後,只安裝了檔案的最新版本。

如果要只重新啟動一次,就安裝多個更新程式

  1. 執行更新安裝程式時,請搭配使用 -z 參數,以指示安裝程式不要在安裝完成之後重新啟動電腦。如果不想在安裝時看見提示或訊息,請加入 -m 參數 (無訊息模式)。

    更新安裝程式為下列其中一個程式:
    • 自動解壓縮的套件程式檔案 (例如,Qnnnnnn_w2k_spx_x86_en.exe)。
    • Hotfix.exe (如果您已經從套件解壓縮所有檔案)。
  2. 安裝所有 Hotfix 之後,請執行 QChain.exe。
  3. 重新啟動電腦。
您也可以建立批次檔,以進行這項操作。下列範例批次檔會示範這個方法:
@echo off
setlocal
set PATHTOFIXES=some path
%PATHTOFIXES%\Q123456_w2k_sp2_x86.exe -z -m
%PATHTOFIXES%\Q123321_w2k_sp2_x86.exe -z -m
%PATHTOFIXES%\Q123789_w2k_sp2_x86.exe -z -m
%PATHTOFIXES%\qchain.exe

如何取得 QChain.exe

2001 年 5 月 18 日之後發行的 Windows XP 和 Windows 2000 更新都隨附 QChain.exe 的功能。但是,2002 年 12 月之前的產品更新存在問題,在某些情況下,您的電腦可能會套用錯誤的二進位檔案。2003 年 3 月,Microsoft 發行 QChain.exe 的更新版本以解決這個問題。 如需有關此問題,或如何取得更新版 Qchain.exe 工具的詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
815062 當您鏈結多個 Hotfix 時並未安裝正確的檔案

QChain.exe 命令語法

qchain [logfilename]
[logfilename] 選擇性參數透過 Pending File Rename Operations 機碼之前與之後的快照集建立檔案。

QChain.exe 輸出範例

---- 舊登錄資訊 ------
Source:C:\WINNT\inf\acpi.inf
Version: 5.0.2183.1
Destination:d:\ntsust\testregchech\1394.inf
Version: 5.0.2183.1

Source:C:\WINNT\inf\adm_mult.inf
Version: 5.0.2184.1
Destination:d:\ntsust\testregchech\1394.inf
Version: 5.0.2183.1

Source:C:\WINNT\inf\banshee.inf
Version: 5.0.2080.1
Destination:d:\ntsust\testregchech\1394.inf
Version: 5.0.2183.1

---- New Information In The Registry ------
Source:C:\WINNT\inf\adm_mult.inf
Version: 5.0.2184.1
Destination:d:\ntsust\testregchech\1394.inf
Version:5.0.2183.1

QChain.exe 的限制

雖然 QChain 可以與大多數的 Windows NT 4.0 和 Windows 2000 更新搭配使用,但 QChain.exe 可能無法與包含下列登錄機碼所列之二進位檔案的更新搭配使用:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\KnownDLLs
此登錄機碼所列的二進位檔案會在啟動時載入記憶體。當更新的安裝程式呼叫此清單上二進位檔案的 GetFileVersionInfo 函式時,就會參照已經載入的二進位檔案,而不是已存在於目標位置的二進位檔案。

由於
KnownDLLs
登錄機碼中所列的二進位碼檔案會在開機時載入記憶體,所以,更新的安裝程式必須在重新啟動電腦之前,使用修正過的二進位檔案取代目標的二進位碼檔案。因此,更新安裝程式不會在重新啟動時建立 Pending File Rename Operation 來取代二進位檔案。相反地,更新程式會將目前的二進位檔案移到暫時的位置,並將修正過的二進位檔案放在目前二進位檔案所在位置,然後在電腦重新啟動時建立 Pending File Rename Operation,以刪除目前的二進位檔案。

QChain 只會影響執行二進位檔案取代作業的 Pending File Rename Operations,不會影響執行刪除作業的 Pending File Rename Operations。

SP2 以前的所有 Windows NT 4.0 更新程式與 Windows 2000 更新程式都使用 GetFileVersionInfo 來辨識檔案版本。如果您安裝兩個以上的 Windows NT 4.0 更新程式或 SP2 之前的 Windows 2000 更新程式,以及包含重疊 KnownDLLs 的更新程式,當您使用 QChain 鏈結這些更新程式的安裝時,將無法確保是否已安裝最新版本的修正程式。

下列情況將說明為何 QChain 無法將正確的二進位檔案放到系統上:
  • 您安裝了更新套件 A 與 B,但未在兩次安裝之間重新啟動電腦。
  • 兩個套件均包含 Kernel32.dll,此檔案位於 KnownDLLs 清單中。套件 A 包含 Kernel32.dll 第 3 版,套件 B 具有 Kernel32.dll 第 2 版,而電腦已安裝 Kernel32.dll 第 1 版。
  • 當套件 A 安裝完成之後,GetFileVersionInfo 回報電腦已安裝了 Kernel32.dll 第 1 版。由於套件 A 含有第 3 版,所以更新的安裝程式會要求取代檔案。
    • 更新安裝程式會將電腦上的 Kernel32.dll 第 1 版移到暫時的位置,並且建立 Pending File Rename Operation,以便在電腦重新啟動時,刪除暫時位置的 Kernel32.dll 檔。
    • 將套件 A 的 Kernel32.dll 第 3 版複製到電腦。
  • 當您安裝套件 B 時,由於 GetFileVersionInfo 會從已載入記憶體的 Kernel32.dll 讀取版本資訊,所以 GetFileVersionInfo 仍會回報電腦上安裝了 Kernel32.dll 第 1 版,而套件 B 具有第 2 版,因此 Hotfix 會要求取代檔案。
    • 更新的安裝程式會將目前電腦上的 Kernel32.dll (套件 A 的 Kernel32.dll 第 3 版) 移到暫時的位置,並且建立 Pending File Rename Operation,以便在電腦下次重新啟動時,刪除暫時位置的 (第 3 版) Kernel32.dll。
    • 將套件 B 的 Kernel32.dll 第 2 版複製到電腦。
  • QChain 開始執行,但沒有 Pending File Rename Operations 可以用於檔案取代作業,因此 QChain 沒有採取任何行動。
  • 由於套件 B 是最新安裝的,所以套件 B 的 Kernel32.dll 第 2 版會放在電腦上的正確位置。因此,當電腦重新啟動時,就會載入記憶體。Pending File Rename Operations 會同時刪除原始的 Kernel32.dll 第 1 版與套件 A 的 Kernel32.dll 第 3 版。因此,電腦上的 Kernel32.dll 是第 2 版,而非第 3 版。
SP2 之後的 Windows 2000 修正程式中,載入記憶體的 KnownDLLs 已不再使用 GetFileVersionInfo。相反地,更新安裝程式會對應實際存在於目標位置的檔案,然後呼叫所對應檔案上的 GetFileVersionInfo。因此,您可以使用 QChain.exe 將 SP2 之後的 Windows 2000 更新程式鏈結在一起。當您執行這項操作時,就會安裝檔案的最新版本,而不論所安裝的更新程式順序。

如果您再次發生先前的情況,並且使用 SP2 之後的 Windows 2000 更新程式,則套件 B 中的 Hotfix 會對應套件 A 的 Kernel32.dll,並辨識第 3 版。第 3 版是比套件 B 自己的 Kernel32.dll 第 2 版更新的版本。因此,套件 B 不會取代系統上的 Kernel32.dll,而套件 A 的 Kernel32.dll 第 3 版會是電腦重新啟動後能夠正確使用的版本。

屬性

文章編號: 296861 - 上次校閱: 2013年9月26日 - 版次: 17.0
這篇文章中的資訊適用於:
  • Microsoft Windows Update
  • Microsoft Update
關鍵字:?
kbproductlink kbhotfixserver kbqfe kbwindowsupdatev6 kbwindowsupdatev3 kbfile kbgraphxlinkcritical kbinfo KB296861
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com