Windows – Isolate hosted service (svchost.exe) in its own process

servicessvchostwindows

As many superusers are probably aware by now, svchost.exe is used by Microsoft to host multiple Windows services in a single process, with one process per service group.

In Windows 7 (and later?), one can right click on a specific svchost.exe process in Task Manager and select "Go to service(s)" to see the services running "inside" it. Across all Windows versions, Process Explorer can also be used.

However, this does not allow one to see e.g. which particular service is pinning the CPU at 100%, or using 700 MB of memory. One can manually stop services in the same group and use the process of elimination, but it's tedious, especially if the problem occurs only intermittently.

Microsoft presumably has a good reason to group services like this (reducing the per-process overhead, perhaps?), but is there a way to force a specific service to run isolated in its own svchost.exe?

Best Answer

No, the proper way is to run this command:

sc configwuauserv type= own

this configures to run Windows Update in its own process. To revert this, run

sc config wuauserv type= share

from a command prompt with admin rights. This changes the setting value type. If type is 0x20 it is a group process, if the value is 0x10 it is a own process.

Since Windows 10 Creators Update (Version 1703, Build 15063), Windows does this on its own if you have enough RAM.