Policy
Configure maintenance windows for automatic updates
Microsoft Windows
Policy overview
Key metadata and intent for this policy.
Supported OS tags: Windows10, Windows10RT, Windows11, WindowsServer2016
Enable this policy to specify repeatable maintenance windows for the device to perform specified update actions. When this policy is enabled, Windows Update will only perform the specified update action during the configured maintenance window. Specified update actions outside maintenance window will be deferred until the next maintenance window begins. • Update Actions: Select which update actions are only allowed during maintenance window. If an update action is not selected, that action can happen outside of maintenance window. - Download, install, and restart: Complete update cycle including download, installation, and system restart - Install and restart: Install already downloaded updates and restart the device - Restart only: Only perform a system restart for pending updates • Basic Schedule Configuration: - Start Date: Specify the initial date when the first maintenance window begins (format: yyyy-mm-dd, example: 2025-10-30) * Start Date field only takes effect if Recurring schedule is set to “None” - Start Time: Set the time when the maintenance window starts (format: hh:mm, example: 23:30 for 11:30 PM) - Duration: Define how long each maintenance window lasts in hours (example: 2 for a 2-hour window) • Recurring Schedule Options: - No repeat: One-time maintenance window on the specified start date only - Daily: Maintenance window will be repeated every day - Weekly: Maintenance window will be repeated weekly on selected days of the week - Monthly: Maintenance window will be repeated monthly on a specific day • Weekly Schedule Settings (when Weekly is selected): - Day of the week Selection: Choose which days of the week the maintenance window occurs: * Sunday through Saturday: Check boxes to select specific day(s) of the week for the maintenance window • Monthly Schedule Settings (when Monthly is selected): - Monthly Schedule Type: * Date-based: Maintenance window occurs on a specific day of the month (example: 15th day of each month) * Week-based: Maintenance window occurs on a specific weekday occurrence within the month (example: 2nd Tuesday of each month) * Last day of the month: Maintenance window occurs on the last day of the month - Day of Month: When using date-based scheduling, specify which day of the month (1-28) - Occurrence in Month: When using week-based scheduling, select which week of the month (First, Second, Third, Fourth, or Last) - Day of the Week: When using week-based scheduling, select which day of the week (Sunday through Saturday) Examples of Monthly Configurations: - Date-based: "3rd day of every month" = Day of Month: 3 - Week-based: "Second Tuesday of every month" = Occurrence: Second, Day of Week: Tuesday - Week-based: "Last Friday of every month" = Occurrence: Last, Day of Week: Friday - Last day of the month: "Last day of every month" After a non-repeating maintenance window occurs, the next maintenance window must be scheduled in 3 months. If the start date of a non-repeating maintenance window is more than 3 months in the past, this policy will be disregarded, and updates will be scheduled according to default settings. If you disable or do not configure this policy, Windows Update will follow its default scheduling behavior.
Registry values
How enabled and disabled states update the registry.
| Scope | Registry location | Type | Enabled value | Disabled value | Copy |
|---|---|---|---|---|---|
| Computer | Path Software\Policies\Microsoft\Windows\WindowsUpdate Value name MaintenanceWindowEnabled | REG_DWORD | HKLM 1 | HKLM 0 |
Policy elements
Inputs and configuration options exposed by this policy.
| Scope | Element | Type | Registry mapping | Constraints & behavior | Copy |
|---|---|---|---|---|---|
| Computer | Start date (Format: yyyy-mm-dd example: 2025-10-30) ID MaintenanceWindowStartDateID | text | Path Software\Policies\Microsoft\Windows\WindowsUpdate Value name MaintenanceWindowStartDate Type REG_SZ | None | |
| Computer | Start time (Format: hh:mm example: 23:30 for 11:30 PM) ID MaintenanceWindowStartTimeID | text | Path Software\Policies\Microsoft\Windows\WindowsUpdate Value name MaintenanceWindowStartTime Type REG_SZ | None | |
| Computer | Duration (hours): ID MaintenanceWindowDurationHoursID | decimal | Path Software\Policies\Microsoft\Windows\WindowsUpdate Value name MaintenanceWindowDurationHours Type REG_DWORD | Range: 2 to 24 | |
| Computer | Day of the Month: ID MaintenanceWindowMonthlyMonthBasedDayOfMonthID | decimal | Path Software\Policies\Microsoft\Windows\WindowsUpdate Value name MaintenanceWindowMonthlyMonthBasedDayOfMonth Type REG_DWORD | Range: 1 to 28 | |
| Computer | Update actions only allowed inside the maintenance window: ID MaintenanceWindowUpdateActionsID | enum | Path Software\Policies\Microsoft\Windows\WindowsUpdate Value name MaintenanceWindowUpdateActions Type REG_DWORD | Options: Download, install, and restart (1), Install and restart (2), Restart only (3) | |
| Computer | Select repeat schedule: ID MaintenanceWindowRepeatScheduleOptionID | enum | Path Software\Policies\Microsoft\Windows\WindowsUpdate Value name MaintenanceWindowRepeatScheduleOption Type REG_DWORD | Options: No repeat (1), Daily (2), Weekly (3), Monthly (4) | |
| Computer | Monthly Schedule Type: ID MaintenanceWindowMonthlyScheduleID | enum | Path Software\Policies\Microsoft\Windows\WindowsUpdate Value name MaintenanceWindowMonthlySchedule Type REG_DWORD | Options: Date-based (1), Week-based (2), Last day of the month (3) | |
| Computer | Occurrence in Month ID MaintenanceWindowMonthlyWeekBasedOccurrenceInMonthID | enum | Path Software\Policies\Microsoft\Windows\WindowsUpdate Value name MaintenanceWindowMonthlyWeekBasedOccurrenceInMonth Type REG_DWORD | Options: First (1), Second (2), Third (3), Fourth (4), Last (5) | |
| Computer | Day of the Week ID MaintenanceWindowMonthlyWeekBasedDayOfTheWeekID | enum | Path Software\Policies\Microsoft\Windows\WindowsUpdate Value name MaintenanceWindowMonthlyWeekBasedDayOfTheWeek Type REG_DWORD | Options: Sunday (1), Monday (2), Tuesday (3), Wednesday (4), Thursday (5), Friday (6), Saturday (7) | |
| Computer | Sunday ID MaintenanceWindowWeeklySundayID | boolean | Path Software\Policies\Microsoft\Windows\WindowsUpdate Value name MaintenanceWindowWeeklySunday Type REG_DWORD | Options: true (), false () True: None · False: None | |
| Computer | Monday ID MaintenanceWindowWeeklyMondayID | boolean | Path Software\Policies\Microsoft\Windows\WindowsUpdate Value name MaintenanceWindowWeeklyMonday Type REG_DWORD | Options: true (), false () True: None · False: None | |
| Computer | Tuesday ID MaintenanceWindowWeeklyTuesdayID | boolean | Path Software\Policies\Microsoft\Windows\WindowsUpdate Value name MaintenanceWindowWeeklyTuesday Type REG_DWORD | Options: true (), false () True: None · False: None | |
| Computer | Wednesday ID MaintenanceWindowWeeklyWednesdayID | boolean | Path Software\Policies\Microsoft\Windows\WindowsUpdate Value name MaintenanceWindowWeeklyWednesday Type REG_DWORD | Options: true (), false () True: None · False: None | |
| Computer | Thursday ID MaintenanceWindowWeeklyThursdayID | boolean | Path Software\Policies\Microsoft\Windows\WindowsUpdate Value name MaintenanceWindowWeeklyThursday Type REG_DWORD | Options: true (), false () True: None · False: None | |
| Computer | Friday ID MaintenanceWindowWeeklyFridayID | boolean | Path Software\Policies\Microsoft\Windows\WindowsUpdate Value name MaintenanceWindowWeeklyFriday Type REG_DWORD | Options: true (), false () True: None · False: None | |
| Computer | Saturday ID MaintenanceWindowWeeklySaturdayID | boolean | Path Software\Policies\Microsoft\Windows\WindowsUpdate Value name MaintenanceWindowWeeklySaturday Type REG_DWORD | Options: true (), false () True: None · False: None |