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 a 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 SCCM Maintenance Window for a collection
- How to Use Maintenance Windows as a Safety Windows 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 collection properties > Maintenance Windows tab. Follow the below steps to create a maintenance window.
In the Configuration Manager console, navigates to Asset and Compliance / Device Collection, right click on desired collection and select Properties.
Click on yellow start button under Maintenance windows section.
In the New Schedule dialogue box, provide the following information.
- Name : Enter a name for SCCM Maintenance Window. Use a naming convention which help you to quickly identify the schedule and purpose of maintenance window.
- Effective Date: The date when 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 maintenance window to apply. The options available are: All Deployment, Application Deployment, 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 challenge ConfigMgr admin used to face when aligning patch deployment schedule with Patch Tuesday. Let’s say, an admin want to configure the MW on 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 first Friday after patch Tuesday.
How to Check SCCM Maintenance Windows Using ConfigMgr Report
The SCCM report “Maintenance windows available to a specified client” provide the list of all maintenance window 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 member 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 a 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 SCCM Maintenance Window for a collection
You can use Get-CMMaintenanceWindow PowerShell cmdlet 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 Windows for Servers & Critical Workstations
When you create a Maintenance Windows for a collection, it restrict 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 member of the collection where maintenance windows was applied.
This may leads to an outage. To avoid this situation, we can create a safety maintenance windows to by default block all deployments on servers and critical machines through SCCM.
This can be achieved by creating a maintenance windows which will occur in future. Let’s say we created a MW for 2033 which is after 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 MW as per actual deployment scheduled for different server groups.
How to Organize SCCM Maintenance Windows
ConfigMgr administrator follows different approach for organizing SCCM Collection. It’s very much personal choice and you can use the way you like.
My recommendation is to organize maintenance windows collections separately rather than applying the maintenance windows directly on a deployment collection. This will give you more flexibility while managing the deployment. To add the members to MW collections, you can simply use Include membership rule to add different deployment collections.
The naming conventions of the MW collection should be easier enough to quickly identify the schedules by looking into collection name. Else, you may need to looks into the reports every time you need to troubleshoot something in a larger environment.
- 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
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.