A Configuration Manager maintenance windows restrict the deployments on SCCM client during specified timeframe. The SCCM Maintenance Windows ensure that client configuration changes occur during specified time frame only and that don’t affect productivity. A maintenance window can be configured with an effective date, a start and end time, and a recurrence pattern.
The following tasks support maintenance windows:
- Application and package deployments
- Software update deployments
- Compliance settings deployment and evaluation
- OS and custom task sequence deployments
By default, computer restarts caused by a deployment aren’t allowed outside of a maintenance window, but you can override the default. Maintenance windows affect only the time when the deployment runs. Deployments that you configure to download and run locally can download content outside of the window.
When a client is a member of a device collection that has an SCCM maintenance window, a deployment runs only if its maximum allowed run time doesn’t exceed the duration of the window. If the deployment fails to run, the client generates an alert. It then reruns the deployment during the next scheduled maintenance window that has available time.
- How to Create SCCM Maintenance Window from ConfigMgr Console
- How to Check SCCM Maintenance Windows Using ConfigMgr Report
- How to Check SCCM Maintenance Window using SQL Query
- How to use PowerShell ConfigMgr cmdlets to check the SCCM Maintenance Window for a collection
- How to Use Maintenance Windows as a Safety Window for Servers & Critical Workstations
- How to Organize SCCM Maintenance Windows
- Related Posts
How to Create SCCM Maintenance Window from ConfigMgr Console
SCCM Maintenance Windows can be created from the collection properties > Maintenance Windows tab. Follow the steps below to create a maintenance window.
In the Configuration Manager console, navigate to Asset and Compliance / Device Collection, right-click on the desired collection, and select Properties.
Click on the yellow start button under the Maintenance Windows section.

In the New Schedule dialogue box, provide the following information.
- Name : Enter a name for the SCCM Maintenance Window. Use a naming convention that helps you to quickly identify the schedule and purpose of the maintenance window.
- Effective Date: The date when the maintenance window will be effective.
- Start / End: Start and End time of MW.
- Duration: Will be calculated automatically based on the start/end time.
- Coordinated Universal Time (UTC): Select this check box if you want to have maintenance window based on UTC time rather than client local time.
- Recurrence Pattern: Select a recurrence pattern. The maintenance window can be for one time or recurring. The recurring pattern can be daily, weekly or monthly.
In the Apply This Schedule to: drop-down list, select the deployment type where you want the maintenance window to apply. The options available are: All Deployment, Application Deployment, and Software Update Deployment.

Click on Ok to complete MW creation process. You can see the maintenance window in the list now.

SCCM Maintenance Windows Offset:
One of the challenges a ConfigMgr admin used to face when aligning the patch deployment schedule with Patch Tuesday. Let’s say an admin wants to configure the MW on the first Saturday after Patch Tuesday for pilot deployment.
Starting Configuration Manager version 2303, you can now offset monthly maintenance window schedules to better align deployments with the release of monthly security updates. For example, using a maximum offset of seven days after the second Tuesday of the month sets the maintenance window for next Monday.
Set the Maintenance window to the first Friday after patch Tuesday.

How to Check SCCM Maintenance Windows Using ConfigMgr Report
The SCCM report “Maintenance windows available to a specified client” provides the list of all maintenance windows configured for a client.

How to Check SCCM Maintenance Window using SQL Query
If you want to see the SCCM maintenance windows available for all members of a collection, then you can use below SQL query. You need to run the query from SQL Management Studio. You can also use this query to create an SCCM SSRS report.
select fcm.Name as 'Server Name',sw.CollectionID,col.Name as 'Collection Name',sw.Name as 'MW Name',sw.Description,sw.StartTime,sw.Duration,sw.IsEnabled from v_ServiceWindow SW inner join v_FullCollectionMembership fcm on fcm.CollectionID = sw.Collection inner join v_Collection col on col.CollectionID = sw.CollectionID
where fcm.name in (select name from v_FullCollectionMembership where collectionID = 'CollectionID')
How to use PowerShell ConfigMgr cmdlets to check the SCCM Maintenance Window for a collection
You can use Get-CMMaintenanceWindow PowerShell cmdlet to get the list of available MW for a collection.
List Maintenance Window for a collection
Get-CMMaintenanceWindow -CollectionName "Test servers"

How to Use Maintenance Windows as a Safety Window for Servers & Critical Workstations
When you create a Maintenance Window for a collection, it restricts the deployment on members during the defined maintenance windows. However, the Software Updates / Deployment may get installed again and trigger a reboot in below scenarios.
- The Maintenance Windows expired.
- Servers or critical machines were not members of the collection where maintenance windows were applied.
This may lead to an outage. To avoid this situation, we can create a safety maintenance window to by default block all deployments on servers and critical machines through SCCM.
This can be achieved by creating a maintenance window that will occur in the future. Let’s say we created a MW for 2033, which is 10 years from now. Apply this MW to a collection with all Windows servers. This will block the deployment on all servers by default.
To allow the deployments, you can create other MWs as per the actual deployment scheduled for different server groups.

How to Organize SCCM Maintenance Windows
ConfigMgr administrator follows a different approach for organizing SCCM collections. It’s very much a personal choice, and you can use it the way you like.
My recommendation is to organize maintenance window collections separately rather than applying the maintenance windows directly to a deployment collection. This will give you more flexibility while managing the deployment. To add the members to MW collections, you can simply use the Include membership rule to add different deployment collections.
The naming conventions of the MW collection should be easy enough to quickly identify the schedules by looking at the collection name. Else, you may need to look into the reports every time you need to troubleshoot something in a larger environment.

Related Posts
- How to Create Dynamic Collection in SCCM
- Enclosure Chassis Types Value & Description | ConfigMgr | SCCM
- ConfigMgr: Maintenance Window for member of specific collection – SQL Query
- SCCM Dynamic Collection for Windows 10 / 11 Devices
- SCCM Device Collection Equivalents in Microsoft Intune for App Deployment
- SCCM Dynamic Collection Based on Device Type | Collection Queries
- SCCM Collection Based on Operating System Optional Features
- SCCM Device Collection Based on Installed Software Products & Inventoried Files
- SCCM Device Collection Based on Computer Hardware Details
- SCCM Collection Queries for Opearting System Attribute Class
- SCCM Collection Queries for System Resource (SMS_R_System) Attribute Class
- SCCM Dynamic Collection using Application Deployment Status
- SCCM Dynamic Collection Based on Configuration Baseline Compliance Status
- How to Create , View and Organize SCCM Maintenance Windows
- How to Provision Windows 10 / 11 Device using Intune and Windows Autopilot
Subscribe to Techuisitive Newsletter
Be the first to know about our new blog posts. Get our newsletters directly in your inbox and stay up to date about Modern Desktop Management technologies & news.