############################################### # Windows Updater - Configuration # Lines starting with # or ; are comments # Copy this file to config.ini and adjust values ############################################### [General] # Path for log files (one file per day) LogPath = C:\logs\windows-updater # Number of days to keep log files (default: 365) LogRetentionDays = 365 # Dry-run mode: scan and report only, do not install (true/false) DryRun = false # Update type: All (all updates), DefenderOnly (only Defender definition updates) # Can be overridden with -DefenderOnly parameter UpdateType = All [WindowsUpdate] # Use Microsoft Update (includes Office, .NET, drivers) instead of Windows Update only UseMicrosoftUpdate = true # Exclude specific KB articles (comma-separated, e.g. KB1234567,KB7654321) ExcludeKBs = # Exclude driver updates (true/false) ExcludeDrivers = false # Number of retry attempts for failed updates (default: 3) RetryCount = 3 [Winget] # Enable winget upgrade --all (true/false, default: false) # Only works on Windows 10/11 with winget installed, auto-skipped if unavailable Enabled = false [Reboot] # Enable automatic reboot after updates if required (true/false) Enabled = false # Reboot mode: immediate, delayed, scheduled Mode = immediate # Delay in minutes before reboot (only for Mode = delayed) DelayMinutes = 5 # Time to reboot at in HH:mm format (only for Mode = scheduled, e.g. 03:00) ScheduledTime = 03:00 [Notification] # --- ntfy --- NtfyEnabled = false # ntfy server URL (e.g. https://ntfy.sh or your self-hosted instance) NtfyUrl = https://ntfy.sh # ntfy topic name NtfyTopic = windows-updates # ntfy access token (leave empty if not required) NtfyToken = # ntfy priority: min, low, default, high, urgent NtfyPriority = default # --- Email --- EmailEnabled = false SmtpServer = smtp.example.com SmtpPort = 587 SmtpUseSsl = true SmtpUsername = SmtpPassword = EmailFrom = updater@example.com # Multiple recipients comma-separated (e.g. admin@example.com,ops@example.com) EmailTo = admin@example.com # Send HTML formatted report with update table (true/false) EmailHtmlReport = true # --- Microsoft Teams --- TeamsEnabled = false # Webhook URL for Microsoft Teams (Incoming Webhook connector or Workflows) TeamsWebhookUrl = [NotificationEvents] # Control which events trigger notifications (true/false) # All events are enabled by default # Module load failure - PSWindowsUpdate could not be loaded NotifyOnModuleError = true # Pre-update hook failed and aborted the update process NotifyOnHookFailure = true # No updates available NotifyOnNoUpdates = true # Dry-run mode report with list of available updates NotifyOnDryRun = true # Update scan failed (e.g. network error, service unavailable) NotifyOnScanError = true # Summary after update installation (success and errors) NotifyOnUpdateComplete = true # System reboot triggered (immediate, delayed, or scheduled) NotifyOnReboot = true # Reboot required but auto-reboot is disabled NotifyOnRebootRequired = true # Service Watchdog failed to restart one or more services NotifyOnServiceRestartFailure = true [ServiceWatchdog] # Enable service watchdog: restart specific services after updates when no reboot is required Enabled = false # Comma-separated list of Windows service names to restart (use the service name, not the display name) # Example: Services = Spooler,W3SVC,MSSQLSERVER Services = # Seconds to wait for each service to reach Running state (default: 30) WaitSeconds = 30 # Number of restart attempts per service (default: 3) RetryCount = 3 [Hooks] # Path to PowerShell script to execute BEFORE updates (leave empty to disable) PreUpdateScript = # Abort update process if pre-hook script fails (true/false) AbortOnPreHookFailure = false # Path to PowerShell script to execute AFTER updates (leave empty to disable) PostUpdateScript = [History] # Enable persistent update history tracking (true/false) Enabled = false # Path for the history file # Uses .xlsx format if ImportExcel module is available, otherwise falls back to .csv HistoryPath = C:\logs\windows-updater\update-history