Fehlerbehebung bei häufigen Windows-Dienstfehlern

Eines der häufigsten Probleme, mit denen ein Administrator konfrontiert ist, sind Dienste, die sich schlecht verhalten. Dienstleistungen – leicht zu entlarven …

Im Snap-In “services.msc” können Sie eine Vielzahl von System- und Anwendungsfunktionen steuern. Glücklicherweise gibt es einige grundlegende Methoden zur Fehlerbehebung, die verwendet werden können, wenn Dienste nicht das tun, wofür sie entwickelt wurden, oder verschiedene Formen von Systemfehlern verursachen.
Um die Fehlerbehebung bei Windows-Diensten zu verstehen, müssen einige grundlegende Merkmale von Diensten überprüft werden. Erstens werden Dienste im Sicherheitskontext eines Kontos ausgeführt. Dieses Konto bietet Berechtigungen zum Ausführen von Vorgängen, die für den Dienst erforderlich sind. Die meisten Windows-Dienste werden unter dem leistungsstarken LocalSystem-Konto ausgeführt, das über die Berechtigung verfügt, alle Aktionen auszuführen. Anwendungen wie Exchange Server, SQL Server, Cluster Server und andere Anwendungen von Drittanbietern werden normalerweise unter einem “Dienstkonto” ausgeführt. Dies ist ein Benutzerkonto, das über die für den Dienst erforderlichen Berechtigungen und Gruppenzuordnungen verfügt. Dieses Konto verfügt wie jedes Konto über ein Kennwort, das häufig vom Dienst gesteuert wird und von anderen Anwendungen, z. B. Agenten auf Clients, zur Kommunikation mit der Serveranwendung verwendet werden kann.
Dienste können auch Abhängigkeiten aufweisen, dh ein Dienst kann erst gestartet werden, wenn andere Dienste gestartet wurden. Ebenso kann ein Dienst andere davon abhängig machen. Abbildung 1 zeigt die Abhängigkeitsliste für den Exchange-Systemaufsichtsdienst.
Abbildung 1

Schließlich können Dienste nicht nur deaktiviert, sondern auch auf verschiedene Arten gestartet werden:

  • Automatisch: Der Dienst wird beim Booten des Computers gestartet.
  • Handbuch: Der Dienst wird manuell gestartet. Klicken Sie im Service-Snap-In mit der rechten Maustaste auf den Service und wählen Sie Start.

Schauen wir uns einige häufig auftretende Probleme an und wie wir diese Informationen verwenden können, um sie zu beheben.
Problem: Die Anwendung schlägt fehl und meldet einen Authentifizierungsfehler, einen verweigerten Zugriff oder dergleichen.
Dies ist normalerweise ein Problem, wenn das dem Dienst zugeordnete Kennwort nicht mit dem Kennwort des Dienstkontos im Snap-In “Active Directory-Benutzer und -Computer” übereinstimmt. Oft können Sie das Kennwort für das Konto manuell ändern und dann das Dienstkennwort manuell ändern, wie in Abbildung 2 dargestellt. Dieser bestimmte Dienst verfügt über ein Konto mit dem Namen ASMUser. Viele Konten werden unter LocalSystem ausgeführt. Einige Anwendungen synchronisieren das Kennwort jedoch möglicherweise. In diesem Fall können Sie es nicht auf diese Weise steuern. Dies erfordert möglicherweise eine Neuerstellung des Benutzerkontos oder eine Neuinstallation der Anwendung oder des Agenten.
Figur 2

Problem: Der auf Automatisch eingestellte Dienst wird beim Booten nicht gestartet.
Nach der Anmeldung können Sie den Dienst manuell starten. Der wichtige Punkt hierbei ist, dass der Service fängt an, aber die automatischer Start funktioniert nicht. In diesem Fall handelt es sich wahrscheinlich um ein Abhängigkeitsproblem. Wenn ServiceA von ServiceB abhängig ist, muss ServiceB ganz einfach vor ServiceA gestartet werden. Wenn ServiceB nicht gestartet wird, wird ServiceA nicht gestartet.
Um diese Situation zu beheben, müssen Sie feststellen, warum die abhängigen Dienste entweder nicht oder nicht rechtzeitig vor dem Start des Dienstes gestartet wurden. Eine Möglichkeit, dies zu beheben und zu beweisen, dass es sich um ein Abhängigkeitsproblem handelt, besteht darin, den abhängigen Diensten genügend Zeit zu geben, um während des Startvorgangs zu starten. Suchen Sie dazu einen Dienst, der einer der letzten ist, der vor Abschluss des Startvorgangs gestartet wird, und fügen Sie ihn der Abhängigkeitsliste des Problemdienstes hinzu. In einem zukünftigen Artikel erfahren Sie mehr darüber, wie Sie einen zu verwendenden Dienst finden.
Problem: Das System wird plötzlich neu gestartet, hängt oder stürzt ab.
Neue Anwendungsinstallationen, Hotfixes, Treiberupdates und Antivirenupdates sind häufige Ursachen für diese Probleme. Der erste Schritt zur Fehlerbehebung besteht natürlich darin, zunächst im abgesicherten Modus mit Netzwerk zu starten. Wenn dies nicht funktioniert, starten Sie im abgesicherten Modus.

In einem Fall wurde ein Server bei der ersten Anmeldung plötzlich neu gestartet. Wir haben festgestellt, dass das Booten in den abgesicherten Modus mit Netzwerk funktioniert. Wir stellten ferner fest, dass wir uns mit einem lokalen Konto oder einem Domänenkonto anmelden konnten, sodass wir wussten, dass Domänenauthentifizierungsdienste wie Kerberos funktionieren und dass die netzwerkbezogenen Dienste und Treiber nicht fehlerhaft sind. Wir wussten auch, dass das Problem wahrscheinlich ein Dienst war, der beim vollständigen Start gestartet wurde und nicht im abgesicherten Modus mit Netzwerk gestartet wurde.
Sie können problemlos mindestens eine Liste der im abgesicherten Modus gestarteten Dienste aus der Registrierung abrufen. Wechseln Sie in der Registrierung zu HKLM Services CurrentControlSet Control SafeBoot. Unter dieser Taste finden Sie zwei Unterschlüssel: Minimal und Netzwerk. Jeder dieser Schlüssel enthält alle Dienste, die in diesen beiden Startoptionen im abgesicherten Modus gestartet werden. In meinem Fall habe ich den Schlüssel “Netzwerk” exportiert und eine schöne Textliste aller Dienste erhalten, die im abgesicherten Modus mit Netzwerk gestartet wurden.
Wenn das System startet, können Sie einfach eine Liste der Dienste, die mit einem Net Start-Befehl gestartet wurden, über die Befehlszeile abrufen und mit der Registrierungsliste vergleichen. In meinem Fall konnte ich das nicht tun, also habe ich den Registrierungsschlüssel HKLM system currentControlSet Services exportiert. In der Registrierung hat jeder Dienst eine Startwert Dies zeigt an, ob es automatisch, manuell oder deaktiviert startet. Ein Startwert von 3 zeigt einen manuellen Start an. Suchen Sie dann einfach alle Dienste mit einem Startwert von 2. Es wird noch eine Weile dauern, bis Sie alle gefunden haben – es müssen viele Daten sortiert werden – und schauen Sie sich also traditionell problematische Dienste wie den Dienst Ihres Antivirenprodukts an. In unserem Fall konnten wir nach dem Beenden des Antiviren-Dienstes normal booten. Eine schnelle Suche auf der Website des Antivirenprodukts ergab eine Lösung für das Problem.
Das Debuggen von Dienstproblemen erfordert manchmal eine Crash-Dump-Analyse mit dem Windows Kernel Debugger (Windbg) -Tool. Dies ist nützlich für Hänge, wenn Sie die Möglichkeit haben, den Debugger auszuführen, während das Problem auftritt, da dies auf einen problematischen Dienst hinweisen kann.
ÜBER DEN AUTOR
Gary Olsen ist Systemsoftware-Ingenieur bei Hewlett-Packard im Bereich Global Solutions Engineering. Er hat geschrieben Windows 2000: Active Directory-Entwurf und -Bereitstellung und Co-Autor von Windows Server 2003 auf HP ProLiant Servern. Gary ist ein Microsoft MVP für Directory Services und früher für Windows File Systems.

Similar Posts

Leave a Reply