症状现象描述:
机器启动运行几分钟后 svchost.exe就会占系统cpu资源的100%
拔掉网线就好了,重连上网后一会儿:svchost.exe又占cpu资源的99%;
解决方法:
假设你已经使用了免费杀毒软件排除了病毒和已经使用防间谍软件排除了恶意软件的影响:
想办法清空C:\WINDOWS\SoftwareDistribution 目录下所有的文件重启机器即可。(C:\WINDOWS\SoftwareDistribution是Windows update服务的临时文件存放目录)
如果机器提示文件正在使用("Automatic Updates"服务正在运行)无法删除相应目录:
则想办法打开控制面板==>管理工具==>服务,找到"Automatic Updates",设置成手动启动,
重启后再删除 C:\WINDOWS\SoftwareDistribution。问题就解决了。
然后再打开控制面板==>管理工具==>服务,找到"Automatic Updates",恢复成自动启动重启。
注意:重启后最好在上网条件比较好的地方让系统顺利完成一次系统自动更新。
原因分析:
先说说什么是svchost.exe:简单的说没有这个RPC服务,机器几乎就上不了网了。很多应用服务都是依赖于这个RPC接口的,如果发现这个进程占了太多的CPU资源,直接把系统的RPC服务禁用了会是一场灾难:因为连恢复这个界面的系统服务设置界面都无法使用了。恢复的方法需要使用注册表编辑器,找到 HKEY_LOCAL_MACHINE >> SYSTEM >> CurrentControlSet >> Services >> RpcSs, 右侧找到Start属性,把它的值改为2再重启即可
造成svchost占系统CPU 100%的原因并非svchost服务本身:以上的情况是由于Windows Update服务下载/安装失败而导致更新服务反复重试造成的。而Windows的自动更新也是依赖于svchost服务的一个后台应用,从而表现为svchost.exe负载极高。 常发生这类问题的机器一般是上网条件(尤其是去国外网站)不稳定的机器,比如家里的父母的机器,往往在安装机器几个月以后不定期发生,每个月的第二个星期是高发期:因为最近几年MS很有规律的在每个月的第二个星期发布补丁程序)。上面的解决方法并不能保证不重发作,但是为了svchost文件而每隔几个月重装一次操作系统还是太浪费时间了。
教训:spoolsv.exe和svchost.exe的问题都是应用遇到失败/例外情况后自动重试造成的,本想为用户节省时间的设计,但是重试的频度过高反而导致了和病毒一样的效果。
注意 svchost.exe 程序删不得的原因 本文来自于我复制并非转载!!请不要告我!谢谢!
前几天,我发现自己的xp运行比较慢,察看“windows任务管理器”cpu利用率接近100%,其中一个svchost.exe站了大概90%多的cpu资源,把这个占用资源厉害的svchost.exe进程结束掉,系统马上就变为正常。可是过不了多久,又会出现一个svchost.exe进程,使系统慢下来,想到以前某些病毒常用这个进程来毒害系统,一怒之下,进系统目录把svchost.exe这个文件重名名为svchost.ex,再把其他的几个svchost.exe进程全杀了。系统一直用到下午下班也没有什么异常,因急着下班,把笔记本电脑合上盖子(没关机)就装进包里回家了。第2天上班,我把计算机关闭了,然后重启系统,桌面出现后,发现邮件收不了,再用浏览器上网,也不灵。耶!居然出问题了。先看网络设置正确不,运行 ipconfig/all,晕,没有ip地址,接着右击“网上邻居”,天啦,居然是空的,以前那几个本地连接的图标不出来了,没法用鼠标设置ip了;这里不让设置,难不倒我,咱在注册表设置,用regedit进注册表,搜索”tcpip”把相关的网络参数都一股脑输进去,然后重启系统,还是没有ip地址.看来问题有点严重,得好好检查一下了.先检查一下系统服务,结果发现很多都应该启动的服务没有自动起来,既然不能自动起来,好,我来手动启,跟我作对,启不来,再换一个,还是启不来,试遍了也不行,放弃.不能上网大不了不上,把<不完全恋人>拿出来看,插光盘到光驱,怎么直接打开光盘浏览文件而不启动默认的播放程序呢?弹出光盘,再摁进去,还是不自动播放.手动启播放器,终于播放了,怎么半天没声音呢?你不响是不?我调不行么,嘿,居然不见那个喇叭了,进”控制面板”,声音和音频设备属性没发现设备;再看”设备管理器里”驱动程序,驱动还在呀,真是活见鬼了.启用系统还原,失败,再来,多次失败. 进安全模式,执行系统还原,还是失败.上网不行,看片也不行,急噪呀!再检查系统,看中毒没有.手动用symantec antivirus扫描,闪一下就寂寥不见了(自动消失),看进程里有一个dosan的进程,疑是不法程序,搜一下,没搜索界面出来,不让搜.只好用鼠标点击”我的电脑”图标一级级系统目录,通过”按修改时间”排列图标企图找出最近修改的文件,也没看出哪个文件异常.看来中招的可能性很小.再想想,我是不是改了什么东西呢?对了,想起来了,那个svchost.exe不是被我改名了么!恩,把它改回来试试.一看,它居然还在,幸好没delete它.重启系统,开机声音出来了,再看”本地连接”等图标也出来了,检查系统服务,都给我乖乖的自动起来了.到这里恢复正常.再不正常的话,要准备用光盘格式话重新安装系统了.那svchost.exe是干什么的呢?svchost是windows的共享进程,MS为了是windows节省资源,把很多服务做成共享方式,用svchost.exe这个进程来引导这些共享的服务.这个文件被我挪走之后,靠它来启动的共享服务就没有启动方式了―因为这些共享服务的存在形式是动态链接库文件,它本身不能执行(举例:svchost.exe类似药罐,以共享方式启动的系统进程类似中药,现在药罐不在了,自然就没法熬药).这就是故障发生的根本原因.拿lunix/unix来比较,这种方式与xinetd/inetd启动某些守护进程倒是很相似.有些病毒为了隐藏自己,也打起svchost.exe的主意,以前的病毒程序一般以可执行的方式存在,依靠注册表、启动项等方式随开机自动运行,后来,逐步演变成以动态链接库的方式,然后借svchost.exe来启动。其实有害的是非法的dll动态链接库文件,我错怪了svchost.exe,才引起这么大的麻烦。
解决办法如下:
前面讲了误删svchost.exe文件引起诸多麻烦及怎么恢复的事情,但没有交代系统为什么变慢这个问题,在这里补充完整。系统起来后一会,一个svchost.exe进程又占用太高的cpu资源,而另外的其他几个svchost.exe进程却占用很少的资源,看来一定时中病毒了。先搜索一下看有没有别的svchost.exe程序,把隐藏的全部显示出来,结果搜到2个svchost.exe文件,其路径分别为:c:\windows\system32\svchost.exe、c:\SysWsj7\svchost.exe,前一个是系统文件,应该是正常的,另外一个肯定是李鬼!进目录c:\SysWsj7\看看都有什么东西,耶!有2个文件,另外一个是ghook.dll,查一下目录属性,创建时间是2007-3-29日,我的系统是2006年3月买了自带的,显然是有问题的目录。在进程管理器里,把占用资源最大的那个svchost.exe进程杀了,然后进目录c:\SysWsj7把那个李鬼文件和ghook.dll改名。再看它们是在哪里启动的,在运行里输入msconfig,在启动项发现 scvhost.exe 命令路径是c:\SysWsj7\svchost.exe。罪魁祸首找到了,把这个框里的钩去掉,我看你怎么作怪。这个木马在网上有N多资料,不再��嗦。
重启系统,故障排除。