Konfiguration
Alle Einstellungen werden in der Datei config.ini vorgenommen, die sich im selben Verzeichnis wie das Script befindet. Als Vorlage dient config.example.ini.
Übersicht aller Optionen
[General]
| Option |
Typ |
Standard |
Beschreibung |
LogPath |
String |
C:\logs\windows-updater |
Verzeichnis für Log-Dateien (eine Datei pro Tag) |
LogRetentionDays |
Integer |
365 |
Anzahl Tage, nach denen alte Log-Dateien gelöscht werden |
DryRun |
Boolean |
false |
Nur prüfen welche Updates verfügbar sind, ohne zu installieren. Kann per -DryRun Parameter überschrieben werden |
UpdateType |
String |
All |
Art der Updates: All (alle Updates), DefenderOnly (nur Defender-Definitionsupdates). Kann per -DefenderOnly Parameter überschrieben werden |
[WindowsUpdate]
| Option |
Typ |
Standard |
Beschreibung |
UseMicrosoftUpdate |
Boolean |
true |
Microsoft Update verwenden (inkl. Office, .NET, Treiber). Bei false nur Windows Update |
ExcludeKBs |
String |
(leer) |
Kommagetrennte Liste von KB-Artikeln die übersprungen werden sollen (z.B. KB1234567,KB7654321) |
ExcludeDrivers |
Boolean |
false |
Treiber-Updates ausschließen |
RetryCount |
Integer |
3 |
Anzahl Wiederholungsversuche für fehlgeschlagene Updates |
[Winget]
| Option |
Typ |
Standard |
Beschreibung |
Enabled |
Boolean |
false |
Winget-Updates aktivieren (winget upgrade --all). Wird automatisch übersprungen, wenn winget nicht verfügbar ist |
[Reboot]
| Option |
Typ |
Standard |
Beschreibung |
Enabled |
Boolean |
false |
Automatischen Neustart nach Updates aktivieren |
Mode |
String |
immediate |
Neustart-Modus: immediate (sofort), delayed (verzögert), scheduled (geplante Uhrzeit) |
DelayMinutes |
Integer |
5 |
Verzögerung in Minuten (nur bei Mode = delayed) |
ScheduledTime |
String |
03:00 |
Uhrzeit im Format HH:mm (nur bei Mode = scheduled). Liegt die Uhrzeit in der Vergangenheit, wird der nächste Tag verwendet |
[Notification]
ntfy
| Option |
Typ |
Standard |
Beschreibung |
NtfyEnabled |
Boolean |
false |
ntfy-Benachrichtigungen aktivieren |
NtfyUrl |
String |
https://ntfy.sh |
URL des ntfy-Servers |
NtfyTopic |
String |
windows-updates |
ntfy-Topic-Name |
NtfyToken |
String |
(leer) |
Zugangs-Token (leer lassen wenn nicht benötigt) |
NtfyPriority |
String |
default |
Priorität: min, low, default, high, urgent |
E-Mail
| Option |
Typ |
Standard |
Beschreibung |
EmailEnabled |
Boolean |
false |
E-Mail-Benachrichtigungen aktivieren |
SmtpServer |
String |
(leer) |
SMTP-Server Adresse |
SmtpPort |
Integer |
587 |
SMTP-Port |
SmtpUseSsl |
Boolean |
true |
SSL/TLS für SMTP verwenden |
SmtpUsername |
String |
(leer) |
SMTP-Benutzername (leer für anonyme Authentifizierung) |
SmtpPassword |
String |
(leer) |
SMTP-Passwort |
EmailFrom |
String |
(leer) |
Absender-Adresse |
EmailTo |
String |
(leer) |
Empfänger-Adresse(n), kommagetrennt |
EmailHtmlReport |
Boolean |
true |
HTML-formatierten Report mit Update-Tabelle senden |
Microsoft Teams
| Option |
Typ |
Standard |
Beschreibung |
TeamsEnabled |
Boolean |
false |
Teams-Benachrichtigungen aktivieren |
TeamsWebhookUrl |
String |
(leer) |
Webhook-URL für den Teams-Kanal |
[NotificationEvents]
Steuert, welche Ereignisse eine Benachrichtigung auslösen. Alle Ereignisse sind standardmäßig aktiviert. Details zu jedem Ereignis: siehe Benachrichtigungen.
| Option |
Typ |
Standard |
Beschreibung |
NotifyOnModuleError |
Boolean |
true |
PSWindowsUpdate-Modul konnte nicht geladen werden |
NotifyOnHookFailure |
Boolean |
true |
Pre-Update Hook fehlgeschlagen, Updates abgebrochen |
NotifyOnNoUpdates |
Boolean |
true |
Keine Updates verfügbar |
NotifyOnDryRun |
Boolean |
true |
Dry-Run Report mit verfügbaren Updates |
NotifyOnUpdateComplete |
Boolean |
true |
Zusammenfassung nach Update-Installation |
NotifyOnReboot |
Boolean |
true |
Neustart wird ausgeführt (immediate/delayed/scheduled) |
NotifyOnRebootRequired |
Boolean |
true |
Neustart nötig, aber Auto-Reboot ist deaktiviert |
NotifyOnScanError |
Boolean |
true |
Fehler beim Scannen nach Updates |
NotifyOnServiceRestartFailure |
Boolean |
true |
Service-Watchdog konnte einen oder mehrere Dienste nicht starten |
[ServiceWatchdog]
| Option |
Typ |
Standard |
Beschreibung |
Enabled |
Boolean |
false |
Service-Watchdog aktivieren: Dienste nach Updates neu starten, wenn kein Reboot erforderlich ist |
Services |
String |
(leer) |
Kommagetrennte Liste von Windows-Dienstnamen (Service Name, nicht Display Name), z.B. Spooler,W3SVC,MSSQLSERVER |
WaitSeconds |
Integer |
30 |
Wartezeit in Sekunden, bis ein Dienst den Status "Running" erreicht hat |
RetryCount |
Integer |
3 |
Anzahl Neustartversuche pro Dienst |
[Hooks]
| Option |
Typ |
Standard |
Beschreibung |
PreUpdateScript |
String |
(leer) |
Pfad zu einem PowerShell-Script, das VOR den Updates ausgeführt wird |
AbortOnPreHookFailure |
Boolean |
false |
Update-Prozess abbrechen wenn das Pre-Hook-Script fehlschlägt |
PostUpdateScript |
String |
(leer) |
Pfad zu einem PowerShell-Script, das NACH den Updates ausgeführt wird |
[History]
| Option |
Typ |
Standard |
Beschreibung |
Enabled |
Boolean |
false |
Update-History-Tracking aktivieren |
HistoryPath |
String |
C:\logs\windows-updater\update-history |
Basispfad für die History-Datei (Dateiendung wird automatisch gewählt: .xlsx wenn ImportExcel verfügbar, sonst .csv) |
Kommandozeilen-Parameter
Das Script unterstützt Parameter, die Config-Werte überschreiben. So kann dasselbe Script mit einer Config-Datei für verschiedene Einsatzzwecke verwendet werden.
| Parameter |
Überschreibt |
Beschreibung |
-DefenderOnly |
UpdateType |
Nur Windows Defender Definitionsupdates installieren |
-DryRun |
DryRun |
Nur prüfen, nicht installieren |
-ConfigFile <Pfad> |
(Config-Pfad) |
Alternative Konfigurationsdatei verwenden |
DefenderOnly-Modus im Detail
Im DefenderOnly-Modus werden ausschließlich Updates der Kategorie "Definition Updates" (Windows Defender Signaturen) installiert. Folgende Funktionen werden dabei übersprungen:
- Winget-Updates — nicht relevant für Defender-Signaturen
- Reboot-Handling — Definitionsupdates erfordern keinen Neustart
- Service Watchdog — kein Neustart von Diensten nötig
- Treiber-Ausschluss (
ExcludeDrivers) — nicht relevant, da nur Definitionsupdates geladen werden
Pre-/Post-Update Hooks, Logging, History und Benachrichtigungen funktionieren normal.
Boolean-Werte
Folgende Werte werden als true erkannt (Groß-/Kleinschreibung egal):
Alles andere wird als false interpretiert.
Beispiel-Konfigurationen
Minimal (nur Windows Updates)
Nur Defender-Updates (per Config)
Dual-Setup: Defender häufig + volle Updates monatlich
Eine Config-Datei genügt. Die Unterscheidung erfolgt per Parameter:
Aufgabenplanung:
Mit E-Mail Benachrichtigung
Vollständig mit ntfy und History