Whenever I finish working with my computer, I almost never power it off. Instead I send the computer into sleep or hibernate state. This saves lots of time at startup – I can easily continue working without reloading all the projects. However I discovered that recently my Windows 10 laptop started to wake up unexpectedly. Such unplanned wake-ups can damage computers, e.g. if a laptop left on a sofa, its air vents can be blocked, which leads to overheating.
First, I thought that it’s a Windows automatic maintenance issue and I should look into it. Let’s check it out.
Open Windows Control Panel, Security and Maintenance, Maintenance:
Well, it looks like Windows started scheduled maintenance at night and that was the reason for the issue. Click Change maintenance settings.
That’s quite strange. The scheduled time is different from the last run time and wake-up option is not ticked (if this option is ticked on your computer, untick it or change the maintenance time).
So, we need to investigate the problem deeper and check event logs. Start Event Log Explorer and open System log on a local computer. We can set filter by Microsoft-Windows-Kernel-Power, event id = 107 to get resume from sleep events, but this is not a very good way. The event time is almost equal to the sleep time because Windows hasn’t synchronized its clock with the hardware clock yet. We can get the hardware (real) time from XML details of this event (ProgrammedWakeTimeAc or ProgrammedWakeTimeDc), but it’s written in UTC format, so you will have to convert it into your local time.
Fortunately, there is a better way to get sleep/wake-up details. Set filter by Source = Microsoft-Windows-Power-Troubleshooter.
Now we can see sleep/resume events in the list. And here is our event along with the reason for waking up. It is NT TASK\Microsoft\Windows\UpdateOrchestrator\Reboot scheduled task.
Let’s find this task.
Run Windows Task Scheduler.
In the left pane browse for Task Scheduler Library\Microsoft\Windows\UpdateOrchestrator
Double click on Reboot in the right pane.
Switch to Condition tab and disable Wake the computer to run the task.
That’s it. Now the computer won’t wake up unexpectedly.
UPDATE
After several days, the problem came back. It appears that Windows modifies Reboot task on its own and enables Wake option. I found some discussions about this issue on Microsoft’s forums, but didn’t get a reasonable solution.
So, I’ve created my own tool: UpdateOrchestrator\Reboot fix.
This tiny program disables Wake option for Update Orchestrator\Reboot task. When you run it, it checks if this option enabled. If so, it switches it off. You should run it elevated or it will fail to update the task.
To run it on regular basis, just create a new task in Task Scheduler. I scheduled to run it every hour and it’s more than enough.
Don’t forget that the program must be run elevated. I scheduled to run it from SYSTEM account:
The program is available at http://eventlogxp.com/download/utils/UpdateOrchFix.exe and it’s free for any usage.