Service Exporter: Windows-Dienste exportieren, importieren und verwalten
Wer Windows Server administriert, kennt das Problem: Dienste werden konfiguriert, Starttypen angepasst, Recovery Aktionen gesetzt, aber eine saubere Dokumentation oder ein Backup dieser Konfiguration fehlt oft. Der Dunzweiler Service Exporter löst genau dieses Problem.
- 🔍 Alle Windows Dienste auf einen Blick auflisten und filtern
- 💾 Konfigurationen als JSON oder Batch Script exportieren
- 📥 Gesicherte Konfigurationen importieren, bearbeiten und direkt installieren
- 🔄 Vorher/Nachher Vergleich vor dem Übernehmen von Änderungen
Inhalt
| Thema | Beschreibung |
|---|---|
| Was ist der Service Exporter? | Überblick und Funktionsweise |
| Hauptfenster | Dienste auflisten und filtern |
| Export | JSON und Batch Export |
| Import | Dienste wiederherstellen und bearbeiten |
| Vorschau | Änderungen farbcodiert vergleichen |
| Installation | Direkt oder als Script |
Was ist der Service Exporter?
Der Service Exporter ist eine native Windows Anwendung, die über die Windows API direkt auf den Service Control Manager zugreift und sämtliche Dienstkonfigurationen ausliest. Das geht weit über das hinaus, was services.msc standardmäßig anzeigt.
Einige Eigenschaften, die der Service Exporter ausliest, sind in der Windows Dienstverwaltung (services.msc) gar nicht sichtbar. Dazu gehören unter anderem der SID Typ, das Pre Shutdown Timeout, Launch Protection und die erforderlichen Berechtigungen eines Dienstes. Diese Werte lassen sich normalerweise nur über sc Befehle oder die Registry einsehen.
Das Tool erfordert Administratorrechte, da der Zugriff auf den Service Control Manager entsprechende Berechtigungen voraussetzt.
Hauptfenster: Dienste auflisten und filtern
Nach dem Start werden alle installierten Windows Dienste in einer sortierbaren Tabelle angezeigt. Über das Suchfeld lässt sich die Liste in Echtzeit filtern. Per Checkbox können einzelne Dienste für den Export ausgewählt werden.

Export: JSON und Batch
Der Export unterstützt zwei Formate:
JSON Export
Das JSON Format eignet sich ideal für Backups und Versionierung. Alle Diensteigenschaften werden vollständig gespeichert, inklusive Recovery Aktionen, Abhängigkeiten und erweiterten Einstellungen wie SID Typ oder Launch Protection.
[
{
"accountName": "LocalSystem",
"binaryPath": "C:\\GitLab-Runner\\gitlab-runner-windows-amd64.exe run --config C:\\GitLab-Runner\\config.toml --working-directory C:\\GitLab-Runner --service gitlab-runner --syslog",
"dependencies": [],
"description": "GitLab Runner",
"displayName": "gitlab-runner",
"errorControl": "Ignore",
"failureResetDays": 0,
"firstFailure": { "delayMs": 0, "type": "" },
"launchProtected": "None",
"preShutdownTimeout": 10000,
"serviceName": "gitlab-runner",
"serviceType": "Own",
"sidType": "None",
"startType": "Auto",
"secondFailure": { "delayMs": 0, "type": "" },
"subsequentFailure": { "delayMs": 0, "type": "" }
}
]Batch Export
Der Batch Export erzeugt ein .bat Script mit sc Befehlen, das direkt auf einem anderen System ausgeführt werden kann. Praktisch für automatisierte Deployments oder die Wiederherstellung nach einer Neuinstallation.
Die generierten Befehle verwenden dabei die korrekte sc Syntax mit dem Leerzeichen nach dem =, wie es das Tool erwartet (z.B. start= auto statt start=auto). Wer schon mal manuell sc Befehle gebaut hat, weiß wie fehleranfällig das ist.
@echo off
REM ServiceExporter - Generated batch file
REM Run as Administrator!
sc create "gitlab-runner" binPath= "C:\GitLab-Runner\gitlab-runner-windows-amd64.exe run --config C:\GitLab-Runner\config.toml --working-directory C:\GitLab-Runner --service gitlab-runner --syslog" start= auto type= own error= ignore obj= "LocalSystem" DisplayName= "gitlab-runner"
sc description "gitlab-runner" "GitLab Runner"
sc preshutdown "gitlab-runner" 10000
echo Done.
pauseImport: Dienste wiederherstellen und bearbeiten
Über den Import Dialog lassen sich zuvor exportierte JSON Dateien laden. Die importierten Dienste werden in einer Übersicht dargestellt und können vor der Installation bearbeitet werden.

Diensteigenschaften bearbeiten
Per Doppelklick öffnet sich ein mehrteiliger Editor mit folgenden Tabs:
- Allgemein: Name, Anzeigename, Beschreibung, Pfad zur Binärdatei, Starttyp
- Anmelden: Dienstkonto (LocalSystem oder benutzerdefiniert)
- Wiederherstellung: Fehleraktionen in drei Stufen (Dienst neustarten, Computer neustarten, Programm ausführen)
- Abhängigkeiten: Dienstabhängigkeiten und Ladereihenfolge
- Erweitert: Diensttyp, Fehlersteuerung, SID Typ, Pre Shutdown Timeout, Launch Protection, erforderliche Berechtigungen

Vorschau: Änderungen vergleichen
Bevor Dienste installiert werden, bietet die Vorschau Funktion einen farbcodierten Vergleich zwischen der aktuellen und der importierten Konfiguration:
- 🔴 Rot: aktuelle Werte auf dem System
- 🟢 Grün: importierte Werte, die übernommen werden
So lässt sich auf einen Blick erkennen, was sich ändern würde, bevor tatsächlich etwas am System verändert wird.

Installation: Direkt oder als Script
Nach der Prüfung gibt es zwei Wege:
- Direkte Installation: Die Dienste werden über
scBefehle direkt auf dem System eingerichtet. Ein Fortschrittsdialog zeigt den Status, und Fehler werden pro Dienst protokolliert. - Batch Script generieren: Statt direkt zu installieren, kann ein Script erzeugt werden, das auf einem anderen System ausgeführt wird.
Fazit
Der Service Exporter schließt eine Lücke, die Windows von Haus aus offen lässt: das einfache Sichern und Wiederherstellen von Dienstkonfigurationen. Ob für Server Migrationen, Dokumentation oder das schnelle Vergleichen von Konfigurationen zwischen Systemen, das Tool macht einen manuellen und fehleranfälligen Prozess übersichtlich und reproduzierbar.
Fehler gefunden? Bitte melden an jens@dunzweiler.me.