# Windows-Systemdienst

Ein Windows-Systemdienst (auch kurz einfach Dienste oder englisch Services) ist ein Programm, das als spezialisierter Dienst im Hintergrund von Windows läuft und Funktionalitäten des Betriebssystems bündelt, um sie Dritten zur Verfügung zu stellen. Vom Konzept her ist er dem Unix-Daemon ähnlich.

## Funktionsweise

Windows-Systemdienste bilden sozusagen das „Rückgrat“ von Windows und vermitteln dabei oftmals zwischen Hardware- und Software-Ebene. Ein gutes Beispiel hierfür ist der „Plug-and-Play“-Dienst: ohne diesen könnten weder Applikationen die angeschlossene Hardware (z. B. eine Maus) nutzen, noch könnte sich ein Gerät automatisch am Betriebssystem anmelden. Durch einen sogenannten Dienstvertrag (auch Schnittstellenspezifikation) wissen sowohl Hardware als auch Software im Voraus genau, wie sie einen Dienst ansprechen müssen, um eine bestimmte Funktionalität zu nutzen.
Die eigentliche Implementierung des Dienstes hängt dabei vom Umfeld (Windows-Version, 32- oder 64-Bit-System usw.) ab, die Schnittstellen des „Plug & Play“-Dienstes sind aber auf allen Windows-Systemen (ab XP) vom Prinzip her fast gleich oder zumindest rückwärtskompatibel.
Dienste kommunizieren dabei nicht direkt mit dem Anwender, sie selbst besitzen keine Benutzerschnittstelle. Häufig gibt es zur Konfiguration und Steuerung eines Dienstes separate Programme, in Windows werden die meisten dieser Programme in der Systemsteuerung zusammengefasst.
Windows stellt den Service Control Manager services.exe bereit, der das Starten und Anhalten von Diensten verwaltet. Er ist ein RPC-Server. Seine Benutzerschnittstellen sind die Microsoft Management Console und der Kommandozeileninterpreter cmd.exe. Ein Programm, das als Dienst gestartet werden soll, muss so geschrieben sein, dass es mit den Befehlen start|pause|continue|stop des Service Control Managers umgehen kann.
In der Regel liegen als Dienst auszuführende Programme als ausführbare Datei vor. In einer Dynamic Link Library vorliegende Programme werden über die ausführbare Datei Svchost.exe (service host) aufgerufen, die die Dienste lädt, ausführt und gegebenenfalls beendet. Ein Dienst kann automatisch beim Hochfahren des Betriebssystems gestartet werden, manuell auf Anforderung anderer Programme gestartet werden oder deaktiviert sein.
Ein Dienst wird installiert, indem sein Name, die ausführbare Datei und andere Angaben in die Registrierungsdatenbank eingetragen werden. Standardmäßig arbeiten Dienste als lokales System mit umfassenden Zugriffsrechten. Sie können aber auch so eingerichtet werden, dass sie unter einem Benutzerkonto oder mit minimalen Zugriffsrechten als Netzwerkdienst oder lokaler Dienst arbeiten.

## Installation

Dienste können u. a. mittels *.INF-Skripts von SetupAPI installiert und deinstalliert werden; ein neu installierter Dienst kann dabei gestartet werden, ein laufender Dienst kann vor der Deinstallation gestoppt werden.

## Verwaltung

Dienste können mit dem MMC-Snap-In Services.msc verwaltet werden. Erweiterte Möglichkeiten wie das Erstellen, Löschen und Definieren der Abhängigkeiten von Diensten bietet das Kommandozeilen-Tool sc.exe. Dieses ist seit Windows XP bzw. Windows Server 2003 in der Standardinstallation von Windows enthalten, kann aber auch unter anderen Windows-Versionen über das Resource Kit nachinstalliert werden.

## Anwendungen

Einige grundlegende Systemfunktionen werden von Diensten bereitgestellt. Solche Dienste werden ungeachtet der Variante von Windows automatisch mit dem Betriebssystem gestartet.
Beispiele:
* Arbeitsstationsdienst – ermöglicht Clients, auf ein Netzwerk zuzugreifen
* Automatische Updates – überwacht Microsoft Update, lädt Updates herunter und installiert sie
* DHCP-Client – ermöglicht es, automatisch eine IP-Adresse zugewiesen zu bekommen
* DNS-Client – findet die IP-Adressen zu Domain-Namen, z. B. de.wikipedia.org
* Druckwarteschlange – der Spooler, der das Drucken ermöglicht
* Server – ermöglicht, den Spooler und Dateien gemeinsam im Netzwerk zu nutzen
* Taskplaner – führt Programme zu bestimmten Zeitpunkten automatisch aus
* Plug and Play – überwacht und unterstützt Änderungen der Hardware
Auch Programme, die nicht zum Lieferumfang von Windows gehören, arbeiten regelmäßig als Dienst. Typische Beispiele dafür sind:
* Server jeder Art
* Antivirenprogramme und andere Sicherheitssoftware
* Werkzeuge zur Datensicherung und -replikation