Schlüsselpunkte
- Zu überwachende Dienste festlegen: Erstellen Sie ein PowerShell-Array mit kritischen Windows-Diensten (z. B. Druckwarteschlange, DNS-Client, Windows-Zeitgeber), um gezielt die Dienste zu überwachen, die sich tatsächlich auf die Verfügbarkeit auswirken.
- Nicht laufende oder hängende Dienste mit PowerShell erkennen: Nutzen Sie Get-Service und WMI-Abfragen auf Win32_Service, um Dienste zu finden, die gestoppt sind oder in den Zuständen „Start Pending“ bzw. „Stop Pending“ festhängen.
- Dienstüberwachung per Aufgabenplanung einplanen: Automatisieren Sie wiederkehrende Prüfungen mit schtasks, damit Skripte alle paar Minuten ohne manuelles Zutun laufen.
- Wiederherstellungsstatus in der Registry protokollieren: Schreiben Sie Zeitstempel und Ergebnisse von Neustarts in die Windows-Registry und schaffen Sie so einen schlanken Audit-Trail für Compliance und RMM-Berichterstattung.
- Integrierte Wiederherstellungsaktionen konfigurieren: Mit sc failure oder dem Registrierungs-Editor starten Sie Dienste nach einem Absturz automatisiert neu, ideal für Absturzszenarien statt für hängende Zustände.
Windows-Dienste sind Programme, die beim Systemstart Prozesse im Hintergrund ausführen. Sie sorgen für einen unterbrechungsfreien Betrieb. Hängt jedoch ein Dienst im Zustand „Wird gestartet“ oder „Wird beendet“ fest oder bricht unerwartet ab, kann das System langsamer werden oder ausfallen. Genau hier hilft Automatisierung, damit Endbenutzer:innen nicht lange auf den IT-Support warten müssen.
Lesen Sie weiter und erfahren Sie, mit welchen Methoden Sie Windows-Dienste überwachen und automatisiert neu starten können, wenn sie hängen bleiben, von PowerShell- und Eingabeaufforderung-Skripten über die Aufgabenplanung bis zur Registry.
Sie bevorzugen eine visuelle Anleitung? Sehen Sie sich unser Video an: So überwachen Sie hängende Windows-Dienste und starten sie automatisiert neu.
Erfahren Sie, welche Zustände und Programme auf Endpunkten Sie überwachen sollten, wann eine Alarmierung sinnvoll ist und welche Maßnahmen folgen
⬇️ Laden Sie das Playbook von NinjaOne zu Überwachung und Alarmierung von Endpunkten für MSPs herunter
Methoden zum Überwachen und Neustarten hängender Windows-Dienste
Proaktive Überwachung, automatisierte Wiederherstellung und verlässliche Protokollierung sind entscheidend, damit kritische Windows-Dienste laufen. Mit den folgenden Methoden haben Sie immer einen strukturierten Ansatz zur Hand, um wichtige Dienste zu überwachen und neu zu starten.
Voraussetzungen:
- Windows 10/11 (für Workstations)
- Windows Server 2016 oder neuer (für Server)
- PowerShell 5.1 oder neuer
- Lokale Administratorrechte
Tipp: Lesen Sie vorab den Abschnitt Worauf Sie achten sollten.
Empfohlene Bereitstellungsstrategien:
| Klicken Sie auf eine Methode | Am besten für Einzelanwender:innen | Am besten für Unternehmen |
| Methode 1: Zu überwachende Dienste festlegen | ✓ | ✓ |
| Methode 2: Nicht laufende oder hängende Dienste mit PowerShell erkennen | ✓ | ✓ |
| Methode 3: Aufgabe zur Dienstüberwachung einplanen | ✓ | ✓ |
| Methode 4: Wiederherstellungsstatus in der Registry protokollieren | ✓ | |
| Methode 5: Integrierte Wiederherstellungsaktionen konfigurieren (optional) | ✓ |
Methode 1: Zu überwachende Dienste festlegen
In diesem Schritt definieren Sie eine Liste der Windows-Dienste, die für den Systembetrieb kritisch sind und überwacht werden müssen. Wenn Sie sich auf die wirklich wichtigen Dienste beschränken, vermeiden Sie unnötigen Ressourcenverbrauch.
📌 Anwendungsfälle:
- Liste kritischer Dienste für alle Endpunkte erstellen
- Dienste geschäftskritischer Anwendungen überwachen
- Basis für unternehmensweite Automatisierungsrichtlinien definieren
Schritte:
- Legen Sie fest, welche Windows-Dienste in Ihrer Umgebung unverzichtbar sind. Zum Beispiel:
- Druckwarteschlange für das Drucken
- DNS-Client für die Namensauflösung im Netzwerk
- Windows-Zeitgeber für die Domänensynchronisierung
- Definieren Sie sie in einem PowerShell-Array:
| $servicesToMonitor = @( „Spooler“, # Print Spooler „W32Time“, # Windows Time „Dnscache“, # DNS Client „WinRM“, # Windows Remote Management „BITS“ # Background Intelligent Transfer Service) |
- Optional: Speichern Sie diese Namen in einer JSON- oder CSV-Datei, damit Sie Änderungen vornehmen können, ohne das Skript selbst zu bearbeiten.
Methode 2: Nicht laufende oder hängende Dienste mit PowerShell erkennen
Diese Methode nutzt PowerShell, um den Zustand von Diensten zu prüfen, nicht laufende Dienste neu zu starten und Dienste zu identifizieren, die in einem Übergangszustand festhängen.
Anwendungsfälle:
- DNS-Client automatisiert neu starten, um Fehler bei der Namensauflösung zu beheben
- Druckwarteschlange wiederherstellen, um Druckdienste zu reaktivieren
- Zustände wie „Start Pending“ erkennen
Voraussetzungen:
- Berechtigungen zur Ausführung von PowerShell-Skripten
- WMI-Zugriff
Schritte:
- Führen Sie dieses PowerShell-Skript aus:
| foreach ($svc in $servicesToMonitor) { $service = Get-Service -Name $svc -ErrorAction SilentlyContinue if ($service.Status -ne „Running“) { try { Start-Service -Name $svc -ErrorAction Stop Write-Output „$svc restarted successfully.“ } catch { Write-Output „Failed to start $svc. Error: $_“ } }} |
Das Skript listet die Windows-Dienste per PowerShell auf und ruft deren aktuellen Zustand ab. Erkennt es, dass ein Dienst nicht läuft, versucht es, ihn zu starten. Anschließend protokolliert es entweder eine Erfolgs- oder eine Fehlermeldung.
- Führen Sie dieses WMI-Skript in PowerShell aus:
| $stuck = Get-CimInstance -Class Win32_Service | Where-Object { $_.State -in @(“Start Pending”, “Stop Pending”) } |
Hier werden per WMI alle Windows-Dienste abgefragt und nach jenen gefiltert, die sich in einem Wartezustand befinden, also „Start Pending“ oder „Stop Pending“. Diese Dienste werden in der Variable $stuck gespeichert, sodass Sie sie prüfen oder später Maßnahmen ergreifen können, etwa erzwungenes Beenden, Neustart oder Alarmierung.
Methode 3: Aufgabe zur Dienstüberwachung einplanen
Diese Methode automatisiert die Skriptausführung in festen Intervallen über die Windows-Aufgabenplanung, sodass kein manueller Start mehr nötig ist. So werden Dienste fortlaufend geprüft.
Anwendungsfälle:
- Prüfungen auf kritischen Servern alle paar Minuten ausführen
- Selbstheilung auf Endpunkten ohne RMM automatisieren
- Verfügbarkeit von Diensten außerhalb der Geschäftszeiten und an Wochenenden sicherstellen
Voraussetzungen:
- Zugriff auf die Aufgabenplanung
- SYSTEM- oder Dienstkontokontext
Schritte:
- Erstellen und speichern Sie Ihr Überwachungsskript an einem bekannten Speicherort. Erstellen Sie zum Beispiel „MonitorServices.ps1“ und speichern Sie es unter C:\Scripts\.
- Erstellen Sie mit PowerShell eine geplante Aufgabe, die alle paar Minuten ausgeführt wird. In diesem Beispiel läuft sie alle 5 Minuten:
schtasks /create /tn „MonitorCriticalServices“ /tr "powershell.exe -File C:\Scripts\MonitorServices.ps1" /sc minute /mo 5 /ru SYSTEM |
⚠️ Wichtig: Stellen Sie sicher, dass die Skriptausführung erlaubt ist.
Methode 4: Wiederherstellungsstatus in der Registry protokollieren
Diese Methode schreibt Neustart-Ereignisse in die Windows-Registry und schafft so einen Audit-Trail, also einen schlanken Protokollierungsmechanismus für Audits oder die Erfassung per RMM.
Anwendungsfälle:
- Lokalen Audit-Trail der Wiederherstellungsmaßnahmen führen
- Dauerhafte Ausfälle für die Ursachenanalyse (RCA) nachverfolgen
Voraussetzung: Schreibrechte für die Registry
Schritte:
- Führen Sie dieses PowerShell-Skript aus:
New-Item -Path "HKLM:\SOFTWARE\Org\ServiceRecovery" -ForceSet-ItemProperty -Path "HKLM:\SOFTWARE\Org\ServiceRecovery" -Name "LastCheck" -Value (Get-Date).ToString(„u“)Set-ItemProperty -Path "HKLM:\SOFTWARE\Org\ServiceRecovery" -Name "LastRestarted" -Value $svc |
Damit wird ein neuer Registry-Pfad mit Schlüsseln angelegt, die den Zeitpunkt der letzten Prüfung und den Dienstneustart protokollieren.
- Überprüfen Sie die neuen Einträge über die Eingabeaufforderung:
reg query HKLM\SOFTWARE\Org\ServiceRecovery
Methode 5: Integrierte Wiederherstellungsaktionen konfigurieren (optional)
Diese letzte Methode nutzt die in Windows integrierten Wiederherstellungsoptionen, um Dienste nach einem Absturz neu zu starten.
Hinweis: Sie eignet sich am besten für Absturzszenarien (unerwartet beendete Dienste), nicht für hängende Zustände (festhängende oder nicht reagierende Dienste).
Anwendungsfälle:
- Dienste wie BITS und W32Time nach Abstürzen automatisiert neu starten
- Wiederherstellungsverhalten per GPO über alle Endpunkte hinweg vereinheitlichen
- Ausfallzeit bei Diensten mit sporadischen Fehlern minimieren
Voraussetzungen:
- Administratorzugriff (für sc.exe oder den Registrierungs-Editor)
- Der Dienst muss Wiederherstellung unterstützen
Schritte:
- Konfigurieren Sie die Dienstwiederherstellung über die Befehlszeile:
sc failure „Spooler“ reset= 86400 actions= restart/60000/restart/60000
Dieses Beispielskript richtet automatische Wiederherstellungsaktionen für die Druckwarteschlange ein. Bei den ersten beiden Abstürzen startet der Dienst nach 1 Minute neu. Scheitert er ein drittes Mal, erfolgt keine Wiederherstellungsaktion mehr. Nach 24 Stunden wird der Fehlerzähler zurückgesetzt.
- Alternativ bearbeiten Sie die Registry-Eigenschaften manuell oder per Skript unter:
HKLM:\SYSTEM\CurrentControlSet\Services\<ServiceName>\FailureActions
Worauf Sie achten sollten
| Risiken | Mögliche Folgen | Gegenmaßnahmen |
| Fehlalarme durch Überwachungsskripte |
|
|
| Störung kritischer Abhängigkeiten | Kettenreaktionen durch Neustarts können zusammenhängende Dienste oder Anwendungen beeinträchtigen. |
|
| Sicherheitsrisiko durch zu weitreichende Skriptberechtigungen | Angreifer:innen könnten Skripte ausnutzen, um erweiterte Kontrolle zu erlangen. |
|
Darum sind Dienstüberwachung und automatisierte Wiederherstellung so wichtig
Windows-Dienste bilden das Rückgrat vieler Systemfunktionen und Anwendungen. Fallen sie aus, stocken sie oder werden sie unerwartet beendet, können Benutzer:innen ihre Computer unter Umständen nicht mehr nutzen. Die Folge sind Zeitverlust, schlechtere Performance und mehr Supportanfragen. Eine saubere Überwachung von Diensten und eine funktionierende Wiederherstellung bewirken Folgendes:
- Höhere Verfügbarkeit von Endpunkten und Servern: Werden Störungen verhindert, bleiben Server online und Benutzer:innen produktiv, gerade wenn Verfügbarkeit entscheidend ist.
- Weniger Support-Tickets und reaktive Arbeit: Die automatisierte Wiederherstellung behebt typische Dienstausfälle, bevor Benutzer:innen sie bemerken, sodass gar keine Helpdesk-Anfrage nötig wird.
- Keine Folgefehler durch abhängige Dienste: Viele Windows-Dienste sind auf andere Dienste angewiesen, um korrekt zu funktionieren. Wenn Sie ausgefallene Dienste neu starten, bevor sie die davon abhängigen Dienste beeinträchtigen, stabilisieren Sie das System und verhindern, dass sich Probleme über Anwendungen oder das gesamte System ausbreiten.
- SLA-gestützte Zusagen zur Dienstverfügbarkeit: Für MSPs hängen Verfügbarkeit und Dienstzuverlässigkeit direkt mit Service Level Agreements (SLAs) zusammen. Eine automatisierte Wiederherstellung kritischer Windows-Dienste hilft MSPs, vertragliche Zusagen einzuhalten, Vertragsstrafen zu vermeiden und das Vertrauen ihrer Kund:innen zu stärken.
Weitere Aspekte bei der Automatisierung von Überwachung und Wiederherstellung von Windows-Diensten
Die folgenden Punkte zeigen einige Best Practices und mögliche Stolperfallen, die Sie klären sollten, bevor Sie diese Automatisierungsstrategien in Produktivumgebungen ausrollen.
Dienstabhängigkeiten
Starten Sie einen Windows-Dienst neu, ohne seine Abhängigkeiten zu berücksichtigen, kann das zu Systeminstabilität oder Folgefehlern führen. Prüfen Sie Dienstabhängigkeiten immer vor einem Neustart, beispielsweise mit Skripten wie diesem:
Get-Service -Name X | Select-Object DependentServices
Starten Sie anschließend bei Bedarf die abhängigen Dienste in der richtigen Reihenfolge neu.
Benachrichtigungen und Alarmierungen
Ihr IT-Team sollte über wiederkehrende Ausfälle Bescheid wissen, denn stille Neustarts und Wiederherstellungen können die eigentlichen Ursachen verschleiern. Für mehr Transparenz konfigurieren Sie Ihre Skripte am besten so, dass sie bei jedem Neustart oder fehlgeschlagenen Neustart eines Dienstes eine E-Mail, einen Webhook oder eine RMM-basierte Alarmierung auslösen.
Dienste mit eigenen Anmeldeinformationen
Manche Dienste laufen unter benutzerdefinierten Konten. Läuft das Passwort ab oder wird es geändert, ohne dass der Dienst aktualisiert wird, schlagen Neustartversuche fehl. Überwachen Sie den Ablauf von Anmeldeinformationen und sorgen Sie für saubere Prozesse zur Passwortrotation. Testen Sie automatisierte Neustarts solcher Dienste in Wartungsfenstern.
Effizienz und Zuverlässigkeit von Skripten
Timeout-Logik, Wiederholungsversuche und Fehlerbehandlung in Ihren Skripten sind sinnvoll, um Blockaden bei nicht reagierenden Diensten zu vermeiden. So werden Skripte sauber beendet und Fehler protokolliert.
Häufige Probleme beheben
Dienst lässt sich nicht neu starten
Möglicherweise hat das Dienstkonto nicht genügend Berechtigungen, oder der Dienst hängt von einem anderen Dienst ab, der gestoppt oder fehlerhaft ist. Prüfen Sie das Dienstkonto und den Status seines Passworts und setzen Sie es zurück, falls es abgelaufen ist. Die Abhängigkeiten können Sie außerdem mit diesem Befehl prüfen:
Get-Service -Name X | Select-Object DependentServices
Skript wird nicht ausgeführt
Vielleicht läuft die geplante Aufgabe nicht unter einem Konto mit ausreichenden Rechten. Prüfen Sie die Anmeldeinformationen und den Kontext der geplanten Aufgabe (SYSTEM oder Administrator). Auch der Dateipfad oder Speicherort des Skripts kann sich geändert haben, prüfen Sie also, ob der Skriptpfad noch stimmt.
Registry wird nicht aktualisiert
Dem Skript fehlt eventuell der Schreibzugriff auf HKLM, oder es läuft in einem Benutzerkontext mit Zugriff nur auf HKCU. Führen Sie Ihr Skript als Administrator oder als SYSTEM aus.
Dienst hängt im Zustand „Pending“
Ein hängender Prozess kann den Dienst beim Start oder Beenden blockieren. Auch Ressourcenengpässe (CPU, RAM oder Datenträger-I/O) können einen Abschluss verhindern. Nutzen Sie Get-CimInstance Win32_Service, um Dienste im Zustand „Start Pending“ oder „Stop Pending“ zu erkennen, und beenden Sie die zugehörigen Prozesse anschließend manuell, sofern das gefahrlos möglich ist.
NinjaOne-Funktionen für eine bessere Überwachung von Windows-Diensten
Die oben genannten Werkzeuge eignen sich gut, um Windows-Dienste auf einzelnen Endpunkten zu überwachen und wiederherzustellen. Für MSPs und IT-Teams lohnt es sich jedoch, auf Plattformen zu setzen, die bessere Services ermöglichen. So unterstützt Sie NinjaOne dabei:
| NinjaOne-Funktion | Beschreibung | Nutzen für IT-Teams/MSPs |
| Automatisierte Bereitstellung | Verteilt Watchdog-Skripte für Dienste auf Endpunkte, Mandanten oder Gruppen |
|
| Automatisierte Behebung | Startet Dienste automatisiert neu, wenn sie ausgefallen sind oder im Wartezustand hängen |
|
| Alarmierung und Benachrichtigungen | Erzeugt Alarmierungen, wenn Neustarts versucht werden, fehlschlagen oder sich häufen |
|
| Endpunkt-Tagging | Markiert Geräte mit dauerhaften Dienstausfällen zur weiteren Prüfung |
|
| Audit- und Compliance-Protokollierung | Führt registry- oder skriptbasierte Protokolle zentral in Berichten zusammen |
|
Testen Sie Echtzeit-Monitoring, Alarmierung und Workflow-Automatisierung in Ihrer eigenen Umgebung
Dienstwiederherstellung über Umgebungen hinweg skalieren
Wenn Windows-Dienste stoppen oder hängen bleiben, kann das System langsamer oder sogar instabil werden. Automatisierte Überwachung und Wiederherstellung helfen MSPs deshalb, Ausfallzeit zu reduzieren und das Vertrauen ihrer Kund:innen zu erhalten.
Vom Prüfen laufender Windows-Dienste per PowerShell bis zur Anpassung der Registry für Audits haben Sie viele Möglichkeiten, verlässliche Selbstheilungsmechanismen aufzubauen, die Störungen minimieren. Denken Sie dabei immer an die genannten Aspekte und Schritte zur Fehlerbehebung, damit Ihr Betrieb proaktiv bleibt.
Verwandte Themen:
- Vollständige Anleitung: Windows-Dienste auf mehreren Geräten per Fernzugriff starten und stoppen
- So aktivieren oder deaktivieren Sie Windows-Dienste
- So aktivieren oder deaktivieren Sie Windows-Dienste (Video)
- Einen ausgefallenen Windows-Dienst mit Automatisierung beheben
- Best Practices für Performance Monitoring von Endpunkten
Quick-Start-Guide
NinjaOne bietet leistungsstarke Automatisierungsfunktionen, mit denen Sie Folgendes tun können:
- Geplante Automatisierungen erstellen: Mit der Automatisierungsbibliothek von NinjaOne richten Sie automatisierte Skripte ein, die Dienste prüfen und neu starten.
- Flexible Skriptbereitstellung: Die Plattform unterstützt eigene Skripte, die:
- den Dienststatus prüfen
- Dienste neu starten, wenn sie nicht laufen
- als System, als aktuelle:r Benutzer:in oder mit bestimmten Anmeldeinformationen ausgeführt werden
- Automatisierte Aktionen: Sie können:
- diese Skripte in festen Intervallen einplanen
- Benachrichtigungen bei Dienstausfällen einrichten
- Richtlinien konfigurieren, die Dienstprobleme automatisiert behandeln
