Svchost.exe – Probleme finden

Der Windows-Remoteverwaltungsdienst (WinRM)Es ist Richtlinie bei Microsoft, dass interne Windows-Funktionen möglichst komplett in DLLs vorliegen sollen statt als EXE-Dateien, um eine optimale Wiederverwendbarkeit durch andere Programme zu ermöglichen. Will man diese Funktionen direkt ausführen, benötigt man die Hilfe eines Host-Prozesses, da man DLLs nicht direkt starten kann. Aus Benutzersicht ist dies rundll32.exe, für Windows-Dienste erfüllt svchost.exe die entsprechende Funktion. Auch diese liegen überwiegend in Form von DLLs vor; svchost.exe ist der Host-Prozess, mit dessen Hilfe sie ausgeführt werden.

Welcher Dienst startet mit welcher svchost.exe-Instanz?

Sysinternals’ Process Explorer zeigt die gestarteten Dienste jeder svchost.exe-InstanzWie man mit Windows’ Task-Manager sieht, laufen stets mehrere Instanzen von svchost.exe. Eine Instanz kann mehrere Dienste beinhalten, muss dies aber nicht. Der Task-Manager zeigt indirekt, welche Dienste jeweils unter einer svchost.exe-Instanz zusammengefasst sind: Auf der Registerkarte Dienste klickt man dazu auf die Spalte PID, um sie nach Prozesskennung zu sortieren. Alle Dienste, die unter gleicher PID laufen, teilen eine Instanz von svchost.exe. Auf der Kommandozeile erhält man die Information mittels des Befehls

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

Sysinternals’ Process Explorer zeigt nach einem Doppelklick auf einen svchost.exe-Prozess auf der Registerkarte Services, welche Dienste er beherbergt und zeigt deren Beschreibung an. Noch detaillierter und speziell auf Dienste ausgerichtet ist der Svchost Viewer von Microsofts Open-Source-Hosting-Seite Codeplex.

Instanzen von svchost.exe konfigurieren

Will man zur Fehlersuche oder aus anderen Gründen die Gruppierung der Dienste unter den einzelnen svchost.exe-Instanzen ändern, gibt es dazu 2 Möglichkeiten, die beide einen Eingriff in die Registry beinhalten und jeweils einen Neustart des Systems erfordern.

Die Konfiguration der Gruppen findet man unter HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchost, wo die einzelnen Dienste jeweils als mehrzeilige Listen vom Typ REG_MULTI_SZ unter einer Gruppe eingetragen sind. Hier kann man etwa Dienste von einer in die andere Gruppe verschieben.

Eine Dienste-Instanz zu vereinzeln, ihr also einen exklusiven svchost.exe-Prozess zu spendieren, könnte man hier durch Einrichtung einer separaten Gruppe erreichen, muss jedoch darauf achten, auch noch Unterschlüssel mit dem neuen Gruppennamen zu erstellen, in denen die Start-Parameter für diese svchost.exe-Instanz festgelegt werden. Prinzipiell ist das möglich – man kann etwa die Parameter der Gruppe kopieren, aus welcher der zu vereinzelnde Dienst stammt.

Einfacher geht es in der Dienste-Konfiguration selbst unter HKLM\SYSTEM\CurrentControlSet\services. Jeder Dienste-Unterschlüssel hat besitzt hier einen DWORD-Eintrag namens Type. Ändert man dessen Wert von 20(hex) auf 10(hex), erhält er beim nächsten Start eine eigene Instanz von svchost.exe, egal was die obige Gruppen-Konfiguration für svchost.exe selbst besagt. Indem man den Wert wiederum auf 20(hex) setzt, nimmt man diese Änderung zurück.

Man sollte dies jedoch für Dienste vermeiden, die von vornherein in der Voreinstellung mittels dieses Wertes als Einzel-Instanz konfiguriert wurden – ihnen fehlt die notwendige Gruppen-Konfiguration.

Keine Kommentare

Kommentar hinzufügen

Der Inhalt dieses Feldes wird nicht angezeigt. Wenn mit Ihrer angegebenen Mail-Adresse ein Gravatar verknüpft ist, dann wird dieser neben Ihrem Kommentar eingeblendet.
  • Internet- und E-Mail-Adressen werden automatisch umgewandelt.
  • Zulässige HTML-Tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Zeilen und Absätze werden automatisch erzeugt.
  • Mail-Adressen werden im Seitenquelltext unkenntlich gemacht, um sie vor dem automatischen Erfassen durch Spammer zu schützen.

Weitere Informationen über Formatierungsoptionen