You are no doubt reading this
article because you are wondering why on earth there are nearly a dozen
processes running with the name svchost.exe. You can’t kill them, and
you don’t remember starting them… so what are they?
So
What Is It?
According to Microsoft: “svchost.exe
is a generic host process name for services that run from dynamic-link
libraries”. Could we have that in English please?
Some time ago, Microsoft started
moving all of the functionality from internal Windows services into .dll files
instead of .exe files. From a programming perspective this makes more sense for
reusability… but the problem is that you can’t launch a .dll file directly from
Windows, it has to be loaded up from a running executable (.exe). Thus the
svchost.exe process was born.
Why
Are There So Many svchost.exes Running?
If you’ve ever taken a look at the
Services section in control panel you might notice that there are a Lot of
services required by Windows. If every single service ran under a single
svchost.exe instance, a failure in one might bring down all of Windows… so they
are separated out.
Those services are organized into
logical groups, and then a single svchost.exe instance is created for each
group. For instance, one svchost.exe instance runs the 3 services related to
the firewall. Another svchost.exe instance might run all the services related
to the user interface, and so on.
So
What Can I Do About It?
You can trim down unneeded services
by disabling or stopping the services that don’t absolutely need to be running.
Additionally, if you are noticing very heavy CPU usage on a single svchost.exe
instance you can restart the services running under that instance.
The biggest problem is identifying
what services are being run on a particular svchost.exe instance… we’ll cover
that below.
If you are curious what we’re talking
about, just open up Task Manager and check the “Show processes from all users”
box:
If you’re using Windows 8 or 10, you’ll need to go to the Details tab.
If you’re using Windows 8 or 10, you’ll need to go to the Details tab.
Checking
From the Command Line
If you want to see what services are
being hosted by a particular svchost.exe instance, you can use the tasklist
command from the command prompt in order to see the list of services.
tasklist /SVC
The problem with using the command
line method is that you don’t necessarily know what these cryptic names refer
to.
Checking
in Task Manager in Any Version of Windows
From the details view of the
processes, which is going to be a little different depending on what version of
Windows you’re using, you can right-click on a particular svchost.exe process,
and then choose the “Go to Service” option.
This will flip over to the Services
tab, where the services running under that svchost.exe process will be
selected. Again, this will look slightly different in Windows 8 or 10, but it’s
the same view.
The great thing about doing it this
way is that you can see the real name under the Description column, so you can
choose to disable the service if you don’t want it running.
Using
Process Explorer any Version of Windows
You can use the excellent Process Explorer utility from
Microsoft/Sysinternals to see what services are running as a part of a
svchost.exe process.
Hovering your mouse over one of the
processes will show you a popup list of all the services:
Or you can double-click on a
svchost.exe instance and select the Services tab, where you can choose to stop
one of the services if you choose.
Disabling
Services
Open up Services from the
administrative tools section of Control Panel, or type services.msc into
the start menu search or run box.
Find the service in the list that
you’d like to disable, and either double-click on it or right-click and choose
Properties.
Change the Startup Type to Disabled,
and then click the Stop button to immediately stop it.
You could also use the command
prompt to disable the service if you choose. In this command “trkwks” is the
Service name from the above dialog, but if you go back to the tasklist command
at the beginning of this article you’ll notice you can find it there as well.
sc config trkwks start= disabled
Hopefully this helps somebody!
Could
this Process Be a Virus?
As long as you make sure that the
location of the file is in your Windows\System32 directory, you aren’t usually
dealing with a virus. So just to be safe, it is always worth scanning for
viruses with your preferred anti-virus scanner.
We recommend using either Kaspersky or Bitdefender, as they consistently rank in
the top of both the AV-Test and AV-Comparatives rankings, and we’ve used both
products with good results. They aren’t free, but most of the free antivirus
out there is bundling extra nonsense or trying to redirect your search engine
to their “secure” solution that isn’t really secure and just shows you more ads
or spies on your shopping habits.
You’re better off safe than sorry,
so scanning your computer is a good idea, no matter what antivirus product
you’re using.
No comments:
Post a Comment