連結

Google 連結廣告

2009年1月9日 星期五

解決SVCHOST造成CPU100%的問題

有些人可能會有這樣的困擾,明明就沒有開啟什麼程式,但是執行起來的速度卻很慢,按出工作管理員檢查發現其中一個SVCHOST CPU資源吃很兇,害的整個系統慢了下來,雖然知道是這個地方所造成,但卻不知從何下手,又不能停止他的執行程序,因為他是系統必要執行程序,一但關掉它,可能反而會造成更多的錯誤或是被直接重新開機。

這個問題自己之前也碰過,到網路上查了很多相關的資訊,發現有兩種方法可以解決

第一種

這種方法也是大家目前在網路上看到最多人貼的吧,抄來抄去,貼的人也不懂為何要這樣做,以及這樣做的後果會如何,以下就將網路上流傳的文章以及自己做的補充來為大家說明:


(一)確認兩項系統服務。

(1)Automatic Updates
依序選取左下的「開始」->「執行」,輸入「services.msc」並按「確定」。(這個步驟主要是叫出服務視窗) 找到「Automatic Updates」這項服務,連點二下滑鼠左鍵開啟內容設定。 點選「登入」這個頁籤,先確認目前登入身分為「本機系統帳戶(L)」,而且不勾選底下的「許服務與桌面互動(W)」。接著再確認「Automatic Updates」這項服務已在目前的「硬體設定檔」中被啟用,若未啟用,則按下「啟用」鍵。

(2)Background Intelligent Transfer Service (BITS)
在相同服務視窗找到「Background Intelligent Transfer Service」這項服務,連點二下滑鼠左鍵開啟內容設定。 點選「登入」這個頁籤,先確認目前登入身分為「本機系統帳戶(L)」,而且不勾選底下的「允許服務與桌面互動(W)」。接著再確認「Background Intelligent Transfer Service」這項服務已在目前的「硬體設定檔」中被啟用,若未啟用,則按下「啟用」鍵。

(二)修復 Windwos Update 執行元件。

依序選取左下的「開始」->「執行」,輸入「REGSVR32 WUAPI.DLL」並按「確定」。接著視窗會跳出「Dll Register Server 在 WUAPI.DLL 成功」的訊息,按「確定」完成動作並關閉視窗。接著,依照上述步驟逐一執行以下Windwos Update 元件:

REGSVR32 WUAUENG.DLL
REGSVR32 WUAUENG1.DLL
REGSVR32 ATL.DLL
REGSVR32 WUCLTUI.DLL
REGSVR32 WUPS.DLL
REGSVR32 WUPS2.DLL
REGSVR32 WUWEB.DLL

(三)清除舊有 Windows Update 暫存目錄。

依序選取左下的「開始」->「執行」,輸入「cmd」並按「確定」以開啟命令提示視窗。 在命令提示視窗裡的命令提示字元右方輸入指令「net stop WuAuServ」暫停Automatic Updates服務。 依序選取左下的「開始」->「執行」,輸入「%windir%」並按「確定」以開啟系統資料夾。 在系統資料夾裡找到「SoftwareDistribution」這個目錄,並且把它更名為「SDbak」。 依序選取左下的「開始」->「執行」,輸入「cmd」並按「確定」以開啟命令提示視窗。 在命令提示視窗裡的命令提示字元右方輸入指令「net start WuAuServ」重新啟動Automatic Updates服務。 這樣整過一次骨之後,svchost.exe就沒再出來亂了

-----------------------------------------------------------------------------------------------

以上這些是網路上大家所流傳的方法,先修改服務設定,再重新登入一些.DLL檔,之後再將Windows Update的備份資料夾更名,有的人說有用,有的人說還是一樣,不過我相信,寫那麼多,一定沒有幾個人看的完,所以我就寫了一個懶人包,也是一樣,將下面的文字複製,貼到記事本上,並且另存新檔成XXXX.bat,之後點兩下,上面寫的那麼多的東西,一次就OK了~

--------------------請從這以下開始複製----------------------------------------

CLS
@ECHO OFF
COLOR 0E
ECHO.
ECHO ----------------------------------------------------------------
ECHO 處理中.....
ECHO ----------------------------------------------------------------
REGSVR32 WUAPI.DLL /s
REGSVR32 WUAUENG.DLL /s
REGSVR32 WUAUENG1.DLL /s
REGSVR32 ATL.DLL /s
REGSVR32 WUCLTUI.DLL /s
REGSVR32 WUPS.DLL /s
REGSVR32 WUPS2.DLL /s
REGSVR32 WUWEB.DLL /s
ECHO.
net stop WuAuServ
cd c:\windows
ren SoftwareDistribution SDbak
net start WuAuServ
ECHO ----------------------------------------------------------------
ECHO 完成 !!!
ECHO ----------------------------------------------------------------
ECHO.
pause


--------------------複製到這邊就好-------------------------------------------


第二種

因為第一種方法並不是大家都可以解決問題,所以就想說,搞不好根本就不是windows更新的問題,查下去的結果還真的就是像我所想的一樣,這是windows本身就存在的BUG,也因為如此,所以微軟本身也有放出更新檔,只要下載下載更新後就可以解決了。


因為大家大多是使用super XP,裡面所含的更新並不是最新的,都是很多年前的(畢竟都出那麼久了),所以才會有很多人會有這樣的問題發生,所以可以下載下列兩個檔案,更新後重新開機就OK啦~

http://www.microsoft.com/downloads/details.aspx?displaylang=zh-tw&FamilyID=7a81b0cd-a0b9-497e-8a89-404327772e5a

http://go.microsoft.com/fwlink/?LinkID=91237

以上兩種方法,大家都可以試看看囉~

沒有留言:

張貼留言