是否有注册表设置或用于限制单个svchost.exe进程中运行的单个服务数量的内容?
我知道WIN32_SHARE_PROCESS
标志和sc
应用程序使单个服务在自己的进程中运行的能力,但是我不希望数十个服务中的每一个都有进程的开销。理想情况下,我希望看到当前由单个进程托管的“通过工作站自动更新”的30项服务在三到五个进程之间共享。
是否有注册表设置或用于限制单个svchost.exe进程中运行的单个服务数量的内容?
我知道WIN32_SHARE_PROCESS
标志和sc
应用程序使单个服务在自己的进程中运行的能力,但是我不希望数十个服务中的每一个都有进程的开销。理想情况下,我希望看到当前由单个进程托管的“通过工作站自动更新”的30项服务在三到五个进程之间共享。
Answers:
您可以通过修改注册表项来控制将哪些服务捆绑到一个svchost进程中HKLM/SOFTWARE/Microsoft/Windows NT/CurrentVersion/SvcHost
。您将修改值,每个值都包含一个在其中运行的服务的列表(例如netsvcs)。
那里有更多有关此的信息,其中大部分与Conficker蠕虫有关,请在清除后进行清理。这是基于与情况相关的研究,在这种情况下,我不得不手动清除某些恶意软件服务的痕迹。
使用其他资源/信息进行更新:那里没有很多信息,我还没有尝试过,但是我在研究时发现的最有用的信息是:
通过执行此操作,您不会注意到性能有任何改善。
如果要按需启动某些服务,请将它们设置为“手动启动”,并且Windows将在尝试访问该服务时启动该服务。
如果要了解导致性能问题的服务,请尝试启动命令提示符并使用以下命令:
C:\>tasklist /svc /FI "IMAGENAME eq svchost.exe"
这将向您显示所有svchost.exe实例,每个进程中正在运行的服务以及PID(进程ID)。
一旦知道了PID,就可以启动任务管理器,(Ctrl+Alt+Del)
然后在Processes
选项卡中转到View > Select Columns...
并选择显示PID。
然后,您将知道哪个svchost.exe导致了性能问题,并且可以将PID交叉引用到在svchost.exe实例中运行的服务列表。
希望这有助于解决您提出问题的根本原因。
netsvcs
组中具有服务器,工作站等,并且如果您在中查看这些服务的服务描述符System\CurrentControlSet\Services
,它们将netsvcs
在其ImagePath
设置中引用。只要我ImagePath
为移动的所有服务都更新了组,是否安全地重新安排组?