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,则很可能不是病毒,但我始终建议执行扫描以确保安全。
如果您还没有防病毒程序,我建议您使用Kaspersky或Bitdefender,因为它们在AV-Test和AV-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 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 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的位置。
在这里,您将看到每个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)。如果您有任何问题,请发表评论。享受!
How to Fix Svchost.exe High CPU Usage
SVCHOST.EXE is one of those mysterious processes that constantly runs in Windows and is utterly essential, yet you never know exactly what it is doing. So what is SVCHOST.EXE? Identifying the actual services and programs that are running inside each SVCHOST.EXE process is a task well worth knowing, especially when the process eats up 99 or 100 percent of your CPU!
So before we dive into solutions, let’s get a deeper understanding of what this process actually does and how you can go about fixing some of the problems that might occur. Firstly, svchost stands for “Service Host” and it does exactly what as the name suggest: helps to “host” services. A service in Windows is simply a program in the operating system that does a particular job and runs in the background at all times when your computer is on, even if you are not logged in.
Most programs that you are familiar with run as a stand-alone executable, such .EXE. However, most services are implemented in the form of DLLs, which cannot run on their own. Hence, svchost loads those DLLs and runs them itself. That’s why when you open the Windows Task Manager, you’ll see a bunch of svchost.exe processes running. If you want more info on the Task Manger, check out my articles on understanding the Task Manager.
You’ll notice that there are currently eight svchost processes running on my computer, all using up various amounts of memory and running under different user names. So let’s say one of them is running at an excessively high CPU usage of 100 percent, how can we identify the actual application running?
There are actually two ways to go about this: doing it all manually using the command prompt and Services tool or by using a third party application. I’m going to mention both here in case one does not work for you.
Check for Viruses First
Before we get into the details below, it’s worth noting that there are cases where svchost.exe is actually a virus. Since it’s a system process, malicious coders like to use the name svchost to remain hidden. If the file is located in Windows/system32, it’s more than likely not a virus, however I always recommend performing a scan just to be sure.
If you don’t already have an anti-virus program, I recommend using either Kaspersky or Bitdefender since they consistently perform at the top in AV-Test and AV-Comparatives rankings. They are not free, but most free antivirus programs end up bundling extra junk software or redirecting your browser to their “secure” search solution, which isn’t secure at all and just tracks you and shows you more ads.
Identify svchost.exe Processes via Command Prompt (hard way)
1. First, go ahead and click on Start and then Run and type in CMD and click OK. In Windows 8.1, go ahead and right-click on the Start button and choose Run.
2. Type in the following into the command window and press Enter
tasklist /svc /fi “imagename eq svchost.exe
You should get an output as shown below with the name, PID, and service description
You’ll now see each svchost process along with it’s unique ID number and the services it is responsible for running. However, these names are still very cryptic and are all short-hand names. In order to get some more useful information about the process, we can use the Services browser in Windows.
3. Right-click on My Computer, choose Manage. On the resulting screen, choose Computer Management and then choose Services and Applications. Finally, choose Services.
4. Now try to match the cryptic Windows service name with the easily readable names in the Services tab. This is a little and can take some time because if you take the process with ID 1436 and it’s name WudfSvc, you have to try to find it in the list. If you double-click on one the service names, you’ll see their cryptic name also, so that’s how you can match them up. In my case, I guessed that the W means the process starts with “Windows” and opened them until I saw a match.
As you can see, the Windows Driver Foundation service is actually called wudfsvc for short!
Identify svchost.exe Processes via Process Explorer (easy way)
If you found to be too difficult, there is a much easier way! Check out the Process Explorer tool from Microsoft (originally from SysInternals). The tool is completely free and gives you detailed information for each process currently running.
Once you download it, just run the exe file as it does not have to be installed. Hover your mouse over the svchost process and you’ll get a popup showing you which services are running under that process. The nice thing about process explorer is that it gets you the friendly name for each process instead of the short name.
Windows 8 Task Manager
One last thing I wanted to mention was the fact that the Windows 8 task manager basically makes using the command line or Process Explorer totally obsolete. Open the Task Manager by pressing CTRL + SHIFT + ESC and scroll down on the Processes tab to where it says Windows Processes.
Here you will see every svchost.exe process listed as Service Host: followed by the type of account it is running under (Local System, Network Service, etc). It’ll also have a number next to it and if you expand the item out by clicking the arrow, you will also see every service running under that particular process.
Fixing SVCHOST High CPU Usage
Now that you have figured out exactly which process is eating up all of your CPU, we can address how to fix it. If you have found that the process is not a Windows process, such as Windows Update or Windows Firewall, etc, then simply kill the process and uninstall the program.
However, most of the time that this problem occurs, it has something to do with a Windows process. The best solution in this case is to install all of the latest updates from Microsoft’s web site. If you’re not able to do so normally in Windows, try restarting the computer in safe mode and try it again.
Also, if you can get to the Services tab like we did above, go ahead and right-click on the service and choose Disable. Even if it’s Windows Update or the Firewall, don’t worry, you can re-enable it later. Then restart the computer and go to Microsoft’s web site and manually get the updates. Re-enable the service and restart the computer again and hopefully things are working!
In order to disable a service in Windows, right-click on it from the Services tab and choose Properties.
Next choose Disabled from the Startup type combo box located in the middle of the dialog box:
I have gone through this process a couple of times and it has worked for me. So again, first disable the service, then restart computer, then install updates manually, then re-enable service, and then restart computer again. If this doesn’t work, you have to perform a repair install of Windows. Do a Google search for repair install and follow the steps. If you’re running Windows 8, you can refresh your computer. If you have any questions, post a comment. Enjoy!