FichierRisque : Ne pas toucher
svchost.exe C:\Windows\System32\svchost.exe
Processus hôte générique des services Windows chargés depuis des DLL ; plusieurs instances s'exécutent, regroupant des services par groupe.
À quoi ça sert
svchost.exe (Service Host) est le processus hôte des services Windows implémentés sous forme de DLL. Le gestionnaire de services lance plusieurs instances, chacune hébergeant un ou plusieurs services : c’est pourquoi le Gestionnaire des tâches en affiche des dizaines. Depuis Windows 10 version 1703, sur une machine avec assez de mémoire, de nombreux services sont séparés dans leur propre svchost.exe, ce qui facilite l’isolation et le diagnostic.
Ce qu’il contient
- Un exécutable signé par Microsoft dans
C:\Windows\System32. - De nombreuses instances, avec une ligne de commande
-k <groupe>(et parfois-s <service>). - Le service hébergé et sa DLL sont décrits dans la clé
HKLM\SYSTEM\CurrentControlSet\Services\<nom>\Parameters(valeurServiceDll).
Risques et bonnes pratiques
- Avant de terminer un
svchost.exe, regardez quels services il héberge (tasklist /svc) : certains sont critiques et provoquent un arrêt ou un redémarrage. - Le nom est un grand classique des malwares. Le vrai fichier est dans
System32, signé, avecservices.exepour parent. - Pour une consommation anormale, identifiez le service responsable puis agissez sur lui, pas sur le processus.
Commandes utiles
# Lister les services hébergés dans chaque processus svchost.exetasklist /svc /fi "imagename eq svchost.exe"
# Voir les services dont le chemin pointe vers svchost, avec le groupeGet-CimInstance Win32_Service | Where-Object PathName -like "*svchost.exe*" | Select-Object Name, ProcessId, PathName
# Vérifier la signature numérique du fichierGet-AuthenticodeSignature "$env:windir\System32\svchost.exe" | Select-Object Status, @{n="Signer";e={$_.SignerCertificate.Subject}}
# Vérifier que chaque svchost a pour parent services.exeGet-CimInstance Win32_Process -Filter "Name='svchost.exe'" | Select-Object ProcessId, ParentProcessId, ExecutablePath