Tipps & Tricks 20.08.2012, 05:00 Uhr

Svchost.exe: was die Datei macht und wie man ihre Fehlermeldungen analysiert

Benutzer von Windows (ab Windows 2000) sind dann und wann mit Fehlermeldungen wie diesen konfrontiert: «Programmfehler: svchost.exe hat einen Fehler verursacht, starten Sie die Anwendung neu.» Daraufhin ist ein Start von Programmen wie Office oft nicht mehr möglich. Was ist «svchost.exe» und wofür ist diese Anwendung zuständig? Wie lassen sich solche Fehler beheben, wenn Formatieren und Neuinstallieren scheinbar nicht hilft?
Die Datei bzw. der Dienst sitzt tief in Windows und ist am Ausführen vielerlei Anwendungen beteiligt. Deshalb ist hier keine simple Antwort möglich. Der Artikel basiert ursprünglich auf Windows 2000, dürfte aber auch heute noch weitgehend Gültigkeit haben. Allfällige Pfadangaben für neuere Windows-Versionen haben wir ergänzt.
Was ist svchost.exe?
Die Datei «svchost.exe» ist seit Windows 2000 Teil des Windows-Betriebssystems und seither auch in Windows XP, Windows Vista und Windows 7 enthalten. Svchost.exe ist ein allgemeiner Hostprozessname für Dienste, die mit Hilfe von Dynamic-Link Libraries (sogenannten DLL-Dateien) ausgeführt werden. Dienste sind ab Windows 2000 Funktionen, die gewisse Fähigkeiten von Windows bereitstellen. So ist z.B. die automatische Erkennung von USB-Geräten ein Dienst. Auch für Druck-Funktionen wird ein spezieller Dienst benötigt. Dienste können gestartet oder gestoppt werden. Längst nicht alle Dienste benötigen Svchost.exe (eben nur solche, die per DLL-Dateien ausgeführt werden müssen). Das Betriebssystem startet Svchost-Sessions, sobald es solche benötigt und beendet sie auch wieder, sobald einer nicht mehr gebraucht wird.
Svchost.exe ist eine Art Ober-Dienst oder die Zusammenfassung von Einzel-Diensten, die mit Hilfe von DLLs ausgeführt werden. Da in Windows meist viele Dienste laufen, können mehrere Instanzen von Svchost.exe gleichzeitig ausgeführt werden. Jede Svchost.exe-Sitzung kann eine eigene Gruppe von Diensten enthalten, so dass in Abhängigkeit davon, wie und wo Svchost.exe gestartet wird, verschiedene Dienste ausgeführt werden können.
Wo befindet sich Svchost.exe?
Die ausführbare Datei Svchost.exe befindet sich im Ordner %SystemRoot%\System32\ oder (auf 64bit-Systemen) in %SystemRoot%\SysWOW64\; also meist in C:\Windows\System32\ oder C:\Windows\SysWOW64\. Als Reserve steckt sie noch zusätzlich in DLL-Cache-Ordnern. Die Datei in %SystemRoot%\System32\ kann im normalen Betrieb nicht überschrieben oder gelöscht werden, weil sie in jedem Fall unter Windows mindestens einmal gestartet ist.
Was macht Svchost.exe?
Svchost in der Registry
Beim Start von Windows überprüft Svchost.exe den auf Dienste bezogenen Abschnitt der Registry, um eine Liste von Diensten zusammenzustellen, die geladen werden müssen. Die Registry gibt also bereits beim Start vor, was Svchost.exe später im System treibt.
Jede Svchost.exe-Sitzung kann eine eigene Gruppe von Diensten enthalten, so dass in Abhängigkeit davon, wie und wo Svchost.exe gestartet wird, verschiedene Dienste ausgeführt werden können. Svchost.exe-Gruppen sind im folgenden Registrierungsschlüssel angegeben:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Svchost
Svchost.exe
Jeder Wert unter diesem Schlüssel repräsentiert eine eigene Svchost-Gruppe und wird als separate Instanz (Prozess) angezeigt, wenn Sie z.B. mit dem Task-Manager aktive Prozesse einsehen: Die Registry-Einträge enthalten die Dienste, die unter der jeweiligen Svchost-Gruppe ausgeführt werden. Jede Svchost-Gruppe kann (muss aber nicht!) einen oder mehrere Dienstnamen (service_names) enthalten.
Jene werden aus dem Registrierungsschlüssel HKLM\System\CurrentControlSet\Services\Service extrahiert, dessen Schlüssel «Parameters» einen Wert des Typs «ServiceDLL» beinhaltet. Ist keine Svchost-Gruppe vorhanden, die mehrere Dienstnamen enthält, existiert auch der Registry-Eintrag nicht.
Welche Svchost-Dienste laufen?
Sie können genau nachforschen, welche Svchost-Dienste aktiv sind. Laden Sie das Programm Process Viewer herunter und installieren es. Laden Sie zudem das Programm Tlist.exe herunter und legen es in einem Ordner ab.
Nun starten Sie einmal den Task-Manager (gleichzeitiges Drücken der Tasten Ctrl+Shift+Esc) und schauen im Reiter Prozesse nach, wie oft die Datei svchost.exe erscheint. In neueren Windows-Versionen müssen Sie sich unter Umständen noch die «Prozesse aller Benutzer» einblenden lassen.
In unserem Beispiel sind es vier Instanzen: Mehr Infos bringt der Task-Manager nicht ans Licht. Starten Sie darum das Programm Process Viewer.
Svchost.exe im Process Viewer
Auch er sollte (in unserem Beispiel) vier Instanzen von svchost.exe finden: Rechtsklicken Sie auf einen der Svchost-Einträge und wählen im Kontext-Menü Startup Info. In unserem Beispiel (Windows 2000) wird immer die Datei svchost.exe angegeben und nach einem Strich viermal ein anderer Name eingeblendet. Hier sind es «rpcss», «netsvcs», «wugroup» und «BITSgroup».
Genau diese Namen werden Sie in unserem Beispiel auch in der Registry finden und zwar wie oben erwähnt unter HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Svchost.
Dies ist auch nicht weiter erstaunlich, wird doch genau dort svchost.exe mitgeteilt, was gestartet werden muss.
tlist
Sie können auch noch anders überprüfen, wie viele Instanzen von Svchost.exe laufen und welche Dienste Svchost bedient. Gehen Sie zu Start, tippen Sie cmd ein und öffnen Sie das Programm cmd.exe. Im jetzt geöffneten Konsolenfenster navigieren Sie zum Ordner, in den Sie die Datei «Tlist.exe» abgelegt haben. Starten Sie Tlist.exe mit der Eingabe tlist in der Kommandozeile. Damit erscheinen alle momentan aktiven Prozesse. In unserem Beispiel sollten es vier Svchost-Instanzen sein.
Jetzt gehen wir mit Tlist noch ein wenig mehr ins Detail und wollen die einzelnen Dienste der jeweiligen Prozesse sehen. Geben Sie dazu tlist -s ein. Sie werden wieder die Namen «rpcss», «netsvcs», «wugroup» und «BITSgroup» finden, diesmal allerdings noch genauere Angaben: Der erste Svchost-Prozess enthält den Dienst «RpcsSs». Im zweiten Svchost-Prozess sehen Sie auf einen Schlag die Dienste «EventSystem», «Netman», «NtmsSvc», «RasMan», «SENS», «TapiSrv» gebündelt. Im dritten sehen Sie den Dienst «wuauserv» und im vierten den Dienst «BITS».
Was bringt die Analyse von Svchost.exe?
Mit den oben erklärten Anaylsevorgaben sind Sie gerüstet, Svchost-Fehlermeldungen auf den Grund zu gehen. Die Registry-Einträge weisen vielleicht auf ein Programm hin, das nicht richtig installiert wurde. Sie werden jetzt sicher auch verstehen, warum es für Svchost-Abstürze kein Universal-Rezept gibt. Durch die Komplexität des Svchost-Dienstes kann das Problem in jeder Svchost-Instanz und den damit verbundenen Diensten liegen. Zum Glück bringen Windows 2000 und seine Nachfolger eine bequeme Ereignisanzeige mit, in der jeder Fehlstart eines Dienstes genau verzeichnet ist.
Windows Ereignisanzeige
Geben Sie nach einem Klick auf Start die Zeichenfolge eventvwr ein. Die Ereignisanzeige startet: Schauen Sie sich nun die Aufzeichnungen unter Anwendungsprotokoll und Systemprotokoll an. Die aufgezeichnete Fehlermeldung im Zusammenhang mit svchost.exe sind hier festgehalten und geben Ihnen unter Umständen Aufschluss über die Ursache des Absturzes.
Häufige Ursachen für Svchost.exe-Abstürze
Viele Anwender wurden im Jahr 2003 durch Svchost.exe-Crashes geplagt, und zwar im Zusammenhang mit dem Blaster-Wurm. Damals machten Sicherheitslücken die Systeme anfällig. Spielen Sie unbedingt zeitnah Updates und Service-Packs für Windows und die darauf verwendeten Programme ein. Prüfen Sie Ihr System auf Schädlinge.
Vielleicht ist es ja nicht die «echte» Svchost.exe-Datei, die Ihnen Ärger macht. Untersuchen Sie Ihr System auf weitere Dateien dieses Namens. Wenn Sie eine an einem anderen Ort als innerhalb des Windows-Ordners entdecken, könnte sich ein Trojaner mit dem gleichen Dateinamen eingenistet haben. Es gibt auch Schädlinge, die zu ganz ähnlichen Dateinamen greifen.
Windows-Start protokolliert
Eine weitere Option zum Beheben des Svchost-Absturzes wäre noch das Aktivieren der Startprotokollierung. Dies machen Sie, wenn Sie kurz nach dem Einschalten des PCs und gleich nach den BIOS-Meldungen ein- oder mehrmals die Taste F8 drücken. Hier finden Sie Startprotokollierung aktivieren. Windows zeichnet dann im Ordner %System% (meist in C:\Windows\) in der Datei ntbtlog.txt alle Dienste und Treiber auf, die es während des Startvorgang lädt (oder eben nicht). Hilft Ihnen das beim Ermitteln des Svchost-Absturzes nicht weiter, weil die Log-Datei zu wenig ausführlich war (viele Fehler passieren in der Registry, welche nicht mitprotokolliert wird), gibt es immer noch die Möglichkeit, mit dem Programm Registry Monitor (Regmon) den Windows-Start protokollieren zu lassen - und zwar mitsamt der Registry-Zugriffe. Denn Regmon überwacht die Registry von Windows bereits beim Hochfahren. Das Programm schreibt alle Ergebnisse in die Datei regmon.log im Windows-Verzeichnis, bis Sie die Überwachung stoppen. Die Meldung «BUFOVERFLOW» in Regmon-Log-Datei bedeutet etwa, dass es einen Fehler beim Zugriff gab. «NOTFOUND» in der Log-Datei bedeutet, dass der Key nicht gefunden wurde. Beide Nachrichten sind heisse Kandidaten für die Fehlersuche.
Infos zur Svchost.exe finden Sie auch bei Microsoft, z.B. hier oder hier.



Kommentare
Avatar
BlackIceDefender
21.09.2008
heisst das ding nicht svchost.exe?

Avatar
POGO 1104
21.09.2008
heisst das ding nicht svchost.exe?...mal abgesehen davon, dass der Thread 1/2 Jahr alt ist... svchost.exe ist i.d.R. sauber und wird von Windows verwendet. z.T. auch mehrfach gleichzeitig. Sie sollte sich unter \windows\system32 befinden. svhost.exe ist i.d.R. böse und unerwünscht diese beiden werden auch gerne verwechselt, also im Taskmanager genau hinschauen, welche Version dass läuft. gruss, o.s.t.

Avatar
BlackIceDefender
21.09.2008
war genau mein punkt. auf diesen thread wird von einem neueren verwiesen. daher die frage auch hier.