Completely disable automatic waking from Sleep or Hibernate on Windows 10

Completely fix wake problems on Windows

A well-known feature of Windows 10 and its predecessors (XP, Vista, 7, 8, 8.1) is the wake timer, which when triggered, is responsible for waking your Windows PC up from either Sleep/Hibernate in order to perform scheduled tasks for system security and stability (e.g. System Maintenance, Windows Updates, Windows Defender Scanning).

While this feature might be useful for the average Windows user, it might not be so great for the bit more tech-savvy users who might actually want Windows to remain in Sleep or Hibernate without automatically waking to perform tasks.

The Solution?

Part 1: Disable the most common Wake Timer setters

1 Disable Wake Timers in Power Settings

1.1: Right-click on Start and select Run. Type powercfg.cpl and hit ENTER:

Right-click on Start and select Run. Type powercfg.cpl and hit ENTER:

1.2: In ‘Control Panel’s Power Options’, to the right of the bold power plan, click ‘Change plan settings’:

In 'Control Panel's Power Options', to the right of the bold power plan, click 'Change plan settings':

1.3: In ‘Edit Plan Settings’, click ‘Change advanced power settings’:

In 'Edit Plan Settings', click 'Change advanced power settings':

1.4: In ‘Power Options’ Window, Expand ‘Sleep’ option, Expand ‘Allow wake timers’, and change the ‘Setting’ option to Disable:

In 'Power Options' Window, Expand 'Sleep' option, Expand 'Allow wake timers', and change the 'Setting' option to Disable:

1.5: Finally, click OK to save changes to the power settings:

Finally, click OK to save changes to the power settings:

1.6: Repeat Steps 1.2 – 1.5 for each Power Plan (e.g. ‘High Performance’, ‘Power saver’) if you use them:

Repeat steps 2-5 for each Power Plan (e.g. 'High Performance', 'Power saver') if you use them:

2 Check for and disable currently set Wake Timers

2.1 Right-click on Start and select Command Prompt (Admin):

Right-click on Start and select Command Prompt (Admin):

2.2 In Command Prompt (Admin), type powercfg -waketimers and hit ENTER:

*Explanation: This will list all currently set wake timers.

 In Command Prompt (Admin), type powercfg -waketimers and hit ENTER:

2.3 If the message lists a Wake Timer called ‘Maintenance Activator’,  you will have to disable System Maintenance Wake Timer:

*Explanation: System Maintenance is enabled by default in Windows 10, for system security and stability.

If the message lists a Wake Timer called ‘Maintenance Activator’,  the solution: disable System Maintenance Wake Timer.

2.4: If the message lists a Wake Timer called ‘UpdateOrchestrator\Reboot’, the solution will depend on whether you prefer automatic Windows Updates or not:

*Explanation: Whenever Windows Updates are manually or automatically installed, a Windows Update Restart Wake Timer is created.

If the message lists a Wake Timer called 'UpdateOrchestrator\Reboot', the solution will depend on whether you prefer automatic Windows Updates or not.

Solution if you prefer Automatic Windows Updates (the default setting): Reboot your system, and the Wake Timer will disappear.

Solution if you prefer manually installing Windows Updates, and not to have Automatic Windows Updates that create pending restart wake timers that wake your system: Disable Automatic Windows Updates. From now on, once you manually install updates, immediately reboot your system to extinguish those Wake Timers.

2.5 If the message says ‘There are no active wake timers in the system’, all currently set Wake Timers have been disabled!

If the message says ‘There are no active wake timers in the system’, all currently set Wake Timers have been disabled!

With the above steps, all current Wake Timers will be disabled and your system will remain in Sleep or Hibernate without automatically waking up, at least for now.

However, from time to time you might still get wake surprises.

This is mostly due to system updates (e.g. Windows Updates, driver updates, new devices) that create wake timers.

Three categories of Surprise Wake Sources from my experience

1 Device drivers – e.g. Razer mouse/keyboard driver creates wake timers:

Device drivers - e.g. Razer mouse/keyboard driver creates wake timers

2 Software / System services – e.g. ATI graphics ‘AdaptiveSleepService’ system service for power-saving:

Software / System services - e.g. ATI graphics 'AdaptiveSleepService' system service for power-saving

3 Scheduled Tasks – e.g. Windows Update’s Reboot Scheduled Task:

Scheduled Tasks - e.g. Windows Update's Reboot Scheduled Task

Part 2: Deal with uncommon wake timers caused by 1) Device Drivers 2) Software / services 3) Scheduled tasks

1 First track down the Wake Source. This is done by checking the Event Logs of your system.

1.1 Right-click on Start and select Event Viewer:

Right-click on Start and select Event Viewer

1.2 In Event Viewer, in the left pane, Expand Windows Logs, and Right-click on System log and click Filter Current Log:

In Event Viewer, in the left pane, Expand Windows Logs, and Right-click on System log and click Filter Current Log

1.3 In Filter Current Log, enter ‘1′ as the Event ID to filter by and click OK:

In Filter Current Log, enter '1' as the Event ID to filter by and click OK

1.4 Click through all Information entries with ‘Power-Troubleshooter’ as the Source with 1 as the Event ID. Repeat this until you find an entry you are certain was when your PC woke itself up. If your PC had just woken up, it should be the latest entry:

Click through all Information entries with 'Power-Troubleshooter' as the Source with 1 as the Event ID

1.5 Take note of the Wake Source under the bottom pane’s General Tab:

If the Wake Source is a device (e.g. Wake Source: Device – Razer Abyssus’), the wake timer was due to a Device Driver:

If the Wake Source is a device (e.g. Wake Source: Device - Razer Abyssus), the wake timer was due to a Device Driver

If the Wake Source is ambiguous (e.g. Wake Source: S4 Doze to Hibernate), the wake timer was due to Software/System Services:

If the Wake Source is ambiguous (e.g. 'Wake Source: S4 Doze to Hibernate', the wake timer was due to Software/System Services

If the Wake Source is unknown (e.g. ‘Wake Source: Unknown), the wake timer was due to a Scheduled Task:

If the Wake Source is unknown (e.g. 'Wake Source: Unknown), the wake timer was due to a Scheduled Task

2 If the Wake Source is a device, move on to Step 3.

If the Wake Source is ambiguous, go to Step 4.

If the Wake Source is unknown, go to Step 5.

3 Assess whether to disable wake for, or uninstall, the faulting device driver.

NOTE: Most device drivers should not wake the system, but occasionally device manufacturers may introduce bugs that wake the system.

If the device requires vendor-proprietary drivers, continue at Step 3.1.

If the device doesn’t require a vendor-specific driver (as in the case of a mouse/keyboard), continue at Step 3.2.

If you don’t know whether your device requires vendor-specific drivers, simply continue at Step 3.1.

3.1 Disable wake for that device driver

3.1.1 Right-click on Start and select Device Manager:

Right-click on Start and select Device Manager

3.1.2 In Device Manager, look through the item groups until you find the device with the same name as that found in the Event Log entry. Right-click on the device and click Properties:

In Device Manager, look through the item groups until you find the device with the same name as that found in the Event Log entry. Right-click on the device and click Properties

3.1.3 In Properties, click the Power Management tab, and uncheck the box “Allow this device to wake the computer”, then click OK:

In Properties, click the Power Management tab, and uncheck the box "Allow this device to wake the computer", then click OK

3.1.4 Congratulations, Wake events are now disabled for the problematic device. Remember to file for a bug report to your device manufacturer to correct the issue.

3.2 Uninstall the problematic device driver

3.2.1 Right-click on Start and select Device Manager:

Right-click on Start and select Device Manager

3.2.2 In Device Manager, look through the item groups until you find the device with the same name as that found in the Event Log entry. Right-click on the device and click Properties:

In Device Manager, look through the item groups until you find the device with the same name as that found in the Event Log entry. Right-click on the device and click Properties

3.2.3 In Properties, click the Driver tab, click on Uninstall, check the box ‘delete the driver software for this device’ and click OK:

NOTE: This step ensures Windows won’t reinstall those problematic drivers automatically.

In Properties, click the Driver tab, click on Uninstall, check the box 'delete the driver software for this device' and click OK

3.2.4 Reconnect the device to reinstall basic drivers from Microsoft.

3.2.5 Congratulations, with the default driver, no Wake events should occur for this device.

4 Disable any power-related service.

4.1 Right-click on Start and select Services:

Right-click on Start and select Services

4.2  Look through the services until you find a Service suspected to be related to Power-saving. Right-click on the service and select Properties. In Properties, change the Startup type to Manual, and click Stop to stop the service:

Look through the services until you find a Service suspected to be related to Power-saving. Right-click on the service and select Properties. In Properties, change the Startup type to Manual, and click Stop to stop the service

4.3 Congratulations, you have successfully stopped Service-related Wakes.

5 Find out which Task woke your system, and disable wake for that scheduled task.

5.1 Copy the following code to Notepad, and edit the first line’s $wake_date variable (use the format: YYYY-MM-DD HH-MM) to match the Date of the Wake Event (under the “Date and Time” column) you tracked down earlier in Event Viewer in Step 1.4 :

For instance, according to my “Wake Source: Unknown” screenshot above, my Wake Event occurred on the 16/12/2016 12:49:21 AM (under the “Date and Time” column), I am going to type 2016-12-16 00:49 as the $wake_date :

Edit the first line's $wake_date variable (use the format: YYYY-MM-DD HH-MM) to match the Date of the Wake Event (under the "Date and Time" column) you tracked down earlier in Event Viewer in Step 1.4. For instance, according to my "Wake Source: Unknown" screenshot above, my Wake Event occurred on the 16/12/2016 12:49:21 AM (under the "Date and Time" column), I am going to type 2016-12-16 00:49 as the $wake_date

5.2 Right-click on Start and Click Run. Type powershell and hit ENTER:

Right-click on Start and Click Run. Type powershell and hit ENTER

5.3 Copy all the edited code from Notepad, then Right-click only in the Powershell window to paste the code and press ENTER:

NOTE: This will show you a list of Tasks that occurred within the same minute as the wake event. You should most often see only 1 Task.

Copy all the edited code from Notepad, then Right-click only in the Powershell window to paste the code and press ENTER: NOTE: This will show you a list of Tasks that occurred within the same minute as the wake event. You should most often see only 1 Task

5.4 Read the TaskPath and TaskName for the responsible Task(s):

In my case, the Scheduled Task’s TaskName is “Reboot” and is located in folder “\Microsoft\Windows\UpdateOrchestrator\”.

We’re almost done, we just have to disable the wake for this Task.

Read the TaskPath and TaskName for the responsible Task(s): In my case, the Scheduled Task's TaskName is "Reboot" and is located in folder "\Microsoft\Windows\UpdateOrchestrator\".

5.5 Right-click on Start and Click Run. Type taskschd.msc and hit ENTER:

Right-click on Start and Click Run. Type taskschd.msc and hit ENTER

5.6 In Task Scheduler, in the left pane, based on the TaskPath earlier navigate to Task Scheduler (Local) > Task Scheduler Library > Task > Path, and in the right pane,  right-click on TaskName and click Properties:

For instance, in my case this would be Task Scheduler (Local) > Task Scheduler Library > Microsoft > Windows > UpdateOrchestrator, and right-click on Reboot and click Properties:

In Task Scheduler, in the left pane, based on the TaskPath earlier navigate to Task Scheduler (Local) > Task Scheduler Library > Task > Path, and in the right pane,  right-click on TaskName and click Properties: For instance, in my case this would be Task Scheduler (Local) > Task Scheduler Library > Microsoft > Windows > UpdateOrchestrator, and right-click on Reboot and click Properties:

5.7 In Properties of the Task, click the Condition tab, and under Power section, uncheck the box “Wake the computer to run the task”:

In Properties of the Task, click the Condition tab, and under Power section, uncheck the box "Wake the computer to run the task"

5.8 Repeat Step 5.6 for each Task you find in Step 5.4.

5.9 Congratulations, you have successfully disabled wake for problematic Scheduled Task(s).

Conclusion

If you have followed the guide entirely, you would have learnt a great deal about the variety of Wake Sources; who would’ve known it would be so complex.

The good news is that you will now be able to deal with any present wake problems and future gotcha wake surprises  all to keep your system is wake-proof.

I hope this helps you all.