在自己的进程中隔离托管服务 (svchost.exe)

Sør*_*org 17 windows services svchost

正如许多超级用户现在可能已经知道的那样,Microsoft 使用svchost.exe在单个进程中托管多个 Windows 服务,每个服务组一个进程。

在 Windows 7(及更高版本?)中,可以右键单击任务管理器中的特定 svchost.exe 进程,然后选择“转到服务”以查看在“内部”运行的服务。在所有 Windows 版本中,也可以使用Process Explorer

但是,这不允许人们看到例如哪个特定服务将 CPU 固定在 100% 或使用 700 MB 内存。可以手动停止同一组中的服务并使用消除过程,但很乏味,尤其是如果问题只是间歇性出现。

微软大概有一个很好的理由对这样的服务进行分组(减少每个进程的开销,也许?),但是有没有办法强制特定服务在自己的 svchost.exe 中隔离运行?

mag*_*981 20

不,正确的方法是运行此命令:

sc configwuauserv type= own

这配置为在其自己的进程中运行 Windows 更新。要恢复这个,运行

sc config wuauserv type= share

具有管理员权限命令提示符。这会更改设置值type。如果类型是0x20它是一个组进程,如果0x10它是一个自己的进程

自 Windows 10 Creators Update(版本 1703,Build 15063)以来,如果您有足够的 RAMWindows 会自行执行此操作