My PC can do a lot of things. It can play video games at high resolutions and snappy frame rates. It can run the latest virtual reality software, transporting me to fantastical virtual worlds. It cannot, however, reliably sleep through the night.
I built my current gaming PC in 2014. I love it to death, but ever since I first turned it on, it has suffered from sporadic insomnia. Things will be fine for a while, then I'll wake up one morning to find it turned on, purring away and slowly sucking power from the wall. I'll spend some time Googling, reading, and trying to determine the problem. I'll try toggling some setting or other, and eventually I'll figure out how to make it stay asleep.
All will be well for a while, but eventually, inevitably, it will begin waking up again.
Every time that happens, I marvel at what a stupid problem it is. This is a basic thing for an operating system to keep getting wrong. Given the number of my colleagues who describe similar issues, along with the volume of internet guides, forum threads, and tutorial videos on the subject, I sense that it's a widespread problem. Windows PCs just do not like to stay asleep.
A couple of weeks ago, after months of restful sleep, my PC once again began to wake itself up in the middle of the night. I put off dealing with the problem for as long as I could. Last weekend, I'd finally had enough. I will now walk you through how I fixed it.
1. Tried disabling wake timers.
This is a common solution, and usually what I try first. Going into Control Panel > Power & Sleep Settings got me into the neighbourhood. From there I needed to click "Change when the computer sleeps," over on the side, then click "Change advanced power settings." Then I navigated down to "Sleep" under the advanced settings, and made sure "Allow wake timers" was disabled.
That rat's nest of sub-menus is standard for solving this kind of issue in Windows. Navigating Windows system menus is like going below deck on an ancient luxury cruise liner. The top floors look posh and organised, but the deeper you go, the more rusty and labyrinthine things get. Soon you're lost and worried that you might never see daylight again.
2. It didn't work. Began diagnostics.
Doing a blanket disable of wake timers works about half the time. Sometimes it doesn't, because whatever is waking the PC bypasses or ignores that toggle. In this case, it didn't work. Next thing to do was to determine what woke the computer up.
After consulting Lifehacker, I did that by going into the command prompt and typing "powercfg -lastwake". Here's what it told me:
Not exactly helpful.
3. Diagnostics II: Diagnose Harder.
The next thing I tried, as suggested by a guide at How To Geek, was going into Windows Event viewer, opening "Windows Logs," and opening the list of "System" events. I filtered by "Power-Troubleshooter" event sources, and it narrowed the list to a few things that seemed like they could be tied to the events that woke my PC.
I scrolled down to "Wake Source" and it said...
"Wake Source: Unknown." Well, shit.
4. Diagnostics III: Son Of Diagnostics.
There's another command I could enter in the Command Prompt that would give me more information: "powercfg /waketimers". Unfortunately, that won't run in a standard Command Prompt, because it requires administrator privileges. I had to reload Command Prompt as an administrator.
When I ran the command, it told me that the last time the PC woke up, it was due to a timer set by the SystemEventsBroker, executing 'NT Task\Microsoft\Windows\UpdateOrchestrator\Reboot,'" which was a task that requested waking the computer. OK, it looked like I had found the culprit.
5. Attempted to fix the problem directly.
It appeared as though after some update or other, Windows decided that something related to Windows Update was allowed to wake my PC up, even though I had Wake Timers turned off. (This may sound like a ridiculous way for a software update to work, but it's par for the course with Windows.) I googled "Update OrchestratorReboot waking windows PC" and found multiple forum threads dedicated to solving this apparently common problem.
I opened up Task Scheduler, then navigated through a bunch of nestled menus to Microsoft > Windows > UpdateOrchestrator. There it was, "Reboot," scheduled to run again later that night. I clicked on "conditions" and saw a ticked box next to "Wake the computer to run this task." I actually couldn't just click the checkbox in Task Scheduler, however; I had to right-click "Reboot," then select "Properties," then go to "Conditions" in yet another sub-menu, where I unchecked the box.
6. Got stymied when something stupid went wrong.
By that point I'd spent a solid 20 minutes poking through sub-menus and internet how-tos to try to solve this thing. I'd found the problem, but should have known it would never be as easy as just clicking the toggle and moving on with my life. This was Windows, which meant something stupid had to go wrong.
In this case, when I tried to uncheck the "Wake the computer to run this task" box and accept my changes, this weird-arse menu popped up:
I had (and still have) no idea what that username was, or what kind of password it might have required. I entered my own Windows user name into the top field and my Windows password into the bottom, and I got an error message:
"The supplied variant structure contains invalid data."
As it turned out, I could not uncheck the wake timer box through that series of menus. Windows refused to let me.
7. Googled the stupid thing that went wrong.
It's usually safe to assume that if I'm running into some dumbassed Windows problem, other people are as well. I did a little Googling and found that indeed, lots of people were unable to make their Windows PCs stay asleep because they weren't allowed to disable UpdateOrchestrator\Reboot's wake timer.
After searching for a bit, I found this Microsoft support thread from December 2017, in which a poster (not a Microsoft support person!) who goes by DebayanGupta had shared an input for the Command Prompt that looked like it would let me disable the wake timer.
8. Had my PC tell me that access was denied.
I ran the elevated command prompt as an administrator, then entered the suggested command: "SCHTASKS /Change /TN "Microsoft\Windows\UpdateOrchestrator\Reboot" /DISABLE" and my PC spit back to me:
Access is denied? Access is denied? I BUILT YOU. I GAVE YOU LIFE. How dare you??
9. Paused and reminded myself how simple this should have been.
My PC was waking up when it shouldn't. This was some basic shit. It should be controlled by a toggle located in some easy to find settings menu, like, a check-box next to the sentence "allow software to wake the computer from sleep." It was absurd that something so trivial should actually be so complicated.
10. Installed special software that overrode the access restriction.
After that I downloaded NSudo, which let me run things in Windows with "all privileges" turned on. I tried not to dwell on the fact that I was downloading some GitHub app that I'd never heard of to be able to give commands to an operating system that I'd bought and installed, but whatever. I installed NSudo, ran Command Prompt with all privileges turned on, and ran the command again.
Success! The parameters had been changed. I finally did it, right? (Right?)
11. Enjoyed my success until Windows overwrote it.
For one night, it worked. My PC didn't wake up until I clicked my mouse the next morning. The next night, however, it woke up again. I re-diagnosed the problem the following morning and found that, yep, UpdateOrchestrator\Reboot had yet again woken up my PC. As it turned out, the UpdateOrchestrator has a tendency to write over your changes, even if you had forced the issue by using something like NSudo.
12. Fixed the problem again before locking the door behind me.
At this point I was too far in to give up. I needed to fix the problem, then lock the system out of the file so that it couldn't change it after I left. Thanks again to the post from DebayanGupta, I loaded an elevated command prompt with Nsudo, then entered: "%WINDIR%\System32\Tasks\Microsoft\Windows\UpdateOrchestrator\Reboot" /inheritance:r /deny "Everyone:F" /deny "SYSTEM:F" /deny "Local Service:F" /deny "Administrators:F".
I am no computer expert, but I believe that blocked off Windows from accessing the Reboot file, meaning it wouldn't be able to change or overwrite it down the road. I am not used to taking this firm a hand with my operating system. Not only was I required to force my own PC to give me the access I needed to change a setting, I then had to lock the door behind me to keep it from undoing my changes.
13. Tried to relax and enjoy my victory.
It's been four nights, and my PC has stayed asleep through all of them. I still have no real sense of what the UpdateOrchestrator\Reboot was doing, or if blocking my PC's access to the file will be detrimental to its health over the long-term.
It's probably fine. The important thing is that I won. Once again, I was able to bend Windows 10 to my will. My PC will sleep without waking, at least for a while.
Looking back over that convoluted problem-solving process, I keep reminding myself that I wasn't trying to do anything weird or advanced. I wanted to stop my PC from waking up in the middle of the night. Like all the other people who have wrestled with this problem over the years, I wanted only to restore the most basic sort of functionality to my computer.
Go to sleep go to sleep go to sleep go to sleep
Things will be fine for a little while, but if history is any guide, they won't stay fine forever. Sometime within the next year, my PC will start waking itself up again, and I'll dive down the rabbit hole once more.