Had a requirement recently to control how the SCCM client handles software updates and other deployments at deadline time… Its often hard to strike a balance between efficient patching, and keeping users happy with minimal popups, notifications and restarts etc.
I tend to lean towards the ruthless approach where possible, so I have configured WSUS updates to deploy with a deadline… This however causes some problems with laptop users who like to show off their PowerPoint skills in boardrooms without interruption.
A good way to prevent this is to utilise “Presentation mode” state within the SCCM client… this will prevent unwanted interruptions during this time:
Again this is something that can be set by the user, however it can also be scripted using powershell:
So whilst bearing the sole burden of deploying software and configurations to multiple sites and users within different time zones, It would make sense to do this with some level of control and expectation.
I have yet to receive confirmation on actual working hours for all of these members of staff so its pretty hard to decide on maintenance windows within SCCM.. My solution for the time being is to utilise the SCCM client side functionality to dictate the working hours:
This functionality to me at least provides a level of transparency, and flexibility should we decide in future to allow staff to dictate how and when deployments can occur, thus minimising any dramas.
So the image above is how the SCCM client is set by default upon installation… In order to put something more sensible in here we either need to instruct the users to update it themselves, or atleast populate the data with something more fitting.
This can be scripted, so I have done this via powershell:
Using this script, I have now set the values for all clients to be:
Another good reason for using PowerShell in this case is that you can implement the code into SCCM compliance.. More on that in another post