SCCM Reboot DECODED:: How to make a PC Cancel, Start, Extend or Change mandatory reboot to non-mandatory on the fly.

, , , , , , , , ,

How to make a PC Cancel, Start, Extend or Change mandatory reboot to non-mandatory on the fly.

In the past to stop a PC from rebooting when you didn’t want it to people would stop the ccmexec service and do a shutdown /a

But here is the problem with that..

  1.  Shutdown /a will normally tell you that no shutdown is pending.
  2.  Any number of things can restart ccmexec.

First, how to check if a reboot is pending VS a reboot is GOING to happen

On a win10 PC or has powershell 5 installed, use this

#Detect pending reboot:
Invoke-CimMethod -Namespace root/ccm/ClientSDK -ClassName CCM_ClientUtilities -MethodName DetermineIfRebootPending

On a win7 or old powershell 2 you need to use these.


It will spit out something like this..

#PC with no pending reboot.

DisableHideTime     : 12/31/1969 2:00:00 PM
InGracePeriod       : False
IsHardRebootPending : False
NotifyUI            : False
RebootDeadline      : 12/31/1969 2:00:00 PM
RebootPending       : False
ReturnValue         : 0
PSComputerName      :

#PC with pending NON-mandatory reboot.

DisableHideTime : 12/31/1969 12:00:00 PM
InGracePeriod : False
IsHardRebootPending : False
NotifyUI : True
RebootDeadline : 12/31/1969 12:00:00 PM
RebootPending : True
ReturnValue : 0
PSComputerName :

#PC with pending mandatory reboot, notice the time stamp.

DisableHideTime : 5/1/2019 3:28:56 PM
InGracePeriod : True
IsHardRebootPending : False
NotifyUI : True
RebootDeadline : 5/1/2019 11:28:56 PM
RebootPending : True
ReturnValue : 0
PSComputerName :


Now for the magic…..

Everything that SCCM uses for knowing when and if it should reboot comes from here.

HKLM:\SOFTWARE\Microsoft\SMS\Mobile Client\Reboot Management\RebootData

On a PC with no reboot pending, this key is empty.

So starting with that, this is how we can CANCEL a pending reboot.

#CANCEL a pending reboot
Remove-Item -path 'HKLM:\SOFTWARE\Microsoft\SMS\Mobile Client\Reboot Management\RebootData';
Remove-Item -path 'HKLM:\SOFTWARE\Microsoft\SMS\Mobile Client\Updates Management\Handler\UpdatesRebootStatus\*';
Remove-ItemProperty -name * -path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired';

#on PS2.0, "Remove-ItemProperty" doesn't work, so use this.
#Remove-Item -path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired';

shutdown -a 
Restart-Service ccmexec -force

But what if you just want to cancel the mandatory reboot and change it to a non-mandatory reboot so the user will still get the popup telling them they “need to” reboot?

#change mandatory reboot to  non-mandatory reboot
Set-Itemproperty -path 'HKLM:\SOFTWARE\Microsoft\SMS\Mobile Client\Reboot Management\RebootData' -name 'RebootBy' -value 0;
Restart-Service ccmexec -force

What if we just want to extend the time of a mandatory reboot?

Example: In your client settings you have your reboot countdown set to 10 hours…. A user calls and says it’s going to reboot in 10 min and needs it extended… This will reset that users countdown timer back to 10 hours.

#Reset SCCM reboot countdown timer.
$time = [DateTimeOffset]::Now.ToUnixTimeSeconds()
Set-Itemproperty -path 'HKLM:\SOFTWARE\Microsoft\SMS\Mobile Client\Reboot Management\RebootData' -name 'RebootBy' -value $time;
Restart-Service ccmexec -force

What if you want to kick off the built in SCCM reboot WITH the client settings countdown timer?
NOTE: Setting $Time to 0 will popup the non-mandatory reboot window.

$time = [DateTimeOffset]::Now.ToUnixTimeSeconds()
New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\Microsoft\SMS\Mobile Client\Reboot Management\RebootData' -Name 'RebootBy' -Value $time -PropertyType QWord -Force -ea SilentlyContinue;
New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\Microsoft\SMS\Mobile Client\Reboot Management\RebootData' -Name 'RebootValueInUTC' -Value 1 -PropertyType DWord -Force -ea SilentlyContinue;
New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\Microsoft\SMS\Mobile Client\Reboot Management\RebootData' -Name 'NotifyUI' -Value 1 -PropertyType DWord -Force -ea SilentlyContinue;
New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\Microsoft\SMS\Mobile Client\Reboot Management\RebootData' -Name 'HardReboot' -Value 0 -PropertyType DWord -Force -ea SilentlyContinue;
New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\Microsoft\SMS\Mobile Client\Reboot Management\RebootData' -Name 'OverrideRebootWindowTime' -Value 0 -PropertyType QWord -Force -ea SilentlyContinue;
New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\Microsoft\SMS\Mobile Client\Reboot Management\RebootData' -Name 'OverrideRebootWindow' -Value 0 -PropertyType DWord -Force -ea SilentlyContinue;
New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\Microsoft\SMS\Mobile Client\Reboot Management\RebootData' -Name 'PreferredRebootWindowTypes' -Value @("4") -PropertyType MultiString -Force -ea SilentlyContinue;
New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\Microsoft\SMS\Mobile Client\Reboot Management\RebootData' -Name 'GraceSeconds' -Value 0 -PropertyType DWord -Force -ea SilentlyContinue;


NOTE:: In all my tests after you run The powerShell command it takes about 30 seconds for the client to respond since after you restart the service it has to do all it’s internal checks to figure out what’s new.


ConfigMgr Guides, Resources, and References

, , ,

ConfigMgr Guides, Resources, and References

As a relative newbie to the whole IT professional thing, one of the first things I learned was that there’s a near infinite amount of things I still need to learn and that Google was my very best friend in the field. While that’s still true 7 years later, I probably wouldn’t be where I am today without the guidance of the pathfinders who are generous enough and willing to share their wisdom online. This post is about some of the resources I’ve found along the way. The goal is to help navigate some of the vast amount of resources available to a ConfigMgr Admin, new or veteran.


I’m a very big fan of how the ConfigMgr community is always ready to share how they get things done. One of my favorite ways of learning is talking to other ConfigMgr admins who’ve done what I want to do and have an opinion on it. I think it’s a sign of a healthy product when the development team is actively interacting and engaging with the community; there are a few ways to do that.


I’m pretty new to Twitter myself, but it is a veritable smörgåsbord of information and networking opportunities. I use TweetDeck to keep my eyes peeled on the #ConfigMgr, #SCCM, #PowerShell, #CMPivot, and #MMSMOA conversations. Through watching those hashtags, you’ll get a feel of who to follow to keep up to date with the latest information. Have any recommendations for hashtags that you’re following? Leave a comment below!

WinAdmins Slack

The WinAdmins Slack is a Slack group that covers a wide array of topics that a typical Windows Systems Administrator might be interested in conversating about. Some of these channels include topics like Active Directory, ConfigMgr, Exchange, O365, PowerShell, Windows OSD, and a ton others. The Slack also includes channels that aren’t IT related, so it’s a good chance to talk to others with similar hobbies or passions. If you’re worried about participation, the ConfigMgr channel has almost 5500 members alone!

To join the WinAdmins slack, you can e-mail for an invite.


Reddit is a social news aggregation site with sub-communities, also known as Subreddits. These are good places to post general questions or look for opinions on a decision. There are a few that come to mind when it comes to ConfigMgr.

/r/SCCM – One of the first ways I ever interacted with the ConfigMgr community was through this subreddit, and it’s how I found the WinAdmins slack. This subreddit has participation from the ConfigMgr development team, several superstar MVPs and thousands of other ConfigMgr admins, making it a great place to share information, or ask a question.

/r/SysAdmin – A more general subreddit, but this community is certainly the largest IT subreddit I follow. You’ll often find very useful posts about news or the latest disasters spawned by the most recent Patch Tuesday.

ConfigMgr UserVoice

Arguably one of the best ways to interact with the product team is by submitting your ideas on how to improve ConfigMgr. There are a few ways to accomplish that officially; the UserVoice and the Smiley Faces in the console, pictured below. The product team is responsive to feedback via both of these avenues, and it shows they really care about their work.


I’m a very introverted individual, and though I suspect this is a fairly common trait amongst IT professionals, conferences are still one of my favorite things to get to do. It’s a great opportunity to be in proximity with potentially thousands of like individuals who share either a similar passion or similar experiences. Also, it’s a great opportunity to fangirl over some of the rockstars who’ve helped shape your career…

For ConfigMgr, there are three general conferences that I’m aware of or have been to, that I would recommend to anyone who’s able to go.

MMS – Midwest Management Summit

I’ve only been to MMSMOA once so far, but far and away, it was one of the most valuable experiences of my career. It’s really cool to feel like a part of a community in the various online groups that are available, but it was never more real for me than when I was at MMSMOA in 2018. I was exposed to more than I can absorb, was overwhelmed the entire time, and learned a ton of helpful, useful information, and I’d do it again in a heartbeat. This is a real-world conference, with real-world solutions, and the sessions are not recorded; this encourages participation with the audience and speakers, and it’s great. Deep, and pretty wide.

MMS has since started spin-off editions in order to be available to those who aren’t able to make it to the main event, and they put work in to make sure it’s worth your time.

You can read more about MMS here, and on Twitter @mmsmoa.

Microsoft Ignite

The big event. Microsoft’s huge, giant, stunning, impressive showcase of the year. Your superstar Microsoft MVP’s will be here with the latest to share, and there aren’t many networking opportunities like it. Real, real wide, but not very deep. However, it is great exposure to the entire Microsoft stack, and the range of IT Professionals attending is incredible. Additionally, all of the sessions are generally recorded and made available online, so if you miss a session you’re interested in, you can always check the VOD later.

You can read more about Microsoft Ignite here.

Local User Groups

If a System Center user group, Windows Management user group, or any relevant IT “thing” user group is available to you, locally, I highly recommend participation in those events. The production isn’t going to be comparable to a big conference, but that’s not the point. It’s a great opportunity to network with some of your local peers! Finding some local user groups can be difficult, though. It’s possible such a user group does not exist in your area. If that’s the case, there stands an opportunity to start something new! It doesn’t have to be extravagant, and could even start out as a booth at a local pub. You can use Twitter, local Facebook groups, local subreddits, or any number of ways to reach out to potentially interested IT professionals in your area. Maybe your TAM is even willing to help you start one.


You could call this section training, but I always think of the Rocky movies when someone brings up training, and am somehow let down by that fact. For ConfigMgr, these are the resources I’ve recommended the most.

Justin Chalfant’s SCCM Video Guides

Justin Chalfant (@setupconfigmgr) of PatchMyPC posts, very regularly, to his blog, and the youtube channel linked here. These videos are probably what I see most often recommended, and for good reason. Justin posts quality videos, with great details, and paired with a paired with a lab, are a great way to dig in and learn ConfigMgr. I’m sure there are other channels out there, but Justin’s videos are the ones I know, and the ones I recommend.

Home Labs

Speaking of labs, I can’t recommend one enough. Microsoft provides a free to download lab, by way of the Modern Desktop Deployment and Management Lab Kit, and it’s a quick and easy way to get started with your own lab. Build it up, tear it down, and do it again. Break what you can, and then fix it; deploy Windows 10 to a VM, then deploy an app you’ve packaged to that VM, and then remove that app with a configuration baseline! Outside of these pre-built labs, you could take it a step further and build a lab yourself, from the ground up. This is how I did it, and it provides the most opportunity to learn, in my opinion.


Recommending books in 2019? Yeah, why not. These books helped me when I first started out. Real-world opportunities, a lot of free time, books, and labs. These are the two books I’m familiar with and have on my bookshelf in the office. I’m providing Amazon links to the books for your convenience, but they’re not affiliate links or anything like that.

System Center Configuration Manager Current Branch Unleashed

Mastering System Center Configuration Manager

The One-Stop Shop

/u/ExeqZ on Reddit posted a Google Document intended to serve as a community-driven, one-stop shop for ConfigMgr resources. The ConfigMgr Community is one of the most eager communities out there when it comes to sharing knowledge. This document serves as a single point of reference for contributor blog sites, relevant twitter accounts, Microsoft documentation, and a lot more. You could have an entire bookmark folder dedicated to ConfigMgr related links, and still learn about something new from the doc.

So here I am, trying to do my part in sharing the doc wherever I can. I expect that this document will evolve over time, and maybe Google Docs isn’t the final form of a resource like this, but it’s a start.

If you’re reading this blog post, you’re probably a techie, and you’ve probably been inspired by one of the many people featured in this Doc. Maybe you want to give back to the ConfigMgr community and this is a low-effort way to do just that. You can contribute your favorite blog, guide, twitter account, or whatever, just add it to the doc where you see it’s most relevant. Don’t see a category that you think is relevant to what you’d like to contribute? Just make it! That’s the whole point, it’s by the community, for the community.

I hope that something in this list has helped you out if you’ve made it this far, and if so, let me know what you found interesting! If I posted something wrong, or if you have anything you would like me to add, just let me know. Interested in one of these for PowerShell resources? Let me know below, and I can start working on that as well.

If you’d like to reach out to me, you can always contact me @tstolswo.

To find other posts I’ve contributed to the blog, you can check my Author page here.