XP系統不能更新的故障分析
曾經聽到有人推薦讓WindowsXP快10倍的軟件,這是一個德國人做的優化程序,以停止部分服務達到優化的目的,但是在按照要求進行優化以後,很多比較有用的服務也不能使用了,包括防火牆、安全中心、自動更新。別的好說,如果機器不能自動更新,實在是一件讓人煩心的事。今天下午筆者就碰到了這個問題。
在訪問Windows UPDAte或者Microsoft Update網站時,網頁提示錯誤代碼0×80070422 (顯示在屏幕右上角),大意是提示Windows Update服務被禁用,需要到組策略啟動相應的服務。不過鑒於在此之前曾經做過優化,在進行操作之前必須先用那個優化程序的還原功能,也就是在操作時選第4項。可是在操作時又出現了問題。
啟動自動更新服務時出現提示對話框,說與此服務相關的組件未能啟動,因此啟動失敗。這顯然也是那個優化方案的結果。為此又去百度進行了查找,發現了需要先重新注冊的dll文件。
注冊 qmgr.dll和qmgrproxy.dll
regsvr32 qmgr.dll
regsvr32 qmgrproxy.dll
在注冊 qmgrproxy.dll 時單擊“確定”後系統提示說找不到模塊,經過測試不影響恢復。
做完後我們回到組策略窗口,啟動所有能啟動的服務。不行的話再從頭到尾來一遍。
一切工作完成,問題解決。
遇到同類問題的朋友可以參考這個解決方法。
下面把運行windows update時遇到錯誤情況的解決方案歸納如下,遇到問題時可以依次嘗試:
1、確保用的是IE,不是firefox或者opera(為了cb廣大的opera fans特別提醒,不要習慣成自然^_^), 不推薦用IE tab。
2、禁止當前浏覽器攔截彈出窗口,換句話說就是允許彈出窗口(同樣很簡單,但是容易被忽略)。
3、查看hosts文件有沒有被修改,恢復其原狀。hosts文件一般位於
$WINDIR$\system32\drivers\etc。
4、清空IE緩存,臨時文件、歷史記錄。
5、確保自己當前是系統管理員,或者在“控制面板”-“用戶帳戶”刪除所有不用的帳戶,然後重新啟動。這一條是最重要的,即使不用管理員帳號也能更新,但是也許會出現不可預知的錯誤
6、適當的調整ie對activex、javascript的限制,可以在internet選項的“安全”選項卡裡調整。如果怕影響安全性,可以僅對http://update.microsoft.com進行調整。
7、注冊URLMON。dll,MSXML3。dll,jscript。dll,qmgr。dll和qmgrproxy。dll:
regsvr32 dll名稱。dll
8、將WUAUSERV和BITS添加到SvcHost進程中:打開REGEDIT,浏覽到
HKEY_Local_Machine\Software\Microsoft\WindowsNT\CurrentVersion\SvcHost
打開“netsvcs”項。在“數值數據”下,將“BITS”和“WUAUSERV”添加到服務列表中。修改以後重新啟動。【適用於錯誤代碼0×8007043B】
9、如果 DataStore 文件夾中的內容不匹配,【適用於錯誤代碼0×80070002】可以考慮刪除
%windir%\SoftwareDistribution\DataStore
文件夾的所有內容,刪除不了就先把自動更新服務停用。
10、不要使用代理。檢查是不是Windowsupdate在受限站點的名單裡面;如果是,將其刪掉。
11、設置合理的系統日期和時間。
12、確保相關服務啟動。服務名稱:Automatic update(或者“自動更新”),BITS(或者“後台智能傳送服務”)等。方法:運行serviCES。msc,然後啟動相應的服務,如果不知道應該啟動哪個,就把能啟動的都啟動,日後再逐一排除。