Windows Dienste (Services)

6 Kernkonzepte
Die wichtigsten Befehle und Tools für die Verwaltung von Windows-Diensten: services.msc · sc · Get-Service · Start-Service · Set-Service · Startup-Types Windows-Dienste (Services) sind Hintergrundprozesse, die Systemfunktionen bereitstellen – von Netzwerk bis Sicherheit. Diese Cheatsheet fasst die wichtigsten Verwaltungstools und -befehle zusammen.

services.msc – Dienste grafisch verwalten

Win+R → services.msc
Win + R"services.msc"Enter

services.msc ist die grafische Verwaltungskonsole für Windows-Dienste. Hier können Sie Dienste starten, stoppen, pausieren und den Starttyp konfigurieren.

Wichtige Spalten in services.msc

Spalte Beschreibung
Name Interner Dienstname (für sc-Befehle)
Anzeigename Lesbarer Name des Dienstes
Status Wird ausgeführt, Gestoppt, Wird gestartet, etc.
Starttyp Automatisch, Manuell, Deaktiviert, Automatisch (verzögert)
Anmelden als Lokales System, Netzwerkdienst, Lokaler Dienst, Benutzer
Beispiele
# services.msc öffnen
Win + R"services.msc"
# Dienst über Kontextmenü:
Rechtsklick auf Dienst → Starten, Stoppen, Neu starten, Eigenschaften
# In Eigenschaften:
Starttyp ändern, Abhängigkeiten anzeigen, Wiederherstellungsoptionen
Tipp: Mit services.msc können Sie auch Abhängigkeiten zwischen Diensten einsehen – wichtig, bevor Sie einen Dienst deaktivieren.

sc – Dienste über die Kommandozeile verwalten

sc config · sc start · sc stop · sc query
sc query "Spooler" sc config "Spooler" start= auto sc start "Spooler"

sc (Service Control) ist das Kommandozeilen-Tool für die Diensteverwaltung. Es bietet mehr Funktionen als die GUI und ist ideal für Skripte und Remote-Verwaltung.

Wichtige sc-Befehle

Befehl Beschreibung
sc query Status eines Dienstes anzeigen
sc queryex Erweiterte Statusinformationen (PID, etc.)
sc start Dienst starten
sc stop Dienst stoppen
sc pause Dienst pausieren
sc continue Pausierten Dienst fortsetzen
sc config Starttyp oder Abhängigkeiten ändern
sc delete Dienst löschen (Vorsicht!)
sc failure Wiederherstellungsoptionen konfigurieren
Beispiele
# Status aller Dienste anzeigen
sc query type= service
# Detaillierten Status von Spooler anzeigen
sc query "Spooler"
# Spooler-Dienst starten
sc start "Spooler"
# Spooler auf Automatisch setzen
sc config "Spooler" start= auto
# Spooler deaktivieren
sc config "Spooler" start= disabled
# Alle Dienste mit "WMI" im Namen suchen
sc query | findstr "WMI"
Tipp: Bei sc config muss nach start= ein Leerzeichen stehen. Die Syntax ist: start= auto (nicht start=auto).

PowerShell – Dienste mit Cmdlets verwalten

Get-Service · Start-Service · Stop-Service · Set-Service
Get-Service -Name "Spooler" Start-Service -Name "Spooler" Set-Service -Name "Spooler" -StartupType Automatic

PowerShell bietet eine moderne, objektorientierte Diensteverwaltung mit Cmdlets wie Get-Service, Start-Service und Set-Service.

Wichtige Service-Cmdlets

Cmdlet Beschreibung
Get-Service Dienste und deren Status abrufen
Start-Service Dienst starten
Stop-Service Dienst stoppen
Restart-Service Dienst neu starten (Stopp + Start)
Suspend-Service Dienst pausieren
Resume-Service Pausierten Dienst fortsetzen
Set-Service Starttyp, Beschreibung oder Anmeldeinformationen ändern
New-Service Neuen Dienst erstellen
Remove-Service Dienst löschen (PowerShell 7+)
Beispiele
# Alle Dienste anzeigen
Get-Service
# Nur laufende Dienste
Get-Service | Where-Object {$_.Status -eq "Running"}
# Details zu einem Dienst
Get-Service -Name "Spooler" | Select-Object *
# Dienst starten
Start-Service -Name "Spooler"
# Starttyp auf Automatisch setzen
Set-Service -Name "Spooler" -StartupType Automatic
# Alle Dienste mit "Remote" im Namen neu starten
Get-Service -Name "*Remote*" | Restart-Service
Tipp: PowerShell-Cmdlets arbeiten mit Objekten – Sie können die Ausgabe von Get-Service direkt an andere Cmdlets weiterleiten (z.B. für Filterung, Sortierung oder Export).

Starttypen – Wann startet der Dienst?

Automatisch · Manuell · Deaktiviert · Automatisch (verzögert)
# sc config sc config "ServiceName" start= auto # PowerShell Set-Service -Name "ServiceName" -StartupType Automatic

Starttypen bestimmen, wann und wie ein Dienst gestartet wird – beim Systemstart, manuell oder gar nicht.

Starttypen im Detail

Starttyp sc-Wert PowerShell-Wert Beschreibung
Automatisch auto Automatic Startet beim Systemstart
Automatisch (verzögert) auto Automatic (Delayed) Startet verzögert nach Systemstart
Manuell demand Manual Wird bei Bedarf gestartet (z.B. von einem anderen Dienst)
Deaktiviert disabled Disabled Kann nicht gestartet werden
Boot (nur Treiber) boot - Startet beim Booten (Treiber)
System (nur Treiber) system - Startet während des Systeminitialisierung
Beispiele
# Dienst auf "Automatisch (verzögert)" setzen
sc config "ServiceName" start= auto delayed-auto= yes
# PowerShell: Verzögerung aktivieren
Set-Service -Name "ServiceName" -StartupType Automatic -DelayedStart $true
# Alle deaktivierten Dienste anzeigen
Get-Service | Where-Object {$_.StartType -eq "Disabled"}
⚠️ Vorsicht: Deaktivieren Sie keine wichtigen Systemdienste, die für die Netzwerk-, Sicherheits- oder Systemfunktionalität benötigt werden. Recherchieren Sie vorher die Auswirkungen.

Status & Abhängigkeiten – Welcher Dienst läuft?

sc query · Get-Service · Abhängigkeiten prüfen
sc queryex "ServiceName" sc enumdepend "ServiceName"

Status und Abhängigkeiten helfen zu verstehen, warum ein Dienst nicht startet oder welche anderen Dienste von ihm abhängen.

Beispiele
# Detaillierten Status (mit PID)
sc queryex "ServiceName"
# Dienste, die von diesem Dienst abhängen
sc enumdepend "ServiceName"
# Abhängigkeiten des Dienstes (welche er benötigt)
sc qdescription "ServiceName"
# PowerShell: Status aller Dienste mit Farbe
Get-Service | Format-Table Name, Status, DisplayName
# PowerShell: Abhängigkeiten anzeigen (requires PS 6+)
Get-Service -Name "ServiceName" | Select-Object Name, DependentServices, ServicesDependedOn
Tipp: Wenn ein Dienst nicht startet, prüfen Sie mit sc enumdepend die Abhängigkeiten. Häufig fehlt ein anderer Dienst, der erst gestartet werden muss.

Fehlerbehebung – Typische Probleme lösen

Event-Logs · sc failure · Wiederherstellung
sc failure "ServiceName" actions= restart/10000/restart/30000/reboot/60000

Fehlerbehebung bei Dienst-Problemen – von Wiederherstellungsoptionen bis zur Ereignisanalyse.

Beispiele
# Wiederherstellungsoptionen anzeigen
sc failure "ServiceName"
# Bei Fehler: Neustart nach 10 Sekunden
sc failure "ServiceName" actions= restart/10000
# Bei Fehler: restart/10s, restart/30s, reboot/60s
sc failure "ServiceName" actions= restart/10000/restart/30000/reboot/60000
# Fehler in der Ereignisanzeige prüfen
eventvwr.mscWindows-Protokolle → System
# Nach Dienst-Fehlern filtern (Quelle: "Service Control Manager")
Get-WinEvent -LogName "System" -FilterXPath "*[System[Provider[@Name='Service Control Manager']]]" | Select-Object TimeCreated, Message
# PowerShell: Dienst auf Wiederherstellung prüfen
Get-Service -Name "ServiceName" | Select-Object Name, Status, StartType
Tipp: Die Ereignisanzeige (eventvwr.msc) ist die erste Anlaufstelle bei Dienst-Problemen. Suchen Sie nach Fehlern von der Quelle "Service Control Manager" (Event-ID 7000, 7009, 7034, 7036).

Windows Dienste – Wichtige Konzepte

services.msc GUI-Verwaltung
Start, Stopp, Konfiguration
sc Kommandozeilen-Tool
config, query, start, stop
PowerShell Objektorientierte Cmdlets
Get-Service, Set-Service
Starttyp Automatisch, Manuell, Deaktiviert
Startverhalten
Abhängigkeit Dienste, die andere benötigen
sc enumdepend
Wiederherstellung Bei Fehler: Neustart, Reboot
sc failure

Quick Summary

services.msc
GUI-Verwaltung
sc
Kommandozeile
Get-Service
PowerShell
start= auto
Starttyp
sc query
Status prüfen
sc failure
Wiederherstellung
sc query "Spooler" · sc config "Spooler" start= auto · Get-Service -Name "Spooler"