什么是svchost,为什么它的多个实例正在运行?

在我的桌面上运行了六个实例,在我pipe理的服务器上可能有十个实例。 这是什么,对系统function至关重要?

svchost,在Windows中托pipe服务请参阅知识库 。 如果您使用Process Explorer,您可以看到哪些服务在特定进程中运行。

Windows的许多执行组件都作为服务实现(请参阅打开“ Control Panel > Administrative Tools > Services )的计算机上的所有服务。 这些是在后台运行的专门程序。 它们不是由login用户启动的,而是由操作系统本身启动的。

大多数服务不是独立的可执行文件(EXE文件),而是在库(DLL)中实现,可以由正在运行的进程使用。 顾名思义,Svchost或“服务主机”是运行这些DLL的Windows标准可执行文件。 您可以在%systemroot%\system32目录中findsvchost.exe文件。

如果您想知道哪个服务的哪个svchost实例正在执行,请键入

  tasklist /svc /fi "IMAGENAME eq svchost.exe" 

在命令行控制台(cmd)上。

在我制作屏幕截图的机器上,例如,svchost的一个实例正在运行21种不同的服务。 根据微软的文档 ,这种服务分组可以更好地控制和debugging。

替代文字

Svchost.exe组在以下registry项中标识:

 HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Svchost 

提示(如果您运行Windows Vista,Windows 7或Windows Server 2008):您可以打开任务pipe理器并右键单击特定的svchost.exe进程,然后select“转到服务”选项。 这将显示服务选项卡,在选定的svchost.exe进程下运行的所有服务将被标记。

微软下载中心有一个非常有趣的文档:

Microsoft Windows Server 2003系统服务参考

本文档包含Windows Server 2003系列操作系统的所有可用服务摘要。 这些服务按照显示名称的字母顺序列出。 在每个服务的描述之后,一个表格列出关于服务的关键信息。

每个Windows服务都列出了所有的细节。 例如,您将了解到terminal服务服务的可执行文件名是

  svchost.exe -k termsvcs 

Svchost是“服务主机”的缩写。 它使大多数服务在您的机器上运行。 将会有一些服务在自己的.exe文件中进行托pipe,但大部分Windows的服务需要托pipe在svchost.exe进程中。 您的机器上的服务处理重要的东西,如networking,RpC服务器,audio,事件日志等

在“开始” – >“运行”中键入“services.msc”以查看您的计算机上正在运行的服务。 如果你认为任何人不行,你可以停止服务。

input“tasklist / SVC”以查看哪些服务由不同的svchost.exe文件托pipe。

这里是一个PowerShell单行输出svchost.exe进程中托pipe的所有服务:

 PS>get-process svchost | % {get-wmiobject win32_service -filter "processid=$($_.id)"} | format-table processid,name,displayname,state,status -auto processid name displayname state status --------- ---- ----------- ----- ------ 316 HTTPFilter HTTP SSL Running OK 1328 DcomLaunch DCOM Server Process Launcher Running OK 1328 TermService Terminal Services Running OK 1392 RpcSs Remote Procedure Call (RPC) Running OK 1528 AudioSrv Windows Audio Running OK 1528 BITS Background Intelligent Transfer Service Running OK 1528 Browser Computer Browser Running OK 

单线的较短版本看起来像这样:

 gps svchost | % {gwmi win32_service -f "processid=$($_.id)"} | ft proc*,name,disp*,stat* -auto 

本文可能有所帮助: http : //www.gfi.com/blog/exploring-svchostexe-part-1/