分享

为什么进程里面会出现多个SVCHOST.EXE

 菜园子图书馆 2014-01-11

      很多朋友都以一个疑问,为啥进程里面会有好几个SVCHOST.EXE进程出现?

现在我就用比较俗的解释比喻一下:

SVCHOST.EXE好比是一头牛,系统服务就像是牛身上的寄生虫,所以牛就是那些寄生虫的宿主。

也就是说服务都依附在SVCHOST.EXE进程后面运行,当然具有交互界面的服务除外(比如:Print Spooler服务)。

那为啥服务不都依附到一个SVCHOST.EXE后面呢?

因为不同的服务具有不同的启动参数,参数一样的就会归类到他们共有的一个宿主后面,哪怕是只有一个不同服务启动参数的服务,也要新开一个SVCHOST.EXE宿主,所以说有多少启动参数类型一样的服务,就会出现一个SVCHOST.EXE,哪怕是这种启动参数的服务只有一个,也要新开一个宿主。也许看着有些糊涂,那就再用俗的解释一下:

我们把服务统称为调味品,调味品里面分别有盐、味精、胡椒,你肯定会拿三个瓶子,然后把他们各自放入到一个瓶子里面(这里的瓶子就算是SVCHOST.EXE),如果你再买回辣椒面,你肯定不会把它和别的混合在一个瓶子里面,就会再拿一个新瓶子装,这次就会多出一个瓶子。以此类推你每增加一个新的调味品,就会再拿出一个瓶子来装它。

上面解释的够通俗吧!所以说每个SVCHOST.EXE都是负责一类启动参数的服务,如果你的进程里面有5个SVCHOST.EXE,那么就可以说你所有的已启动服务使用了五种启动参数,启动参数相同的服务就会在同一个SVCHOST.EXE进程后面。

所以说SVCHOST.EXE进程过多,并不就表示你的系统出了状况,但是可能开启了一些并用不上的服务,可以去服务里禁用掉当前不需要的服务。

如果需要查看系统当前加载了那些服务,每个SVCHOST后面都有那些服务,现推荐两种方法:

1、使用微软免费提供的PROCESS EXPLORER工具 (我极力推荐使用此款工具,免费、功能强大)

2、使用CMD /K TASKLIST /SVC命令

这里我还想强调的一点:千万不要为了减少SVCHOST.EXE进程数而去禁用服务,因为每个人的电脑配置设置不同,也不要参考某个人的电脑或者某些优化软件所谓的成品模板来禁用服务,而是要按照自己当前的需求来合理设置。不合理不恰当的设置服务将会造成系统运行缓慢或出现错误,如果出现这种情况,可以参考我博客里面的“为什么REALPLAYER会装不上”这篇里面介绍的方法进行恢复。

当然某些木马会伪装成SVCHOST这个名字运行,但是这个并不难判断,因为windows在同一路径下不允许存在同名的文件,正常的SVCHOST.EXE应该在%WINDIR%\SYSTEM32目录下面,如果观察到某个SVCHOST.EXE不是这个路径,就可以判断为不正常的进程,所以说不要一棒子打死所有的SVCHOST.EXE,只要稍微的细心观察一下,黑白即辨。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多