2008年6月29日 星期日

吃 CPU 資源的 svchost




svchost.exe 吃掉 CPU 資源的成因很多,不過,根據我處理的狀況及查看網友的過程大都是在執行 Windwos Update 時發生的。
 
在進行網路搜尋時,找到個好辦法,現在整理如下:

解決方法主要就是把 Windows 的自動更新重設一次,步驟如下:

一、首先檢查系統服務的狀態。
1. 點「開始」–>「執行」,輸入「services.msc」後按「確定」。
2. 在服務「Automatic Updates」上點二下。
3. 點選「登入」頁籤,確定登入身分為「本機系統帳戶」且「允許服務與桌面互動」“沒有”被選取。
4. 確認服務已在目前的「硬體設定檔」中被啟用,如果沒有,按下「啟用」按鈕。
5. 點選「一般」頁籤,確定「啟動類型」為「自動」,然後按下「啟動」按鈕以啟動服務。
6. 對「Background Intelligent Transfer Service (BITS) 」服務重覆 2 ~ 5 的步驟。

二、接著重新註冊 Windwos Update 的元件。
1. 點選「開始」–>「執行」。
2. 輸入「REGSVR32 WUAPI.DLL」後按 Enter。
3. 當看到 “DllRegisterServer 在 WUAPI.DLL 成功” 的訊息後按下「確定」。
4. 重覆上述步驟重新註冊下列元件
REGSVR32 WUAUENG.DLL
REGSVR32 WUAUENG1.DLL
REGSVR32 ATL.DLL
REGSVR32 WUCLTUI.DLL
REGSVR32 WUPS.DLL
REGSVR32 WUPS2.DLL
REGSVR32 WUWEB.DLL

三、最後清除可能已損壞了的 Windows Update 暫存目錄。
1. 點「開始」–>「執行」,輸入「cmd」後按「確定」。
2. 在命令提示字元中鍵入以下指令。(若出現錯誤訊息請先重開機後再報執行一次)
net stop WuAuServ
2. 點「開始」–>「執行」,輸入「%windir%」後按「確定」。
3. 找到「SoftwareDistribution」並更名為「SDold」。
4. 點「開始」–>「執行」,輸入「cmd」後按「確定」,並在在命令提示字元中鍵入以下指令。
net start WuAuServ
 
四、大功告成!

======================

先謝謝原po的教學,我試過,真的有效!
另我把整個流程寫成batch檔了。
copy這些內容後,貼在純文字檔內,改副檔名為.bat
執行這個批次檔就行了。

=copy以下內容=
sc config BITS start= auto
net start BITS
sc config WuAuServ start= auto
net start WuAuServ
REGSVR32 /s WUAPI.DLL
REGSVR32 /s WUAUENG.DLL
REGSVR32 /s WUAUENG1.DLL
REGSVR32 /s ATL.DLL
REGSVR32 /s WUCLTUI.DLL
REGSVR32 /s WUPS.DLL
REGSVR32 /s WUPS2.DLL
REGSVR32 /s WUWEB.DLL
net stop WuAuServ
cd %windir%
md SDold
attrib -r -a -s -h SoftwareDistribution /S /D
attrib -r -a -s -h SDold
move SoftwareDistribution\. SDold\
net start WuAuServ
shutdown -r -t 10
=copy 以上內容=

ps.注意,執行完後,會倒數10秒重開機,若不要的話,
把最後一行shutdown 那行殺掉就不會自動重開機了。

原文出處: http://www.yannicafe.info/wp/2007/02/18/61.html
.
.

馬上按讚 加入 [兔兔電腦教室] 粉絲團

沒有留言:

加入Google+ Facebook 馬上按讚 加入兔兔電腦教室粉絲團

 

站群搜尋

含主站,論壇,部落格
自訂搜尋