windowsupdate 如何儲存已經下載的修正檔

很多人用數據機去上網,每次重裝系統後Update都要花不少的時間和精力,於是就有人在考慮怎樣把從Windows Update下載的文件儲存起來以便以後新裝了系統可以直接執行。不過遺憾的是,通過Windows Update下載的所有修正檔程序在安裝成功後都會被自動刪除。好在微軟已經為我們提供了一個很好的方法。

執行瀏覽器,並打開http://windowsupdate.microsoft.com ,在左側的Windows Update面板中點擊「個性化Windows Update」,選中右側的「在相關主題下顯示到Windows Update目錄的連接」,然後儲存設置。

現在再看看左側的面板,你可以看見,在相關主題列表下增加了一個「Windows Update目錄」的連接,點擊進入。之後點擊右側的「查找Microsoft Windows操作系統的更新」並選擇你要查找的操作系統和語種。這裡包括了所有主流的微軟操作系統以及各種不同的語種,選擇好之後點擊「搜尋」,所有可下載的更新就全部找到了。這些更新不用你親自一個一個地下載,只要分別點擊,加入到下載籃子,就可以一次全部下載回來。遺憾的是在這裡不能通過Flashget之類的下載工具下載,你只好祈禱在下載的過程中千萬不要斷線了。

下載回來的修正檔全部是可執行文件(假設他們分別為fix1.exe,fix2.exe ……),按照一般的方法,你可能就直接一個一個地開始安裝,其實這樣是很麻煩的,不僅要依次執行多個安裝程序,並且每個修正檔安裝完成後都要求重新啟動。這樣的安裝簡直就是一場惡夢。你可能會想,只要分別安裝每個修正檔,最後統一重啟動一下就行了,不過這樣是很不可取的。如果要替換的文件被系統佔用,那麼新文件將被另外存放並被記錄在註冊表的未決文件重命名隊列(Pending File Rename queue)鍵值中,等下一次重新啟動電腦後再執行替換操作。根據這個特點,如果一次安裝多個Hotfix修正檔而不在每個安裝後重新啟動電腦,就會存在一定的問題。以下例子就可以說明:

假設我們要安裝Hotfix 1 和Hotfix 2 ,每次安裝後不重新啟動電腦。

2個Hotfix中都包含文件X,Hotfix 1的文件X版本為3.0,Hotfix 2的文件X版本為2.0,電腦中的文件X當前版本為1.0。

首先安裝Hotfix 1,由於電腦中的文件X被佔用,Hotfix 1的文件X被記錄在註冊表的未決文件重命名隊列鍵值中。

然後安裝Hotfix 2,結果是Hotfix 2的文件X被記錄在註冊表的未決文件重命名隊列鍵值中。

最後重新啟動電腦,因為Hotfix 2最後安裝,它的文件X版本2最終替換替換了電腦中的文件X版本1。顯然,這不是我們所期望的結果。

好在微軟考慮的是很週到的,他為我們提供了一個免費的小工具:Qchain.exe,利用它我們可以一次安裝多個修正檔程序,並且也不會在每個安裝完成之後都要求重啟動。

你可以直接按照一般方法先執行每個Hotfix程序,不過為了避免安裝後的重啟動,可以在命令行下執行「fix1.exe -z」,其中「-z」這個參數可以在安裝結束後避免重啟動電腦。除了「-z」,你還可以試試「-q」,用這個參數可以不出現詳細的安裝過程,做到全自動。在所有的Hotfix修正檔都安裝完成後,再次從命令行模式下執行QChain.exe,它將檢查註冊表的未決文件重命名隊列鍵值,對Hotfix 1和Hotfix 2等的安裝文件進行合適的連接、取捨等操作,最終保證被修改文件是最新版本。

如果你嫌這樣的操作太麻煩,還可以試試用腳本,使得全部的安裝更加自動化。腳本的使用方法是這樣的,把下列文字:

@echo off setlocal set PATHTOFIXES=c:update

%PATHTOFIXES%fix1.exe -z -q %PATHTOFIXES%fix2.exe -z -q %PATHTOFIXES%fix3.exe -z -q %PATHTOFIXES%qchain.exe

輸入到記事本中(c:update為本例中儲存所有Hotfix文件和Qchain.exe的位置,你需要按照你自己的情況更改),然後儲存成一個bat文件,雙擊後就可以自動執行,而你只需要在全部的修正檔都安裝完成後重啟動電腦就可以了。而對於每個修正檔所支持的安裝參數,你可以通過執行fix1.exe /?獲得。

用qchain.exe雖然很方便,不過可能會在有些情況下發生一些問題,就是,一旦修正檔程序中包含 HKEY_LOCAL_MACHINE SystemCurrentControlSetControlSession ManagerKnownDLLs 這個鍵值所示的二進制文件時就會發生錯誤,因為這裡的文件都是在啟動時被裝載到記憶體的,所以遇到這種情況,你就只能老老實實地執行安裝程序,然後重啟動了。

※本欄文章從網路搜集而來,未能一一測試,僅供參考,未能保證,請小心使用。

Date: 2010-03-03