Qu'est-ce que svchost et pourquoi plusieurs instances s'exécutent-elles?

27

Il y a six instances en cours d'exécution sur mon bureau, et probablement dix sur un serveur que je gère. Qu'est-ce que c'est et est-il vital pour le fonctionnement du système?

jldugger
la source
LOL. J'en ai 91 dans mon ordinateur portable!
Sen Jacob

Réponses:

16

svchost, héberge des services dans Windows Voir KB . Si vous utilisez Process Explorer, vous pouvez voir quels services sont exécutés dans un processus particulier.

Rob Haupt
la source
1
Est-ce donc plus ou moins équivalent à inetd sous linux? Une infrastructure de serveur à usage général, pour que les développeurs puissent écrire des services sans se soucier de la partie serveur du code?
Jason Tan
Même genre d'idée Jason, mais évidemment avec une portée plus large qu'inetd qui ne soutient généralement que les tâches de type webbish, n'est-ce pas? Une belle analogie cependant, certainement assez proche pour de l'argent ...
Rob Moir
20

De nombreux composants d'exécution de Windows sont implémentés en tant que services (voir tous les services sur l'ouverture de votre machine Control Panel > Administrative Tools > Services). Ce sont des programmes spécialisés fonctionnant en arrière-plan. Ils ne sont pas démarrés par l'utilisateur connecté, mais par le système d'exploitation lui-même.

La plupart des services ne sont pas des exécutables autonomes (fichiers EXE), mais sont implémentés dans des bibliothèques (DLL), qui peuvent être utilisées par l'exécution de processus. Comme son nom l'indique, Svchost ou "Service Host" est l'exécutable standard de Windows pour exécuter ces DLL. Vous pouvez trouver le fichier svchost.exe dans le %systemroot%\system32répertoire.

Si vous voulez savoir quelle instance de svchost exécute quel service, tapez

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

sur une console de ligne de commande (cmd).

Sur la machine, où j'ai fait la capture d'écran, l'une des instances de svchost exécute 21 services différents, par exemple. Ce regroupement de services permet un meilleur contrôle et un débogage plus facile, selon la documentation de Microsoft .

texte alternatif

Les groupes Svchost.exe sont identifiés dans la clé de registre suivante:

HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Svchost

Un conseil (si vous exécutez Windows Vista, Windows 7 ou Windows Server 2008): vous pouvez ouvrir le Gestionnaire des tâches et cliquer avec le bouton droit sur un processus svchost.exe particulier, puis choisir l'option «Aller au service». Cela affichera l' onglet Services , où tous les services exécutés sous le svchost.exeprocessus sélectionné seront marqués.

Il existe un document très intéressant dans le Centre de téléchargement de Microsoft:

Référence des services système de Microsoft Windows Server 2003

Ce document contient des résumés de tous les services disponibles pour la famille de systèmes d'exploitation Windows Server 2003. Les services sont répertoriés par ordre alphabétique par nom d'affichage. Après une description de chaque service, un tableau répertorie les informations clés sur le service.

Chaque service Windows est répertorié avec tous ses détails. Vous apprenez, par exemple, que le nom de fichier exécutable du service Terminal Server est

 svchost.exe -k termsvcs 
splattne
la source
+1 merci pour l'info .... vous et votre représentant de 8000 points ... sérieusement, c'est une excellente ressource à avoir. Je me considère bien versé dans Win CLI, mais n'était pas au courant de celui-ci. Merci!
cop1152
7

Svchost est l'abréviation de "Service Host". Il maintient la plupart des services sur votre machine en cours d'exécution. Il y aura quelques services qui s'hébergent dans leur propre fichier .exe, mais la plupart des services Windows doivent être hébergés dans un processus svchost.exe. Les services sur votre machine traitent des choses importantes comme la mise en réseau, le serveur RpC, l'audio, le journal des événements, etc.

Tapez "services.msc" dans Démarrer-> Exécuter pour afficher les services que vous exécutez sur votre machine. Si vous estimez que quelqu'un n'est pas nécessaire, vous pouvez arrêter le service.

Tapez "tasklist / SVC" pour voir quels services sont hébergés par les différents fichiers svchost.exe.

Frode Lillerud
la source
1

Voici une ligne unique PowerShell qui génère tous les services hébergés dans les processus svchost.exe:

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

La version plus courte d'une doublure ressemble à ceci:

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