如何修复 Svchost.exe 高 CPU 使用率

SVCHOST.EXE是在(SVCHOST.EXE)Windows中不断运行的神秘进程之一,它是绝对必要的,但你永远不知道它在做什么。那么什么是SVCHOST.EXE呢?识别在每个SVCHOST.EXE 进程(SVCHOST.EXE process)中运行的实际服务和程序是一项非常值得了解的任务,尤其是当进程占用 99% 或 100% 的 CPU 时!

因此,在我们深入研究解决方案之前,让我们更深入地了解这个过程的实际作用以及如何解决可能出现的一些问题。首先,svchost 代表“服务主机(Service Host)”,它的功能正如其名称所暗示(name suggest)的那样:帮助“托管”服务。Windows中的服务只是操作系统(operating system)中的一个程序,它执行特定的工作并在您的计算机开启时始终在后台运行,即使您没有登录也是如此。

您熟悉的大多数程序都作为独立的可执行文件运行,例如 .EXE。但是,大多数服务都是以DLL(DLLs)的形式实现的,不能单独运行。因此(Hence),svchost 会加载这些DLL(DLLs)并自行运行它们。这就是为什么当您打开Windows 任务管理器(Windows Task Manager)时,您会看到一堆 svchost.exe 进程正在运行。如果您想了解有关任务管理器的更多信息(Task Manger)请查看我关于了解任务管理器(Task Manager)的文章。

服务主机

您会注意到我的计算机上目前正在运行八个 svchost 进程,它们都占用了不同数量的内存并以不同的用户名运行。因此,假设其中一个以 100% 的过高CPU 使用率(CPU usage)运行,我们如何识别实际运行的应用程序?

实际上有两种方法可以做到这一点:使用命令提示符和服务工具(command prompt and Services tool)手动完成,或者使用第三方应用程序(party application)。我将在这里提到两者,以防一个(case one)不适合你。

首先检查病毒

在我们深入了解下面的细节之前,值得注意的是,在某些情况下 svchost.exe 实际上是一种病毒。由于它是一个系统进程(system process),恶意编码人员喜欢使用名称 svchost(name svchost)来保持隐藏状态。如果文件位于Windows/system32,则很可能不是病毒,但我始终建议执行扫描以确保安全。

如果您还没有防病毒程序,我建议您使用KasperskyBitdefender,因为它们在AV-TestAV-Comparatives排名中始终名列前茅。它们不是免费的,但大多数免费的防病毒程序最终会捆绑额外的垃圾软件(junk software)或将您的浏览器重定向到他们的“安全”搜索(” search)解决方案,这根本不安全,只会跟踪您并向您展示更多广告。

(Identify svchost.exe) 通过命令提示符(Command Prompt)识别 svchost.exe进程(Processes)(硬方式)

1.首先,继续并单击开始(Start),然后单击运行(Run)并输入CMD,然后单击确定。(OK.)Windows 8.1中,继续并右键单击Start 按钮(Start button)并选择Run

运行命令

2. 在命令窗口中输入以下内容,然后按(command window and press) Enter

tasklist /svc /fi “imagename eq svchost.exe

您应该得到如下所示的输出,其中包含名称、PID服务描述(service description)

svchost 进程

您现在将看到每个svchost 进程(svchost process)以及它的唯一ID 号(ID number)和它负责运行的服务。不过,这些名字还是很神秘的,都是简写的名字。为了获得有关该过程的更多有用信息,我们可以使用Windows 中的服务浏览器。(Services)

3. 右键单击​​我的电脑(My Computer),选择管理(Manage)。在出现的屏幕上,选择计算机管理(Computer Management),然后选择服务和应用程序( Services and Applications)。最后,选择服务(Services)

窗口服务

4. 现在尝试将神秘的Windows 服务(Windows service)名称与“服务(Services)”选项卡中易于阅读的名称进行匹配。这有点小,可能需要一些时间,因为如果您使用ID 1436且名称为WudfSvc的进程,您必须尝试在列表中找到它。如果您双击其中一个服务名称,您还会看到它们的神秘名称,这就是您可以匹配它们的方法。就我而言,我猜 W 表示进程以“Windows”开头并打开它们,直到我看到匹配项。

Windows 驱动程序基础

如您所见,Windows Driver Foundation 服务(Windows Driver Foundation service)实际上简称为wudfsvc

(Identify svchost.exe) 通过进程资源管理器(Process Explorer)识别 svchost.exe进程(Processes) (简单方法)

如果你觉得太难了,还有一个更简单的方法!查看Microsoft的(Microsoft)Process Explorer工具(最初来自SysInternals)。该工具完全免费,可为您提供当前运行的每个进程的详细信息。

下载后,只需运行exe 文件(exe file),因为它不必安装。将鼠标悬停在svchost 进程(svchost process)上,您将看到一个弹出窗口,显示哪些服务正在该进程下运行。进程资源(process explorer)管理器的好处是它为您提供每个进程的友好名称,而不是短名称。

进程浏览器

Windows 8 任务管理器

我想提到的最后一件事是,Windows 8 任务管理器(task manager)基本上使使用命令行或进程资源管理器(command line or Process Explorer)完全过时。按CTRL + SHIFT + ESC打开任务管理器,然后在(Task Manager)Processes选项卡上向下滚动到显示Windows Processes的位置。

Windows 8 进程

在这里,您将看到每个svchost.exe 进程(svchost.exe process)都列为服务主机:(Service Host:)后跟它正在运行的帐户类型(本地系统(System)网络服务(Network Service)等)。它旁边还有一个数字,如果您通过单击箭头展开该项目,您还将看到在该特定进程下运行的每个服务。

服务清单

修复 SVCHOST 高 CPU 使用率

现在您已经准确地确定了哪个进程正在占用您的所有CPU,我们可以解决如何修复它。如果您发现该进程不是Windows 进程(Windows process),例如Windows 更新或 Windows 防火墙(Windows Update or Windows Firewall)等,则只需杀死该进程并卸载该程序即可。

但是,出现此问题的大多数情况下,它与Windows 进程(Windows process)有关。在这种情况下,最好的解决方案是安装 Microsoft 网站上的所有最新更新。如果您无法在Windows中正常执行此操作,请尝试以安全模式重新启动计算机,然后重试。

此外,如果您可以像我们上面所做的那样进入“服务(Services)”选项卡,请继续并右键单击该服务并选择“禁用(Disable)” 。即使是Windows 更新(Windows Update)防火墙(Firewall),也不要担心,您可以稍后重新启用它。然后重新启动计算机并访问 Microsoft 的网站并手动获取更新。重新启用该服务并再次重新启动计算机,希望一切正常!

要在Windows中禁用服务,请从“(Windows)服务(Services)”选项卡中右键单击它并选择“属性(Properties)” 。

服务属性

接下来从位于对话框中间的(dialog box)启动类型(Startup type)组合框中选择(combo box)禁用(Disabled)

禁用服务

我已经经历了几次这个过程,它对我很有用。所以再次,首先禁用服务,然后重新启动计算机,然后手动安装更新,然后重新启用服务,然后再次重新启动计算机。如果这不起作用,您必须执行Windows修复安装(repair install)。在Google 上搜索(Google search)修复安装(repair install)并按照步骤操作。如果您运行的是Windows 8,则可以刷新您的计算机(refresh your computer)。如果您有任何问题,请发表评论。享受!



About the author

我是一名计算机技术人员,拥有超过 10 年的经验和使用 Android 设备的经验。过去五年我也一直在办公室工作,在那里我学会了如何使用 Office 365 和 MacOS。在业余时间,我喜欢花时间在户外听音乐或看电影。



Related posts