svchost.exe: Der Dienstleister im Windows-Betriebssystementest

Wenn Ihr Windows-System einwandfrei läuft, haben Sie vermutlich keinen Grund, sich mit dem Task-Manager oder einzelnen Prozessen und Diensten zu beschäftigen. Genauso selten wie Autofahrer die Motorhaube ihres Autos öffnen, verschaffen sich PC-Benutzer Einblick in laufende Dienste und dahinterstehende Programme. Allerdings ist es oft sinnvoll, sich hierzu Grundlagenwissen anzueignen und die wichtigsten Systemprogramme zu kennen –insbesondere, wenn Sie beruflich auf ein funktionierendes Computersystem angewiesen sind. Denn Probleme treten oft in unpassenden Momenten auf. Liegt eines der folgenden Merkmale vor, ist ein Blick auf die laufenden Prozesse ratsam:

  • Unerklärlich hohe Systemauslastung, etwa eine unverhältnismäßig starke CPU-Auslastung
  • Programmabstürze oder „einfrierende“ Fenster
  • Verdacht auf Viren
  • Korrekt installierte Programme lassen sich nicht starten

Der Prozess svchost.exe springt bei Betrachtung der laufenden Anwendungen sofort ins Auge. Das liegt daran, dass er grundsätzlich mehrfach ausgeführt wird, häufig einige Dutzend Mal. Der Name des Programms enthält die Abkürzung Service-Host (übersetzt: Dienstanbieter oder „Wirt“ für Dienste). Es handelt sich also um eine Software, die von anderen Programmen oder Diensten genutzt werden kann. Dadurch ist das Ursprungsprogramm hinter dem untersuchten Prozess nicht sofort erkennbar.

Wie ist svchost.exe eingebettet?

Als Systemprogramm liegt svchost.exe im Systemordner „\Windows\System32“. Dabei handelt es sich um einen geschützten Ordner, auf den Nutzer ohne Administratorrechte keinen Zugriff haben. Aufgerufen wird das Programm nach dem Systemstart vom Service Control Manager (SCM). Dieser verwaltet in der Windows-Registrierungsdatenbank (Registry) eine Liste der zu startenden Dienste. Nach dem Systemstart führt der SCM für jeden dort eingetragenen Dienst eine Instanz von svchost.exe als Prozess aus.

Hierbei besteht prinzipiell auch die Möglichkeit, mehrere Dienste in einem Prozess zu bündeln. Bei leistungsstarken Rechnern tendiert Windows allerdings dazu, für jeden Dienst einen separaten Prozess zu starten. Dadurch können die einzelnen Prozesse besser voneinander abgegrenzt werden. Das ist von Vorteil, wenn ein Prozess „abstürzt“, also in einen undefinierten Zustand tritt. In solch einem Fall kann der fehlerhafte Task dann geschlossen werden, ohne andere Programme zu tangieren.

Fakt

Die Windows-Registrierungsdatenbank, oft auch mit dem englischen Begriff Registry betitelt, ist zentraler Speicherort für viele wichtige Einstellungen des Betriebssystems. Sie ist hierarchisch aufgebaut und lässt sich mit dem Editor Regedit verwalten.

Wofür benötigt man svchost.exe?

Es stellt sich die Frage, warum zum Start von Diensten überhaupt eine zusätzliche Software notwendig ist. Das hängt mit einer erhöhten Effizienz und spezifischen Konzepten wie den sogenannten Dynamic Link Libraries (DLLs) zusammen. Letztere verwendet svchost.exe nämlich, um einen Dienst auszuführen. Generell handelt es sich bei diesen Bibliotheken um Programmcode, der von unterschiedlicher Software genutzt und bei Bedarf dynamisch eingebunden (verlinkt) werden kann. Das spart zum einen Speicherplatz, da nicht jede Software die entsprechenden Funktionen mitbringen muss. Zum anderen hilft es bei der Modularisierung. DLLs lassen sich unabhängig von der verwendeten Software anpassen und aktualisieren.

Hinweis

Bei Fehlern in einer DLL sind möglicherweise gleich mehrere Programme betroffen!

Mit ihren Eigenschaften unterstützen die dynamischen Bibliotheken gewöhnliche Programme, die umfangreichen Maschinencode für die eigenständige Ausführung benötigen. Zudem lösen sie das Problem, dass bestimmte Programmressourcen (wie eingebettete Funktionen) in der Regel nicht direkt von anderen Programmen angesteuert werden können. Insbesondere Funktionalitäten, die von mehreren Programmen benötigt werden, stellt das System bevorzugt in Form von DLLs zur Verfügung.

Wie kann man einen svchost.exe-Prozess näher untersuchen?

Wenn Sie feststellen, dass ein svchost.exe-Prozess für Probleme auf Ihrem System verantwortlich ist, gibt es verschiedene Möglichkeiten, ihn zu untersuchen.

Task-Manager

Ein wirkungsvolles Werkzeug ist der in Windows integrierte Task-Manager, den Sie typischerweise mit den [Strg] + [Shift] + [Esc] Tasten aufrufen. Alternativ können Sie auch den Begriff „Task-Manager“ in die Suchleiste eingeben und die App über das präsentierte Suchergebnis starten.

Der Task-Manager verfügt über mehrere Reiter. Standardmäßig ist die Prozessansicht bereits geöffnet. Dort werden für jeden gestarteten Prozess die prozentuale Systemauslastung, also der Verbrauch an Rechenleistung, Arbeitsspeicher, Netzwerkverkehr und entsprechende Festplattenzugriffe angezeigt. Die Sortierung lässt sich durch Anklicken des gewünschten Kriteriums verändern. Die Prozesse sind nach den zugehörigen Programmen benannt. Unter Windows 10 haben die svchost.exe-Prozesse die vorangestellte Bezeichnung „Diensthost“, gefolgt von der Beschreibung des ausgeführten Dienstes. In früheren Versionen von Windows erschien der Name svchost.exe noch direkt in der Prozessliste.

Dienste (Services.msc)

Alle Dienste können mit der System-App Dienste eingesehen werden. Um diese App zu öffnen, rufen Sie einfach den „Ausführen“-Dialog über das Startmenü (Windows-Icon) auf und geben dort folgendes ein:

services.msc

Im Kontextmenü eines jeden Eintrags befindet sich das Auswahlfeld „Eigenschaften“. Dieses zeigt den Pfad zur verknüpften ausführbaren Datei. Zudem werden die Bezeichnung des Dienstes und eine Kurzbeschreibung ausgegeben. So können Sie die Funktion des Service einschätzen. Abhängigkeiten von anderen Diensten lassen sich im gleichnamigen Reiter einsehen.

tasklist.exe

Wenn Sie sich nicht scheuen, die Kommandozeile zu nutzen, ist das Programm taskliste.exe eine gute Alternative. Das Programm ist unter Windows 10 vorinstalliert und sehr übersichtlich. In vorangegangenen Versionen war eine ähnliche Software unter dem Namen „tlist.exe“ implementiert. Zum Starten muss die Eingabeaufforderung (cmd.exe) aufgerufen werden. Um eine Auflistung aller Instanzen von svchost.exe mit dazugehöriger Prozess-ID und den darin ausgeführten Diensten zu erhalten, geben Sie in die Windows-Befehlszeile folgenden Befehl ein:

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

Externe Programme: Process Explorer

Microsoft bietet kostenfrei zusätzliche Software wie den Process Explorer des bekannten Fachbuch-Autors und Windows-Insiders Mark Russinovich. Das Programm ähnelt in der Aufmachung dem Task-Manager, hat aber einen wesentlich größeren Funktionsumfang. So ist leicht zu erkennen, von welchen Prozessen andere Prozesse aufgerufen wurden. Außerdem ist das per Rechtsklick aufrufbare Kontextmenü deutlich ausführlicher. So wird beispielsweise nicht nur das zu einem Prozess gehörige Programm angezeigt, sondern auch der Registry-Eintrag. Zudem ist es möglich, Software direkt auf der Plattform Virustotal überprüfen zu lassen.

Wie kann man erkennen, ob svchost.exe ein Virus ist?

Der Prozess svchost.exe erscheint häufig verdächtig, wenn ein von Schadsoftware befallenes System untersucht wird. Ein Grund hierfür ist, dass der zugrundeliegende Dienst nicht immer sofort erkennbar ist. Zudem kann nicht ausgeschlossen werden, dass schadhafte Software die Funktion des Prozesses ausnutzt und sich an diesen heftet. Dass der Prozess derart häufig vorkommt, haben sich Cyberkriminelle in der Vergangenheit des Öfteren zunutze gemacht.

Es ist nicht einfach, festzustellen, ob es sich jeweils um legitime Prozesse handelt: Zunächst sollten Sie die korrekte Schreibweise des Prozesses überprüfen. So verwenden Schadprogramme häufig ähnlich aussehende Namen wie etwa scvhost.exe oder svhost.exe. Weiterhin lässt sich auf die oben beschriebene Weise der Speicherort der ausführbaren Datei einsehen. Dieser darf ausschließlich unter dem Pfad „\Windows\System32\“ zu finden sein, andernfalls handelt es sich nicht um einen offiziellen Systemprozess.

Weiteren Aufschluss geben die verknüpften Dienste. Handelt es sich um bekannte Windows-Systemfunktionen, ist die Wahrscheinlichkeit gering, dass Schadsoftware ursächlich ist. Zudem bietet der Reiter „Details“ des Task-Managers weitere Informationen. In den Eigenschaften ist eine digitale Signatur (Zertifikat) des Urhebers hinterlegt, deren Aussteller für svchost.exe immer die Firma Microsoft sein sollte.

Wie kann man einzelne svchost.exe-Prozesse beenden?

Reagiert ein Programm mit einer grafischen Benutzeroberfläche nicht mehr, kann es hilfreich sein, den dazugehörigen Prozess manuell zu beenden. Ebenso ist es möglich, dass versehentlich mehrere Instanzen eines Programms gestartet wurden zum Beispiel durch mehrmaligen Doppelklick auf das Programmsymbol. Auch in diesem Fall können die überflüssigen Prozesse beendet werden, damit sich das Programm wieder normal verwenden lässt. Prozesse wie svchost.exe lassen sich im Task-Manager schließen. Hierzu müssen Sie in der Prozess-Ansicht lediglich einen Rechtsklick auf den betreffenden Eintrag ausführen und die Option „Task beenden“ auswählen.

Hinweis

Beachten Sie, dass beim Beenden von Systemprozessen unvorhergesehene Probleme im laufenden Betriebssystem auftreten können. Offene Dokumente oder sonstige Datenbestände sollten Sie daher zuvor unbedingt abspeichern!

Verursacht eine svchost.exe-Instanz auch nach dem Neustart Probleme, bleibt noch die Möglichkeit, den Prozess in der App „Dienste“ manuell zu deaktivieren. In diesem Fall sollten Sie sich aber möglichst vorher über die Funktion des auszuschaltenden Dienstes informieren, um nicht das Risiko einzugehen, dass das System nach einem weiteren Neustart nicht mehr korrekt funktioniert.

svchost.exe – (k)ein Prozess wie jeder andere

Tatsächlich ist svchost.exe ein ganz normaler und doch besonderer Prozess. Er wird aus gutem Grund vielfach ausgeführt, was grundsätzlich weder auf eine Fehlfunktion Ihres Systems noch auf aktive Schad-Software hindeutet. Inzwischen lässt sich der Zweck jedes einzelnen Prozesses im Task-Manager von Windows relativ einfach einsehen. Zudem kann man svchost.exe notfalls wie jeden anderen Prozess manuell beenden.