Tuesday, January 8, 2019

windows - Isolate hosted service (svchost.exe) in its own process



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?


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.


No comments:

Post a Comment

hard drive - Leaving bad sectors in unformatted partition?

Laptop was acting really weird, and copy and seek times were really slow, so I decided to scan the hard drive surface. I have a couple hundr...