首頁 > 資訊 > 吃掉所有CPU資源的 svchost.exe

吃掉所有CPU資源的 svchost.exe

2007年2月18日 發表評論 閱讀評論

過年回到家後發現,家裡的 PC 和老媽的 Notebook ,莫名其妙的都會被 svchost.exe 佔用掉所有的 CPU 資源(難怪老媽一直跟我抱怨新買的 Notebook 總是跑的很慢 XD)。一看到這個情況,腦中馬上浮現「不會是中毒了吧」的念頭,於是在 CPU 使用率總是停在100%的狀態下,花了半天的時間才把兩台電腦做掃毒、掃木馬以及Windows Update。結果當然,事情不是憨人想的那麼簡單,好幾個小時換來的代價就是,連個子兒都沒掃到,神秘的svchost.exe仍舊霸道地侵佔我的CPU。無可耐何之下只好求助Google大神,試了好多種解法都禺用,不過總算是皇天不負苦心人,最後還是讓我找到了解決的方法。

svchost.exe 吃掉所有 CPU 資源的原因很多,不過我的狀況都是在執行 Windwos Update 時發生的(或是自動更新服務 Automatic Updates 執行時)。因此解決方法主要就是把 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

四、大功告成!

Categories: 資訊 Tags:
  1. zouyang
    2008年8月12日09:33 | #1

    thank you very much !!!!
    you are great!!

  2. 2008年8月15日12:13 | #2

    請問大大,這樣做了之後,是否還會自動更新!

    謝謝

  3. 2008年8月18日17:24 | #3

    To lavender52511on:
    請問您說CPU還是100%,請問是svchost.exe佔用的嗎?還是有其他的?
    一下就不會100%了的「一下」是多久呢?

    To chengwon:
    是的,不然會被更新程序lock住

    To jayon:
    Sorry, Vista我沒有試過耶
    那如果您跳過失敗的那些檔案繼續下去
    能解決您的問題嗎?

    To zouyangon:
    You’re welcome!

    To neoon:
    是的,只要您有確實執行最後一步
    net start WuAuServ
    的指令重新啟動自重更新服務即可

  4. ding
    2008年8月19日12:07 | #4

    恩人啊

  5. Jenny
    2008年8月21日10:48 | #5

    Automatic Updates沒這個東西

  6. 2008年8月23日20:18 | #6

    To Jenny:
    有些電腦會是中文的「自動更新」

  7. carridy
    2008年8月24日13:01 | #7

    楼主,我想请问下,我开机的时候CPU也会窜到100%,卡的很,但是过个1两分钟又会掉下来,有的时候上网浏览网页或者玩个桌面小游戏比如恐龙蛋这样的小游戏CPU也会突然窜到100,请问是怎么回事呢,是不是也是因为WINDOWS升级的原因啊,可是我电脑没提示我WINDOWS在升级啊?请指教!

  8. 2008年8月25日15:26 | #8

    八月 18th, 2008 at 17:24 @433
    To lavender52511on:
    請問您說CPU還是100%,請問是svchost.exe佔用的嗎?還是有其他的?
    一下就不會100%了的「一下」是多久呢?

    回您话,我也搞不太清是什么占用了CPU,一下就是1s到2s的时间.没看清是’谁’…请问可以帮帮我不?谢谢!

  9. 2008年8月30日09:52 | #9

    To carridy & lavender52511:
    請您在Windows下方的「開始工作列」上按右鍵,點擊「工作管理員」,然後在「程序」的這個頁籤裡可以看到每個程序所佔用的CPU資源。先從這裡去了解是哪個程序佔用了您的大量CPU資源,這樣才有辦法了解問題可能是出在哪兒喔。

  10. liuhucheng
    2008年9月9日00:05 | #10

    REGSVR32 WUPS2.DLL 版主哥哥 为什么我的这个注册错误呢?

  11. 2008年9月10日01:07 | #11

    To liuhucheng:
    可能的情況很多,我也沒法就這樣跟您說為什麼。
    但您可試著不理會它直接跳過繼續往下,看看是否能解決您的問題。

  12. yoruhiro
    2008年9月15日18:06 | #12

    實在是太感謝了

  13. si00228
    2008年9月21日11:55 | #13

    感謝大大貼的好文
    受益良多,解決我的問題了
    可以借轉貼嗎??
    我會註明出處的! 謝謝^^

  14. 2008年9月21日21:13 | #14

    To si00228:
    Sure, no problem! :)

  15. Fei
    2008年10月5日00:36 | #15

    解決了十分感謝

  16. Reeny
    2008年10月16日01:44 | #16

    你好
    我是個電腦白痴,想請問一下為什麼我有找到「SoftwareDistribution」可是不能更名為「SDold」呢?

  17. 朱朱
    2008年10月18日02:11 | #17

    大侠 我的问题是这样的 就是CPU一直不稳定 忽高忽低 落差很大 能帮忙给解决一下吗

  18. 2008年10月20日12:07 | #18

    To Reeny,
    您有先將自動更新的服務停止嗎?如果已停止了的話,可以用Unlocker之類的工具看看是哪個process鎖住你的檔案了。

    To 朱朱,
    您只給我這樣的資訊我也沒法幫您的。您至少要告訴我是哪支程序佔用了您的cpu資源啊~

  19. zilong
    2008年10月25日18:35 | #19

    按你步骤做下去,第2大步的第3小步,找不到SoftwareDistribution
    按你步骤做下去,第2大步的第3小步,找不到SoftwareDistribution

  20. zilong
    2008年10月25日18:37 | #20

    前面一切正常但最后找不到「SoftwareDistribution」
    前面一切正常但最后找不到「SoftwareDistribution」
    前面一切正常但最后找不到「SoftwareDistribution」

  21. NaCl
    2008年11月2日09:35 | #21

    我的狀況不是svchost.exe吃光資源,而是wuauclt.exe吃掉大半。
    甚至可能影響到開機進入桌面後直接卡住,按啥都沒反應= =
    之後就一直用「上一次良好的開機設定」進入桌面,通常都能順利進入。

    咕狗wuauclt後,發覺他是Update的東西,試著把自動更新關掉,瞬間CPU就回來了!
    所以試著用你的方式,似乎也不會栽一開始佔用CPU了^^
    再觀察個幾天,感謝你的文章!

  22. 苦恼的人
    2008年11月6日22:39 | #22

    我进行到第二大步的时候在运行里面输入REGSVR32 WUAPI.DLL的时候回车 显示 loadlibrary{"wuapl.dll}失败—找不到指定的模块 是怎么回事 我前面的步骤反复核对都对 为什么会出现这种情况 请帮帮忙 多谢 具体方法 请与我联系 QQ106713233

  23. 2008年11月27日09:20 | #23

    好文章
    可否轉貼~感恩

  24. 中学生
    2008年11月30日08:44 | #24

    还是 不行
    也许最后一步错了

  25. lcs771231
    2008年12月6日11:54 | #25

    真的很猛

    整個就是不會有這種情形了

    謝謝妳喔

    你是高手

  26. 2009年1月22日18:19 | #26

    不好意思,請讓我借用轉載
    我將轉到巴哈姆特-光明戰記哈拉版
    謝謝^^

  27. 2009年1月22日19:05 | #27

    請問 1. 點「開始」–>「執行」,輸入「cmd」後按「確定」。
    2. 在命令提示字元中鍵入以下指令。(若出現錯誤訊息請先重開機後再報執行一次)
    net stop WuAuServ
    2. 點「開始」–>「執行」,輸入「%windir%」後按「確定」。
    3. 找到「SoftwareDistribution」並更名為「SDold」。
    4. 點「開始」–>「執行」,輸入「cmd」後按「確定」,並在在命令提示字元中鍵入以下指令。
    net start WuAuServ

    net start WuAuServ 打完要案 Enter 嗎 還是打完就可以關掉了 還有 要的時候要加空白嗎.

    幫解答一下 3Q

  28. 2009年1月22日19:16 | #28

    再請問一個 問題 全部 全成後 要多久才能看到 容量全部釋放出來 幫解答 3Q

  29. 2009年1月22日19:28 | #29

    請問 我C磁碟朝 原本有 20.0GB 只要用以上方法ㄧ次 就可以恢復了嗎 !!

    幫解答 3Q

  30. 2009年1月23日09:03 | #30

    4. 點「開始」–>「執行」,輸入「cmd」後按「確定」,並在在命令提示字元中鍵入以下指令。
    net start WuAuServ

    他說 相關服務已啟動 是要啟動還關閉阿 !!??

    幫解答一下 3q

  31. sky
    2009年3月2日22:18 | #31

    very good! thank you!!

  32. 李少
    2009年3月10日19:42 | #32

    前面都正常,到了这里REGSVR32 WUPS2.DLL出现了LoadLibrary("WUPS2″.DLL)失败—找不到指定的模块。这是怎么回事?我的QQ412660097。
    谢谢

  33. 2009年3月12日23:51 | #33

    @李少
    没关系,您可以跳过这步继续往后执行试试。抱歉我没有使用QQ。

  34. 2009年4月2日12:48 | #34

    CS :請問 1. 點「開始」–>「執行」,輸入「cmd」後按「確定」。2. 在命令提示字元中鍵入以下指令。(若出現錯誤訊息請先重開機後再報執行一次)net stop WuAuServ2. 點「開始」–>「執行」,輸入「%windir%」後按「確定」。3. 找到「SoftwareDistribution」並更名為「SDold」。4. 點「開始」–>「執行」,輸入「cmd」後按「確定」,並在在命令提示字元中鍵入以下指令。net start WuAuServ
    net start WuAuServ 打完要案 Enter 嗎 還是打完就可以關掉了 還有 要的時候要加空白嗎.
    幫解答一下 3Q

  35. HUNGYI
    2009年4月11日01:51 | #35

    請問 1. 點「開始」–>「執行」,輸入「cmd」後按「確定」。2. 在命令提示字元中鍵入以下指令。(若出現錯誤訊息請先重開機後再報執行一次)net stop WuAuServ

    您好:
    我按照著第1點下去做結果出現了C:\Documents and Settings\Administrator>net stop WuAuServ尚未啟動Automatic updates服務。
    詳細資料請輸入NET HELPMSG 3521

  36. HUNGYI
    2009年4月11日01:52 | #36

    HUNGYI :請問 1. 點「開始」–>「執行」,輸入「cmd」後按「確定」。2. 在命令提示字元中鍵入以下指令。(若出現錯誤訊息請先重開機後再報執行一次)net stop WuAuServ
    您好:我按照著第1點下去做結果出現了C:\Documents and Settings\Administrator>net stop WuAuServ尚未啟動Automatic updates服務。詳細資料請輸入NET HELPMSG 3521

    請問是那邊出了問題,能請教您幫忙解答,謝謝m(_ _)m

  37. 2009年4月11日04:00 | #37

    @婷
    要按Enter喔,net start WuAuServ三個字中間都有空白喔

  38. 2009年4月11日04:01 | #38

    @HUNGYI
    那是因為您的自動更新服務可能本來就沒有啟動,您可以試著繼續往下執行沒關係

  39. 大姐..!
    2009年4月26日06:54 | #39

    请问把所有的步骤做完后是否要把自动更新打开?然后重启机器才行?

  40. Maggie
    2009年6月22日09:28 | #40

    謝謝,希望這次能解決問題.不過過程中有一部分不一樣,系統中原本就存在"SDold",所以只好把舊的D掉,再把SoftwareDistribution改成SDold,希望不會影響結果.

  41. david
    2009年7月11日13:45 | #41

    大大感謝

  42. W捲
    2009年7月19日15:52 | #42

    真的感謝ˇ大大的改善了電腦~~~3Q

  43. plANe
    2009年8月2日20:40 | #43

    太感謝了=ˇ=

  44. pandf
    2009年8月4日21:32 | #44

    我跟往做了一遍,可是發現問題還有出現,之後我發現了我每次開機後Automatic Updates和Background Intelligent Transfer Service (BITS)都顯示已停用…
    而不是顯示自動,當然服務也沒有啟動…是不是我做少了某些步驟…

  45. rt0533
    2009年8月7日00:28 | #45

    前面的步驟都有確實執行~但是
    我到最後一個步驟~輸入net start WuAuServ
    它顯示"系統發生1058錯誤 無法啟動服務 可能因為服務已停用 或它沒有相關的啟用裝置"
    請問我該怎麼辦呀?
    謝謝!!

  46. pinpin2216
    2009年8月11日20:29 | #46

    剛照著上面程序做了 還不知道好了沒 先謝謝

  47. Eroscupids
    2009年9月4日16:30 | #47

    THX ALOT ^.^

  48. Sunny
    2009年9月10日09:40 | #48

    It works!! Thank you very much!

  49. lynn
    2009年9月24日08:23 | #49

    我按照流程做到最後沒有發生問題、但是cpu還是100% (但是我執行程式、不會有卡卡的)
    請問是什麼問題???

  50. zip
    2009年12月8日12:11 | #50

    大大 我按照您說的方法都執行成功
    但是我發現一個很大的問題
    問題就是"無名中貼上的youtube影片變成不能看了"
    請問這要如何解決
    有沒有方法把它變回原來的預設值
    煩請 解答!! 很急~~

評論分頁
  1. 2007年4月18日22:01 | #1
  2. 2007年4月30日12:01 | #2
  3. 2010年6月2日20:51 | #3