什么是服务主机进程(svchost.exe),为什么正在运行这么多主机?
如果您曾经浏览过任务管理器,可能会想知道为什么正在运行这么多Service Host进程。您无法杀死它们,而且您确定没有启动它们。那么,他们是什么?
服务主机进程充当从DLL文件加载服务的外壳。服务被组织到相关的组中,并且每个组都在服务主机进程的不同实例中运行。这样,一个实例中的问题不会影响其他实例。此过程是Windows不可或缺的重要部分,您无法阻止其运行。
本文是我们正在进行的系列文章的一部分,介绍了在任务管理器中找到的各种过程,例如dwm.exe,ctfmon.exe,mDNSResponder.exe,conhost.exe,rundll32.exe,Adobe_Updater.exe等。不知道这些服务是什么?最好开始阅读!
那么什么是服务主机进程?
微软表示,这就是答案:
Svchost.exe是用于从动态链接库运行的服务的通用主机进程名称。
但这对我们没有太大帮助。不久前,Microsoft开始将许多Windows功能从依赖于内部Windows服务(从EXE文件运行)更改为使用DLL文件。从编程的角度来看,这使代码更可重用,并且可以说更容易保持最新。问题是您无法像执行可执行文件一样直接从Windows启动DLL文件。而是,从可执行文件加载的外壳用于承载这些DLL服务。这样,服务主机进程(svchost.exe)诞生了。
为什么有这么多服务主机进程在运行?
有关的:这是什么过程,为什么要在我的PC上运行?
如果您曾经查看过“控制面板”中的“服务”部分,则可能已经注意到Windows需要大量服务。如果每个服务都在一个服务主机进程下运行,则一项服务中的故障可能会导致整个Windows瘫痪。相反,它们被分开了。
服务被组织成逻辑组,这些逻辑组在某种程度上是相关的,然后创建一个服务主机实例来承载每个组。例如,一个服务主机进程运行与防火墙相关的三个服务。另一个服务主机进程可能会运行与用户界面相关的所有服务,依此类推。例如,在下面的图像中,您可以看到一个Service Host进程运行多个相关的网络服务,而另一个运行与远程过程调用相关的服务。
我与这些信息有什么关系吗?
有关的:您应该禁用Windows服务以加快PC速度吗?
老实说,不是很多。在Windows XP(及以前的版本)时代,PC的资源更加有限,并且操作系统的调整不尽人意,因此通常建议停止Windows运行不必要的服务。这些天,我们不建议再禁用服务。现代PC往往装有内存和高性能处理器。再加上简化了Windows服务在现代版本中的处理方式(以及运行的服务)的事实,消除您认为实际上不需要的服务不会产生太大影响。
就是说,如果您注意到Service Host的特定实例(或相关服务)正在引起麻烦,例如持续过多的CPU或RAM使用,则可以检查涉及的特定服务。这至少可以让您了解从何处开始进行故障排除。有几种方法可以确切地了解特定的服务主机实例正在托管什么服务。您可以在任务管理器中或使用功能强大的第三方应用程序Process Explorer进行检查。
在任务管理器中检查相关服务
如果您使用的是Windows 8或Windows 10,则进程在进程管理器的“进程”选项卡上以全名显示。如果一个进程充当多个服务的宿主,则可以通过简单地扩展该进程来查看那些服务。这使得识别哪些服务属于服务主机进程的每个实例变得非常容易。
您可以右键单击任何单个服务以停止该服务,可以在“服务”控制面板应用程序中查看它,甚至可以在线搜索有关该服务的信息。
如果您使用的是Windows 7,则情况会有所不同。 Windows 7任务管理器没有以相同的方式对进程进行分组,也没有显示常规的进程名称-它仅显示正在运行的“ svchost.exe”的所有实例。您必须花点时间确定与“ svchost.exe”的任何特定实例相关的服务。
在Windows 7中的任务管理器的“进程”选项卡上,右键单击特定的“ svchost.exe”进程,然后选择“转到服务”选项。
这将使您转到“服务”选项卡,在该选项卡中,所有在该“ svchost.exe”进程下运行的服务均已选中。
然后,您可以在“说明”列中看到每个服务的全名,因此,如果您不希望该服务运行,则可以选择禁用该服务,也可以解决该服务给您带来麻烦的原因。
使用Process Explorer检查相关服务
作为Sysinternals系列的一部分,Microsoft还提供了一个出色的高级工具来处理流程。只需下载并运行Process Explorer(这是一个便携式应用程序),因此无需安装它。 Process Explorer提供了各种高级功能-我们强烈建议阅读我们的指南以了解Process Explorer以了解更多信息。
有关的:什么是“便携式”应用程序,为什么如此重要?
但是,出于此处的目的,Process Explorer将“ svchost.exe”的每个实例下的相关服务分组。它们按文件名列出,但其全名也显示在“说明”列中。您还可以将鼠标指针悬停在任何“ svchost.exe”进程上,以查看包含与该进程相关的所有服务的弹出窗口,甚至包括那些当前未运行的服务。
这个过程可能是病毒吗?
该过程本身是Windows的正式组件。尽管病毒可能用自己的可执行文件代替了真实的服务主机,但这种可能性很小。如果您想确定的话,可以检查该过程的基础文件位置。在任务管理器中,右键单击任何服务主机进程,然后选择“打开文件位置”选项。
如果文件存储在Windows \ System32文件夹中,则可以确定您没有在处理病毒。
有关的:什么是Windows 10最佳防病毒软件? (Windows Defender是否足够好?)
就是说,如果您仍然想更加放心,则可以始终使用首选的病毒扫描程序来扫描病毒。安全胜过遗憾!