最近遇到了一个spoolsv.exe 占用系统达100%的问题,在网上查了查,发现网上的高手还真不少,我顺便把以前经常碰到的svchost.exe占用系统达100%也查了一下,总结如下:
 
spoolsv.exe占用系统达100%
A.解决方法其实很简单,假设你已经使用了杀毒软件排除了病毒和已经使用防间谍软件排除了恶意软件的影响:
只要清空C:\WINDOWS\system32\spool\PRINTERS 目录下所有的文件即可。
解决方案:
为避免发生此问题,请不要在打印后台文件位于 %Systemroot%\System32\Spool\Printers 文件夹中时更改它的属性。
要解决此问题,请删除只读属性,然后将该后台文件从 %Systemroot%\System32\Spool\Printers 文件夹中删除。
要删除只读属性,请右键单击 Windows 资源管理器或我的电脑中的后台文件,单击属性,单击清除只读复选框,然后单击确定。
有关如何在 Windows 2000 中删除文件的更多信息,请单击开始,单击帮助,单击索引选项卡,键入删除,然后双击删除文件主题。

B.根据flyingrufei反馈的另外一个解决反复出现spoolsv这个问题方法:打印机有个后台管理的选项可以控制。将spoolsv服务打开(具体是在我的电脑---管理----服务---PRINT SPOOL,启动),然后打开控制面板的打印机项目,右键打开打印机属性---高级,把后台打印改为直接打印---OK!
 

  C.
 1.假设你已经使用了杀毒软件排除了病毒和已经使用防间谍软件排除了恶意软件的影响。
     这个sploosv.exe占用cpu高的大部分网友其实都不是因为中毒了,我说的大部分哦!如果是...自己看!!!
    2.大部分关于这个问题的文章都是将相关打印后台服务给禁用解决的,可是这样就不能打印了,岂不有点因噎废食?
    如果你没用打印机,这是最好的解决方法
    3.请看从微软帮助文件里截取的说明(这里我想发表下对微软的说明文件看法,是老外语法有误还是国人翻译外文时候像金山词霸翻译软件那样逐个字的翻译啊?有时候你念他的说明特别的拗口,语句狗屁不通)
大家试着念下面的文字,有的地方是不是特别的难于理解,前后矛盾的感觉!
    微软帮助文件里解决方案:
    为避免发生此问题,请不要在打印后台文件位于 %Systemroot%\System32\Spool\Printers 文件夹中时更改它的属性。
    要解决此问题,请删除只读属性,然后将该后台文件从 %Systemroot%\System32\Spool\Printers 文件夹中删除。
    要删除只读属性,请右键单击 Windows 资源管理器或我的电脑中的后台文件,单击属性,单击清除只读复选框,然后单击确定。
    有关如何在 Windows 2000 中删除文件的更多信息,请单击开始,单击帮助,单击索引选项卡,键入删除,然后双击删除文件主题。
      无语...
   4.网上另一个解决问题步骤(头晕!)
1. 单击开始,单击运行,键入mmc,回车。
2. 在文件菜单上,单击添加/删除管理单元。
3. 依次单击添加、计算机管理、添加,然后单击完成。
4. 单击关闭,然后单击确定。
5. 依次展开计算机管理和“服务和应用程序”,然后单击服务。
6. 右键单击 Print Spooler,然后单击停止。
7. 单击开始,单击运行,在打开框中键入 %SystemRoot%\System32\spool\PRINTERS,然后单击确定。
8. 删除 %SystemRoot%\System32\spool\PRINTERS 目录下的所有文件。
9. 选择服务窗口,右键单击 Print Spooler,然后单击启动。
10. 重新执行打印操作。
#########################################################################
    看了上面这么多的介绍,你是不是也头晕了!哈哈!不是我在这里卖乖,其实问题很简单,只要你搞懂了问题出现的原因和表象,并从中找出问题的解决径。 
   打印机SPLOOSV.EXE进程占用CPU高的一个主要原因是:
    当你有请求打印程序后,而当你的打印机未设置好,或当打印队列文件损坏时,就会在 %SystemRoot%\System32\spool\PRINTERS 目录里面创建打印队列文件,扩展名分别是 SHD 和 SHL。SHD 文件用于描述当前脱机打印的信息,包含了打印任务发起者,打印任务中的队列信息,以及该打印任务目的地等信息。SPL文件为当前脱机文件,包含当前打印任务的内容。
   位于该目录下的打印队列文件 SHD 或 SPL 的文件内容存在或损坏时,导致 Print Spooler 服务无法完成正常的打印操作,导致 Print Spooler 服务的进程 spoolsv.exe 进行反复的尝试,进而占用大量的 CPU 占有率,这个现象有可能导致系统挂起。
   解决的办法很简单:
    别像上面说的那么啰嗦了!把打印机卸载掉,重新再装一次就可以了!什么?打印机怎么装?这个不要找我了!我也不知道!!!!
    这么做是什么道理呢?!就像重新再白纸上写字一样,不会有打印后台文件了的排队等待了,也就没有了spoolsv.exe 进行反复的尝试了。
    还有打印机有个后台管理的选项可以控制:打开控制面板的打印机项目,右键打开打印机属性---高级,把后台打印改为直接打印---OK!(针对的是不多的打印要求机子说的)
后记:
 这个问题其实从Windows 2000开始就有了,但到一直没有解决。而微软也有相关的帮助文档,可惜就是在网上无法被用户搜索到,因为文档中没有任何关于spoolsv占CPU 100%之类的现象说明,所以说:开发者和用户之间的想法根本就是两回事儿。
 
svchost.exe占用系统达100%
 
svchost.exe占用CPU 100%的解决方法
现象:
机器启动运行几分钟后 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",恢复成自动启动重启。