What is svchost.exe? Is it a virus? Can I uninstall it?

This question popped in our heads many times in the past and for some, it’s still an enigma. So, I will try to clarify what is svchost.exe, what’s used for and why in some occasions it eats your CPU. What is svchost.exe?
According to Microsoft, “svchost.exe is a generic host process name for services that run from dynamic-link libraries” or, in plain English, svchost.exe is a system program that is needed by Windows to launch other programs that cannot be run without being hosted (thus the generic host process).
Do I need svchost.exe? Can I uninstall svchost.exe? Why there are so many instances running?

Yes, we do need svchost.exe and no, we can’t uninstall it nor we need to. svchost.exe has a very important (critical) purpose within the Windows OS. Also, being able to handle multiple processes at once, you should see multiple instances of svchost.exe running on your computer and there is no need to alarm yourself, it’s a normal behavior.
Also, many users confuse svchost.exe with scvhost.exe which is indeed a malware application, more specifically a Trojan Horse named W32/Agobot-S virus. This malware application allows intruders/attackers to access your computer and steal passwords, Internet banking and personal data. In other words, when you see this process running on your system, remove it instantly!
svchost.exe is eating 100% CPU…what should I do?
You probably encountered situations when instances of svchost.exe were eating too much of your CPU, even 100% of your processor. In this case, you need to identify what process does that for each of the svchost instances running, to discover the ‘hungry’ or non-responsive application.
While this may take some time, it’s not a very difficult task. You need to identify the services running under each particular svchost.exe.
You can check the corresponding services of each svchost.exe via the command prompt using the command:
tasklist /SVC
This command works both in Windows XP and Vista, but it’s not the most useful.
Under Windows Vista, there is also the option to see the ‘attached’ processes very easily with just some mouse clicks.
Open the Task Manager, identify the svchost processes, right click on any of them and select “Go to Service(s)”. You should see the services that run under that specific svchost.
Also, as a good alternative into finding processes under svchost.exe in Windows XP, you can try Process Explorer from Sysinternals. The applications is pretty easy to use and self-explanatory, allowing you to see the list of services by only hovering your mouse above the svchost instances.