svchost.exe到底是什么?
读这篇文章的疑问是什么?因为你正想知道究竟为什么有差不多一打的svchost.exe进程在你的计算机中运行。你不能手工结束他们,并且你不记得他们是从何时开始运行。它们是干嘛的?
Svchost是什么?
根据微软的说法:“svchost.exe是以动态链接库为动力运行的服务的一个一般进程名。”
不久前,微软开始将内部Windows服务的功能用.dll文件来替代.exe文件。 从编程视角来看,这样对可用性提高更有意义,但问题是你并不能直接在Windows中执行一个.dll文件,它必须被加载并转化成可执行程序(.exe)。 因此svchost.exe进程便诞生了。
为什么有如此多的Svchost.exe运行?
如果你曾经在控制面板里面看过“服务”部分,你应该会注意到有许多服务都被Windows所需求。如果每个单独的服务都运行在同一个单一svchost.exe实例下,任何一个错误就将能搞跨整个Windows。因此,它们才被分隔开来。
这些服务被组织进一个逻辑组当中,并为每一个逻辑组创建一个单一Svchost.exe实例。 例如,一个svchost.exe运行与防火墙有关的3个服务。另一个svchost.exe实例则可能运行全部与用户界面相关的服务,等等。
我能对Svchost做什么?
你能通过禁用或停止一些“绝对不需要用”的服务来达到削减服务的目的。 另外,如果你发现某个Svchost.exe实例占用非常高的CPU性能,你可以尝试重启此实例下的服务。
最大的问题在于如何识别服务运行在哪个svchost.exe实例下。
如果你对我们谈论的感到好奇,请打开Windows任务管理器,并点击“显示所有用户的进程”按钮:
通过命令行查看(Vista或XP)
如果你想看到哪些服务正被一个Svchost.exe实例运行,你可以从命令行里面输入tasklist命令来看到这个目录列表。
tasklist /SVC
Vista中使用任务管理器查看
你可以右击一个svchost.exe进程并选择“转到服务”选项。
这将会跳转到服务选项卡,并且运行在此svchost.exe进程下的所有服务将高亮被列出:
这样做的好处在于你可以直接在描述中看到服务的名字,因此,如果你不希望它运行便可以选择禁用服务。
vista或XP中使用Process Explorer查看
你可以通过使用微软Sysinternals的优秀工具Process Explorer 来查看服务正作为svchost.exe进程的一部分在运转什么。
在进程上移动你的鼠标,此时将高亮列出所有的服务:
或者你双击一个svchost.exe实例并选择服务选项卡,如果你这么做,你便能停止其中的任何一项服务。
禁用服务
在控制面板的管理工具中打开服务,或者在开始菜单的搜索或运行中敲入services.msc。
在服务列表中找到你想禁用的服务,并双击或右击选择属性。
更改启动类型为禁用并点击停止按钮立即停止服务。
如果你喜欢,也能通过命令方式来禁用服务。在这条命令中,服务名称“trkwks”来自上述对话框,但如果你回到文章开头的tasklist命令,你会发现那种查看方式更有效率。
sc config trkwks start= disabled

最近评论