650

Windows 10 lets you 'schedule' a reboot for later. I want to disable it.

Evidently Windows scheduled itself for a reboot last night when I wasn't looking and just closed everything I had been working on the night before.

I reboot on the regular; I don't need Windows to do that for me.

Can I disable it completely? I don't mind if it downloads everything, and then says "hey, you should reboot," but it should never reboot itself, ever.

I'm using the "Pro" edition of Windows 10.

feetwet
  • 1,451
  • 5
  • 18
  • 30
mpen
  • 11,884
  • 16
  • 55
  • 68
  • 66
    The "Anniversary Update" now has an option to have it install when you're not using the computer, but that's not really any better. Sometimes I leave downloads or long-running processes overnight which Windows murders and hides the results of. – mpen Aug 19 '16 at 16:02
  • 4
    There is another effective solution here: https://justpaste.it/HowDisableWindows10Update – Rob Aug 25 '16 at 05:54
  • I found a utility called shutdownguard - but I haven't tried it yet => https://shutdownguard.en.softonic.com/ – Mick Nov 14 '16 at 14:56
  • @mpen This feature to install when I'm not using my PC is also broken. No matter how many times I schedule it to restart at a certain time (such as 1am), it keeps coming back and asking me to schedule a reboot - over and over and over and over and over and over and over... – Jerry Dodge Dec 20 '16 at 20:56
  • 1
    A suggestion for MSFT . . . why not have a series of gradually more draconian notices. Like a "Delay for 1 day" option the first time; "Delay for 6 hours" the second time, then 3 hours, 2, 1. I get it; for security purposes, you need to have the update happen. But this is at least a bit more polite to users. – William Jockusch Dec 21 '16 at 15:51
  • 2
    Epic fail. The only solution is to disable the windows update service entirely. I disabled it. Problem solved. – Triynko Jan 10 '17 at 03:37
  • 47
    Even worse, my PC wakes up from hibernate to perform this function, then sits there freshly rebooted for the rest of the night. Will Microsoft be paying my electricity bill? – Lightness Races in Orbit Jan 13 '17 at 10:02
  • 15
    Sadly the top voted answer by Windos is both complex, out of date and certainly does not work for the Home edition (it may not work for any edition for all I know). FYI Erwin's much simpler answer has worked continuously up to today (Jan 2018). There are other answers that look promising but I have not tested them. With 250,000 views this issue is obviously super-important to many people... I think the admins here should allow this question to be re-asked to ensure that the up/down votes reflect the *current* state of the answers. – Mick Jan 24 '18 at 15:23
  • 3
    So what is the accepted answer in 2018? no time to try all the elaborate approaches – prusswan May 10 '18 at 04:41
  • 1
    @prusswan I don't know anymore. I've pretty much just accepted my fate. Using 3rd party tools to disable everything tends to cause other issues. – mpen May 10 '18 at 17:40
  • 1
    It would be more than marvelous if Microsoft could deploy security patches and just restart the relevant components or services they affect, rather than having to reboot the whole computer. For substantive feature updates administrative users should always be in control of when updates take place. – richhallstoke Feb 25 '19 at 14:40
  • 1
    @prusswan: The accepted answer "Windows 10 Reboot Blocker" still works to this day - May 2019 – Mick May 14 '19 at 19:00
  • 1
    I just posted a solution that works as of March 2020 and is much simpler than the others – Joakim Mar 01 '20 at 15:05
  • 1
    I've looked (quickly) at the answers and I am astonished how hard it is to make Windows 10 to behave. The only conclusion I have is to switch to REAL operating system. Linux never ever did something itself. It just does only what you ask it for. – Tomek Mar 01 '20 at 20:51
  • As of 2022, do any of these actually work? – endolith Oct 19 '22 at 13:28
  • 1
    @endolith: Yes, Erwin's answer of "Windows 10 Reboot Blocker" has been working for years and still works in 2023. – Mick Jan 12 '23 at 10:13

19 Answers19

275

Note: Unfortunately this appears to not work on Windows 10 Home, and I'm not sure of a workable solution for users of this edition.


I posted this as an answer on another question, but as that appears to be a duplicate of this question I'll provide it here too:

You can edit your local group policy settings to force Windows update to only download updates, but wait for your input to install (and therefore reboot.)

Open your start menu and type Group, then click Edit group policy

Expand Computer Configuration \ Administrative Templates \ Windows Components \ Windows Update

Local Group Policy Editor - Windows Update

Double click Configure Automatic Updates and enable the policy, and configure it as needed.

Configure Automatic Updates

Head back to Windows Update and click Check for updates. Once it is done, click on the Advanced options

You should see your new settings being 'enforced.'

Enforced Windows Update settings

After applying this setting on a test VM, I left Windows Update open and noticed it started downloading.

Windows Update Downloading

When it finishes downloading, you get a toast notification that there are updates and you need to install them.

Windows Update manual install

Note that you must click install now. Restarting or shutting down from the start menu does not appear to trigger the install process.


More info:

I'm not sure if editing Local Group Policy is an option in the Home edition of Windows 10, but the same result should be possible through the registry (I haven't tested this as I used the policy method myself). Including this in case non-pro users come looking for an answer too.

  1. Press Win + R and type regedit then hit Enter
  2. Navigate to HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate\AU
    (you may need to create the keys manually if they don't exist)
  3. Create a new DWORD value called AUOptions and enter a value of either 2 or 3.

    2 = Notify before download
    3 = Automatically download and notify of installation

  4. Restart PC

  5. Check for updates
  6. Inspect Advanced Settings

Update following Anniversary Update (1607):

I've seen a lot a few comments lately from people saying this no longer works after the Anniversary Update.

I've been running some tests, detailed in the two blog posts here:

These tests have been running for nearly three weeks and I have yet to see any forced reboots.

In light of these results, it appears that this does still work.

Windows 10 Professional Screenshot - 20 Days up time

Things to keep in mind:

  • I did not set any settings around Active Hours or the Reboot Options.
  • DO NOT click the 'Install now' button within the Windows Update UI unless you're ready to install and reboot. Once the updates are installed, there is no stopping Windows from deciding to reboot.
  • Windows will nag you with Toasts, Action Center alerts and banners across your screen. As long as you don't install the updates you're fine (but do do them eventually.)
Windos
  • 11,061
  • 4
  • 38
  • 56
  • 2
    Will "3 - Auto download and notify for install" automatically install the updates when you do a manual reboot, or do you have to go into Windows Update and click to install them? – mpen Aug 30 '15 at 19:05
  • 6
    I used that settings on my Win10 Enterprise and it evidently restarted itself this weekend (Saturday 3:31 AM that was). There has to be an additional switch to disable that annoying behaviour. – mbx Aug 31 '15 at 06:17
  • 2
    @Mark, I'm not sure... I've been manually going off and checking for updates so far which doesn't give it a chance to download and the wait for me to tell it to install. Will setup a VM to test, though it could take a while to know for sure. – Windos Aug 31 '15 at 20:17
  • @mbx, if you had updates installed prior to setting this, or you go into Windows Update and click 'Check for updates' it will still go and schedule an auto reboot. All this setting will stop is Windows finding updates, installing and then rebooting without any interaction from you. You could try also setting 'No auto reboot with logged in user', but I have had very inconsistent results from that in Windows Server. – Windos Aug 31 '15 at 20:19
  • 2
    @Mark, I have edited my answer to include some picture from my test VM. You get a toast notification when updates have been downloaded and are ready to install. A manual reboot didn't trigger the install for me, I just logged back in to finding the notification in Action Center. – Windos Sep 01 '15 at 02:25
  • 5
    @windows I already had "No auto-restard with logged on users for scheduled automatic updates installations" enabled in the group policy editor. Hasn't helped so far. – mbx Sep 01 '15 at 06:12
  • Hrm.. that's unfortunate, but I guess this is still the best solution at the moment. Thanks for doing the research @Windos :) – mpen Sep 01 '15 at 15:30
  • It appears that the updates will **not** automatically install after a reboot, but the notifications seem to get more aggressive. You will get a full screen "You need to install some updates" prompt now and then. Clicking it opens the Update center, but it still won't force you to actually perform the update. – mpen Sep 30 '15 at 17:27
  • Your solution is to turn off auto reboot/restart without permission. Is it right? I have same issue and I followed your step. I hope it can turn off that mode – Jame Mar 27 '16 at 02:56
  • 2
    The suggested approach using regedit does not work on Windows 10 Pro. – fredrik May 02 '16 at 11:53
  • 2
    I applied this setting, but then my computer forcefully rebooted 30mins later and took *ages* to install some massive update. So frustrating. Not sure if it was because the reboot had already been scheduled by that stage. Hopefully this doesn't happen again. – Simon E. May 21 '16 at 11:48
  • 1
    Yeah, this really has to be done preemptively. Whenever I build a new Win 10 machine for myself I apply this setting and then manually install a round of updates so I can be sure I'm 'in control' from then on. – Windos Jul 04 '16 at 04:47
  • 3
    I'm not sure if this works any more in the Anniversary Update (1607), the interface and options have changed somewhat. Still testing. – Windos Aug 10 '16 at 09:36
  • 3
    No `Windows Update` key in registry after Anniversary Update W10Home. – Vojtěch Dohnal Aug 10 '16 at 15:45
  • 2
    @VojtěchDohnal I seem remember having to create it manually even before the update. – Windos Aug 11 '16 at 20:11
  • 1
    It seems the advanced option dialog looks different now after the anniversary update (1607) when applying the group policies. It doesn't show the "choose how updates are installed" select box you could not change anyway at all and the red text above is gone, too. I have no `Windows Update` key in the registry, either, but I hope the group settings do their job. Can anybody confirm it still works like this after the anniversary update? – Rob Aug 25 '16 at 05:40
  • 203
    Why is it not a simple checkbox in settings: "Don't destroy my work when I'm not looking" comes to mind as accurate verbiage. I'll even take "Don't restart while PuTTY is running" is a close second. Why always with the reg hacks. – Brandon Aug 29 '16 at 13:54
  • 32
    Consider this a 'me too' answer, but even with these changes made it still reboots (Win 10 Anniversary Update). Extremely frustrating. Work lost, session gone, infuriating. – Jeroen Ritmeijer Sep 01 '16 at 08:40
  • 11
    They have just killed about 10 opened apps I was using last night. Thank you Microsoft for this clever idea of rebooting people computers without their permission. – Ronen Festinger Oct 28 '16 at 20:32
  • 1
    Can confirm, at least in my testing, that this still works after the Anniversary Update. See caveats in the edited answer (down the bottom.) – Windos Nov 07 '16 at 03:43
  • A 'me too' as well: despite having made these changes (and successfully kept auto-reboots from happening for a while), something must have changed because tonight, while I was at the movies, Windows 10 rebooted itself to install updates. And then, while I was USING the bloody machine, it decided it WAS going to reboot in 10 minutes for updates, so you'd better save your work or else. I can't have this. Seriously considering my alternatives. (This is 10.0.14393.) – Toby Deshane Dec 16 '16 at 13:34
  • 3
    -1 : I had 7 min left to prevent a reboot that was planned to occur during lengthy computations. I chose to follow your solution -- it did not work (no time left for the other solutions). Rebooted. Wasted a day of work. Could you *please* put in large and bold font *at the begining of your answer* that this actually doesn't work since the anniversary update?! That would have allowed me to skip to another solution. – WhitAngl Dec 19 '16 at 22:15
  • 4
    @WhitAngl this won't prevent the reboot if Windows Update has already downloaded and/or started to install the updates, it's something that needs to be done pre-actively. The changes above (either registry or policy) *need* to be applied before WUA does it's thing. I personally set the setting, then do a manual reboot myself to make sure that the computer policy is in effect. – Windos Dec 20 '16 at 00:50
  • 3
    "I did not set any settings around Active Hours or the Reboot Options." - What if you already did, how do you unset them? – Yishai Jan 11 '17 at 14:32
  • I don't see the words "Some settings are managed by your organisation" in the advance part of windows update :-( – Mick May 11 '17 at 14:33
  • 2
    July 2017. Can't get a proper Windows 7 installation. Can't handle automatic reboots in Windows 10. Can't stand Apple. Is Linux the answer? – obe Jul 28 '17 at 18:37
  • 3
    real f'n bastards at Microsoft - many people who get sideswiped by this behaviour would reboot their computers eventually anyhow. – Mikey Sep 02 '17 at 14:33
  • 4
    It's a burning shame. You PAY (I've personnally paid $139) for a system that (1) is not safe (because it need a **LOT** of security updates) (2) that can make you loose your work **AFTER YOU UPGRADE** (going from W7 to W10). This is not *progression* this is **regression**. So many people *PAID* to generate that OS. Yes, **some developpers are paid to develop that OS!!**. I dont get that. I'm working 100% of my time on Mint and reboot only to play. Even when I play I see "Windows will reboot whatever you do, and go f--k yourself if you're not happy we'll reboot anyway". – Olivier Pons Jan 05 '18 at 08:35
  • 1
    @obe Yes Linux is the answer, make a multiboot like I did. And if you bought your PC with Windows pre-installed, even here those f--kin bastards at Microsoft **force you to boot first on W10**. You'll have to press SHIFT and while pressing SHIFT, choose Reboot in the Windows menu! Every day I have to (1) boot on Windows (2) re-boot to see my multiboot and choose Mint. I'm telling all my 500+ students, every year, why they should go Linux forever. And I'll bookmark this superuser question to show them one more reason. – Olivier Pons Jan 05 '18 at 08:40
  • 3
    @Yishai You are forced to a max "working hours". You cant say "I'm working from 2AM to 23 PM" which is sometimes the case for me. F-CK you Microsoft, (F-CK you) x 968549874. Developpers are paid to do this? Seriously? Paid and they cant even do their job properly? A lot of people didnt know that under Linux you can replace a ".exe" file even if the program is running. Try to do this on Windows, buddy! (this explains the f--kin reboot when new updates are available, Windows isn't able to remove an exe file if its program is running and if it's a core program Windows cant stop it). – Olivier Pons Jan 05 '18 at 08:44
  • Well I've done the GPO thing but then it decided to boot from sleep mode. Found out that you can disable this in Task Scheduler Library -> Microsoft ->Windows -> UpdateOrchestrator and then double click Reboot and go to the Conditions tab. There is a checkbox to wake from sleep mode to start the task. Disable that. I've not tried this yet, so we'll see. – Tom Jan 25 '18 at 16:53
  • For those saying it didn't work. I'm on Home. Even after changing the group policy setting, nothing different happened. However, going into registry showed that the WindowsUpdate key didn't exist. I have created the two keys and the dword, I have yet to see if this fixes the issue, but it could be that GPE doesn't work on home for this purpouse – Blaine Mar 18 '18 at 13:23
  • @Tom You will get error 2147943004 if you try this - you will need to launch Task Scheduler with `psexec -is mmc /s taskschd.msc` after [acquiring PsTools here](https://docs.microsoft.com/en-us/sysinternals/downloads/psexec) - credit to drumz0rz and Noela in this [original thread](https://answers.microsoft.com/en-us/windows/forum/windows_10-update/disable-update-orchestrator-from-waking-my/19272430-f41f-4947-904c-71ab34b220f0) – Scott Stevens Jun 17 '18 at 13:37
  • 1
    I think the policy OP actually wants is "No auto-restart with logged on users for scheduled automatic updates installations". – Gordon Aug 03 '18 at 15:32
  • If the status for this policy is set to Disabled, any updates that are available on Windows Update must be downloaded and installed manually. To do this, search for Windows Update using Start. – Shayan Mar 18 '19 at 00:46
  • 1
    I set this a few months ago, pc restarted today and it appears to have unset itself. – user5389726598465 May 31 '19 at 09:57
  • This does not work on Win 10 LTSC 2019. I think you might be working for Microsoft, posting a false solution. Microsoft might have hired people to thumb this up. – Alex Dec 22 '19 at 23:59
  • I don't have this group policy (win10pro) maybe they removed it to annoy us even more. – Bradley Hayes Mar 11 '21 at 22:10
57

You can try Windows 10 Reboot Blocker:

A simple Windows-Service that will update this "active hours" timeslot in the background.

It is free and works with the Anniversary update.

Erwin
  • 1,421
  • 12
  • 8
  • 3
    I like it. It seems well done, has installer and uninstaller and the executable has a valid signature. What it does is very simple and a good idea: it's just the same as if you were manually telling windows every hour that your normal working hours are the next 12 hours and it should not restart during this time. – maf-soft Jan 13 '17 at 09:39
  • 2
    I haven't tried, but I wonder if this can easily be done via the command line and a task scheduler. ;) – James Wilkins Mar 29 '17 at 07:26
  • The idea seems very simple - I've just downloaded and installed it... but there are no instructions on how to control it. For example will I be informed when there is something to install? ...and how do I allow windows to install an update when I want to allow it? – Mick May 12 '17 at 09:18
  • 1
    Windows will install updates automatically but not reboot automatically behind your back (such a basic feature that is missing!). You can just check Windows Update to find out if a reboot is pending and do it when the moment is right. – Erwin May 12 '17 at 17:42
  • 5
    FYI... You don't need **freeware** non-Open Source 3rd party software to this though as per the link only answer you provided this may work for now but what exactly does this logic do behind the scenes we may not know 100% for sure. You can control when post Windows Update reboot operations occur as per https://superuser.com/questions/957267/how-to-disable-automatic-reboots-in-windows-10/1208866#1208866. Maybe not as simple as link only answer but native to Windows at least and you see and control exactly what it does. Once you get it setup, it is really simple though. – Vomit IT - Chunky Mess Style May 18 '17 at 15:32
  • 8
    July 24th 2017: Since installing Reboot Blocker - two and a half months later I can confirm that my PC has still never rebooted without my consent. – Mick Jul 24 '17 at 12:03
  • 1
    @McDonald's, an open source solution would indeed be nicer. Why not package your solution into an installer and post it on GitHub? – laurent Aug 18 '17 at 18:48
  • 2
    wow finally I found something that hopefully will work! (and be futureproof). I'm frustrated about googling and changing settings constantly for something that shouldn't even be an issue... not restarting without the user's permission should be a no-brainer – Mikey Sep 13 '17 at 05:46
  • 1
    spoke too soon... my computer updated without my consent even after installing that too and verifying it was running... all I want it one solution that works. Windows never starts rebooting when I'm at the computer, but if I walk away from the computer (usually I put it in standby mode), that's when the bugger restarts if it wants to – Mikey Sep 16 '17 at 10:17
  • @Mikey: I wonder if the standby (sleep?) mode is the problem - my system *still* has not rebooted without my permission (that's over 4 months now). – Mick Sep 22 '17 at 11:46
  • @Mick could be... it's a chicken & egg problem. Everytime I can't wake my computer from standby, it will show that it is installing updates after I power off and reboot. However this can happen several times a month, even twice a week. And there are always updates waiting to be installed.So there's something wonky with my standby. But there is never a time this happens when there are no updates being installed upon reboot so I'm left scratching my head. I do have an old computer, Dell 2012 laptop. So windows 10 is not the original OS. My drivers are pretty up to date though. – Mikey Sep 23 '17 at 06:26
  • 2
    I think this "reboot blocker" relies on the computer being fully awake when it is on so that the software can repeatedly shift the timeslot in the background... but if it is in standby then maybe the shift does not happen. I never put my (desktop) PC in standby so I do not see this effect. – Mick Sep 23 '17 at 08:00
  • 1
    The thing is free, and even the donation is only 3EUR, which I happily paid. I do not have time to deal with more bs. If you work as a sysadmin and you can leverage your work over hundreds of computers then it's worth it. As an individual, it's just not worth my time to roll my own script. If someone could package up their open source script on github, I would gladly do that. This is the least crappy solution to a very crappy situation – 1mike12 Jan 19 '19 at 16:05
  • 1
    UPDATE: This worked for years for me until today windows told me it was rebooting in 20 minutes. – user5389726598465 Mar 24 '19 at 20:12
  • 1
    UPDATE: I don't know what happened with user5389726598465 but I can report that in November 2019 I still have never had any unwanted updates using this utility. – Mick Nov 19 '19 at 09:52
  • 1
    @ITThugNinja A third party solution is *potentially* nefarious, whereas any Microsoft solution is *known to be* nefarious - it is designed that way. – tbone Apr 09 '21 at 19:57
  • 1
    I have tried many proposed solutions (e.g. Task Scheduler's UpdateOchestrator) and so far this has been the only one working flawlessly! – Samuli Asmala Apr 21 '21 at 06:26
  • @tbone It looks like the developer of the Windows tool finally fixed it so third party AV engines are no longer flagging the app as malicious so I removed the comment. My point was more along the lines of not trusting applications that AV engines report as malicious or at least proceed with caution if you decide to do so. In any event, the application has been fixed in the current version at least that no https://www.virustotal.com/ AV engines are seeing it as malicious any longer so it was fixed at the program level as it should have been, and my warning comment has been removed. – Vomit IT - Chunky Mess Style Apr 22 '21 at 11:24
  • 1
    If this works it is by a long shot the most straight forward and time-efficient solution to this issue – David Jun 18 '21 at 18:54
50

I have answered this as part of my attempt to fix another garbage setting in Windows 10 (the way it will wake your device up, and you in the process, to install updates you haven't approved.)

Please consult Step 2 of my guide here. It explains how to modify the "Reboot" task in the "UpdateOrchestrator" section of the Windows Scheduled Tasks list to disable it and stop Windows from interfering with it. With this task disabled, your machine will never reboot unless you instruct it to.

Cheers - Seagull

seagull
  • 5,426
  • 7
  • 29
  • 40
  • 27
    Your link is within the site, so there isn't much risk of it breaking. But it's still better to make answers self-contained. Consider adding the essential information here and leaving the link for attribution to the other answer. If you're just going to redirect the reader somewhere else, that can even be done in a comment. – fixer1234 Aug 31 '16 at 18:50
  • 2
    This is it! I was confused how the stupid thing managed to reboot my PC even when the service wasn't running, and this was the cause! Who'd of thought that some buried Scheduled Task that Windows Update would tweak was the culprit the whole time. Now the updates can be downloaded and installed, but I can reboot when I want to. Not whatever restrictive idea of "Non-Active Hours" Windows thinks I'm not using my computer. – japzone Nov 03 '16 at 22:54
  • 7
    Unfortunately this doesn't work anymore either. Windows will silently re-enable the task as well as ignoring the file permissions and resetting them too when an update is run. – qasdfdsaq Nov 05 '16 at 13:55
  • I can't verify that. – seagull Nov 05 '16 at 17:34
  • qasdfdsaq is right. I had the task disabled for a week then last night my machine rebooted. Looked at the task and it was enabled. Just like the update service, if you disable it Windows will enable it again. Now I'm going to see what deleting it will do. I suspect it'll just get added back. Windows 1607 (14393.447) – Justin Emlay Nov 10 '16 at 14:03
  • @JustinEmlay Did you go to the task in `C:\Windows\System32\Tasks\Microsoft\Windows\UpdateOrchestrator` and neuter it? I removed all read/write/execute permissions for all accounts. Still can't verify it works but I'm hopeful. – Enigma Nov 10 '16 at 15:04
  • 1
    Still can't verify. I updated my Windows 10 to the latest version – 14393.447 – and my "Reboot" task has not had its permissions interfered with. Task Scheduler in Administrative Tools still says "disabled" for this task. – seagull Nov 10 '16 at 19:11
  • Yes, I changed the permissions and it doesn't stick. The only thing that worked for me was deleting the task. Since Nov 10th it hasn't come back. So forget trying to alter it, just delete it. – Justin Emlay Dec 09 '16 at 14:00
  • This perfectly works for latest Windows 10 Home. You saved so much work I do at night!!! THANK YOU! – lucaferrario Mar 22 '17 at 21:09
  • 2
    @qasdfdsaq I can confirm this doesn't work on home 10. I followed all the steps a month ago and last night windows added a task on the the disabled permissionless update orchestrator which was enabled to run once and auto rebooted itself last night. – user5389726598465 Nov 16 '17 at 01:34
  • As of Sept 2020, I have a scheduled task called `USO_UxBroker` which appears to have just rebooted my system a few minutes ago. Maybe we need to apply the same steps to that? – Simon E. Sep 14 '20 at 05:46
46

The best solution to this annoying problem is with Task Scheduler.

Click Start and type Task Scheduler

Navigate to Task Scheduler Library >> Microsoft >> Windows >> UpdateOchestrator

To disable automatic reboots right-click on Reboot and select disable.

enter image description here

Then be sure change the permissions. Should be set to Read & Execute

I also disabled automatic updates by disabling all the tasks in this folder.

jakethedog
  • 786
  • 8
  • 18
  • Testing this tonight, but I think this would qualify as the best answer to the question how to disable just the reboots, not the updates. – Thomas Sep 30 '16 at 21:17
  • Did it work, @Thomas? Is this only available for Win10 Pro? – ppvi Oct 04 '16 at 13:40
  • 14
    @ppvi I wish, but no, it still rebooted – Thomas Oct 04 '16 at 15:33
  • 5
    This didn't work for me either (with Windows 10 Home) because the system just re-enabled it. This other answer suggests that you do the same thing, but that you also have to change the permission to keep Windows from re-enabling it: http://superuser.com/a/1125051/139323 – orrd Oct 05 '16 at 07:15
  • 3
    Doesn't work. Windows ignores the permissions on those files. – qasdfdsaq Nov 05 '16 at 13:57
  • 3
    qasdfdsaq is right. I had the task disabled for a week then last night my machine rebooted. Looked at the task and it was enabled. Just like the update service, if you disable it Windows will enable it again. Now I'm going to see what deleting it will do. I suspect it'll just get added back. Windows 1607 (14393.447) – Justin Emlay Nov 10 '16 at 14:04
  • Delete it instead of disabling it. – Justin Emlay Dec 09 '16 at 14:01
  • I didn't neither disable or delete it, just changed the actions inside the rule to this. Seems that it did the job. `%windir%\system32\nircmd.exe infobox "Windows needs a reboot to finish its updates, however, we're not destroying your work. Save your stuff and do it yourself;)" "Reboot Disabled"` – David Refoua Mar 22 '17 at 13:09
  • 2
    `nircmd` is not a windows native messaging utility. For Windows 10, "msg" however is, so for those who don't want to download other tools, just use `%windir%\system32\msg.exe * /SERVER:localhost "Windows needs a reboot to finish its updates, please restart ASAP."` as the reboot action instead. I strongly suggest also you EXPORT the task first before making changes to it so you have a backup (always a good idea just in case). – James Wilkins Mar 29 '17 at 07:18
  • In my case, Windows runs reboot even it's disabled (before and still is after). – Velda Sep 17 '17 at 08:27
  • Yes, disabling and removing permissions didn't work for me. Windows just added a one time enabled reboot task to UpdateOrchestrator which ran last night. Don't count on this to work. – user5389726598465 Nov 16 '17 at 01:41
  • It seems that after restarting, the value is reset to 1 for me and my system still reboots on its own. – NounVerber Jan 16 '18 at 17:14
  • Recently not even Administrator can change disable the task. Got the message "The user account you are operating under does not have permission to disable this task." – Moobie May 13 '21 at 10:03
  • It looks to me some internal task still able to reboot even the reboot is disabled in the task scheduler – chapter3 Aug 04 '23 at 15:23
39

Controlling when Windows will Reboot after Windows Updates apply

You can control the time which you allow Windows to automatically reboot per Windows Update operations without disabling anything or forcefully stopping the Windows Update service.

This method will not prevent any Windows Updates from being downloaded or installed ever so OS security patches will still be applied to the system―you just have it reboot when you're ready.

Please note that rebooting may be required before any newly patched vulnerability becomes effective so you need to understand this and still routinely reboot when patches are applied in a somewhat timely manner to ensure your system stays secure.

I will explain with more detail below but essentially this uses a batch script to dynamically set and change the correlated registry values of the the Active hours settings for Start time and End time based on the run time it's executed while ensuring to increment the values to always be hours ahead.


This is a Native Windows Solution

Unlike the Windows 10 Reboot Blocker solution that is not Windows native, this is a 100% Windows native solution that does not require any third party software to complete the task which uses registry keys to manage restart behavior as outlined by Microsoft.


Scheduling with Task Scheduler

Simply schedule a single Batch Script (provided below) with Task Scheduler to run twice a day:

  1. once at 6:05 AM
  2. once as 6:05 PM

Each execution sets the ActiveHoursStart and ActiveHoursEnd times to values making Windows think you're always active and ensures no reboot occurs from Windows Update operations.

The batch logic and the scheduling of this process is simple to scale and adjust should you run into any issue (e.g. you run into issues with Power Saving modes such as Sleep or Hibernate.)


Batch Script

NOTES: The registry values are set in hexidecimal format. Also note that the logic example below expects the script to be executed at a frame of 6:00:00 AM - 6:59:59 AM or 6:00:00 PM - 6:59:59 PM only. This can be adjusted easily with the IF %HH%==XX portion of the logic though; you can also use this same logic to test this functionality to confirm it works as expected changing the value.

@ECHO ON

SET HH=%TIME: =0%
SET HH=%HH:~0,2%

IF %HH%==06 SET StartHour=06 & SET EndHour=13
IF %HH%==18 SET StartHour=12 & SET EndHour=07

CALL :ChangeActiveHours
REG IMPORT "%DynamicReg%"
EXIT

:ChangeActiveHours
SET DynamicReg=%temp%\ChangeActiveHours.reg
IF EXIST "%DynamicReg%" DEL /Q /F "%DynamicReg%"

ECHO Windows Registry Editor Version 5.00                              >>"%DynamicReg%"
ECHO.                                                                  >>"%DynamicReg%"
ECHO [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings] >>"%DynamicReg%"    
ECHO "ActiveHoursEnd"=dword:000000%EndHour%                            >>"%DynamicReg%"
ECHO "ActiveHoursStart"=dword:000000%StartHour%                        >>"%DynamicReg%"
ECHO "IsActiveHoursEnabled"=dword:00000001                             >>"%DynamicReg%"
GOTO :EOF

Hex values for decimal 0-255

enter image description here


The Registry

For some detail on the correlated registry settings this will change, below I'll reference the portions of A closer look at Active Hours in Windows 10 for what this method will affect.

Active Hours

Active Hours don't change that behavior, but they add a mechanic to the Windows 10 operating system that makes sure users are not disturbed by reboots during active hours.

Active Hours and the the Registry

  1. Tap on the Windows-key, type regedit.exe, and hit enter.

  2. Confirm the UAC prompt.

  3. Navigate to the following key using the tree hierarchy on the left:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings

The following options are provided here:

  • ActiveHoursEnd: defines the end time of the feature.
  • ActiveHoursStart: defines the start time of the feature.
  • IsActiveHoursEnabled: if set to 1, the feature is enabled. If set to 0, it is disabled.

If you want to change the starting or end hour of the feature, double-click on one of the entries. Switch to a decimal base on the prompt that opens, and enter the starting hour using the 24 hour clock system.

Please note that you cannot add minutes in the Registry only full hours.

source


Confirming

To confirm this works as excepted you will

  1. press the enter image description here key one time, and then start typing in Windows Updates until you see the Windows Update Settings options and then click on it

enter image description here

  1. click on the Change active hours option within the *Update settings section

enter image description here

  1. take note of the Start time and the End time values in the Active hours windows and press Cancel and then close entirely out from the Settings screens.

enter image description here

  1. run the batch script now ensuring the values are set in the variables accordingly for the time you run the script to ensure it sets the values for the Start time and End time accordingly and ensure it runs without error (run as admin if needed).

  2. Now do steps 1 - 3 again and confirm the Start time and End time values changed correctly.


Disabling

When you are ready to allow Windows Updates to reboot the machine per it's update operations, you can do so manually since this method does not stop Windows Updates from being downloaded and installed. If you need to disable this job though, that can be done by disabling the scheduled task that executes it with Task Scheduler.


Further Resources

enter image description here

Vomit IT - Chunky Mess Style
  • 40,038
  • 27
  • 84
  • 117
  • 4
    I think this method is a great idea but it has a little flaw. If you turn off your computer at 7PM or later and then turn it on at 7AM or later the next day, you stay with active hours set to 6PM-7AM and even setting "Run task as soon as possible after a scheduled start is missed" to on in task settings won't change it. I think the conditions in batch should be changed to `IF %HH% LSS 06 SET StartHour=12 & SET EndHour=07 IF %HH% GEQ 06 IF %HH% LSS 18 SET StartHour=06 & SET EndHour=13 IF %HH% GEQ 18 SET StartHour=12 & SET EndHour=07` to make it independent of the time it is executed. – Jojo Sep 08 '17 at 07:46
  • 1
    is this guaranteed to work? Reboot blocker tool didn't work for me - neither did most other things I tried before. Win10pro 1607 – Mikey Sep 16 '17 at 10:21
  • yes this is my problem, I'm safe unless I put my computer to sleep - but - I like putting it to sleep when I'm not using it ( I use sleep mode several times a day – Mikey Sep 16 '17 at 12:32
  • yes, thanks for the info - I also don't really have time to play around right now (big project too :) but I'll use this for future reference. – Mikey Sep 16 '17 at 12:44
  • This is unbelievable. Imagine you are not a tech guy - screwed. I don´t know if I should laugh or cry – Marian Klühspies Mar 30 '18 at 21:11
  • @PimpJuiceIT everything fine with your answer ;) I´m just amazed that such answers are even necessary for something that should be solved with a checkbox in the system settings – Marian Klühspies Mar 30 '18 at 23:25
  • 1
    @MarianKlühspies I appreciate that!! I try to always write something someone can get some usefulness out of when I can. This process may be able to be turned into something easier to manipulate with less steps and thought but I haven't had time to try to develop something. Someone suggested about a GitHub app or something for one of my answers like this before but probably on another post entirely. The hex isn't too hard to figure out with a little effort it's not rocket science and really none of it is but you have to get complex sometimes I suppose to have more flexibility and robustness. – Vomit IT - Chunky Mess Style Mar 30 '18 at 23:31
  • 2
    Very clever solution and well explained - although @MarianKlühspies is correct that non-techies are screwed. I modified the batch file a little, with this: `IF %HH%==00 SET StartHour=00 & SET EndHour=12` `IF %HH%==01 SET StartHour=01 & SET EndHour=13` ... etc, and then set it in Task Scheduler to run every hour, as well as on waking up from hibernate (as described by @PimpJuiceIT. – Tom Warfield Mar 02 '19 at 18:15
  • My 2 cents: the script must be saved as the bat file (and tested) before the job in the task scheduler will be created. Also, note that `StartHour` and `EndHour` variables will be used as HEX. So if you add each row for each hour (as @TomWarfield suggested) - please use HEX values. e.g. `IF %HH%==10 SET StartHour=0a & SET EndHour=04` ... `IF %HH%==20 SET StartHour=14 & SET EndHour=0e`. – Andron Jun 14 '19 at 19:23
  • 1
    Yeah, I changed the condition line to `IF %HH% LEQ 12 (SET StartHour=00 & SET EndHour=0F) ELSE (SET StartHour=0C & SET EndHour=03)` so the script checks AM vs PM instead of checking if it is a specific hour. Then I run it twice a day: 2AM/2PM. If you make sure to check `Run task as soon as possible after a scheduled start is missed`, this should always work. (Note that I changed the time ranges to 12AM-3PM during the AM, and 12PM-3AM during the PM.) – jpfx1342 Jun 18 '19 at 03:16
  • 2
    Please see this answer https://superuser.com/a/1456571/351521 for a `PowerShell` version with a automatic `Scheduled task` creation. I also have added triggers and settings from the comments above. – Marcos Jul 05 '19 at 16:21
  • I added the task with `schtasks /create /TN "\Active Hours" /TR "C:\Other Apps\Active Hours.bat" /SC HOURLY /MO 12 /ST 01:00` then modified it in `taskschd.msc` to change Conditions>Battery Power and Settings>As Soon As Possible. – melds Apr 16 '20 at 18:42
  • *"This is a Native Windows Solution"* With all due respect, but if I paste your batch script on my computer and allow it to run, I am basically at your (batch script's) mercy. You act like this is a safer solution than installing some application, but, unless people (are able to) carefully verify the contents of the batch script, that's simply not true. For all I know your batch script downloads, installs and runs software on the background, mines crypto coins and formats my harddrive. – Stijn de Witt May 14 '20 at 07:37
  • 2
    "*For all I know your batch script downloads, installs and runs software on the background, mines crypto coins and formats my harddrive.*".... This is a "**native Windows solution**" and the logic of the batch script to run is included. You can look up the various parts of the script to confirm it's not malicious, it's a batch script, with all logic visible, and it does exactly what I've written that it does. Fortunately, no one needs to take my word on it alone, the logic is there too, you can confirm this yourself to tell what it's really doing; it's not an executable file. @StijndeWitt – Vomit IT - Chunky Mess Style May 14 '20 at 13:25
  • 1
    @PimpJuiceIT *"You can look up the various parts of the script to confirm it's not malicious,"* Yes, I can, because I am a developer. But for 'normal' people, it's not so easy. – Stijn de Witt May 14 '20 at 20:31
  • 2
    @StijndeWitt .... I've included the other detail related to the registry path and the link right from Microsoft for a 'normal' person to read about if they are interested in learning more about the solution. To pacify this concern, I suggest anyone with such a concern to please read the entire answer and not just the batch script logic portion to learn more about the details of that and the rest of the answer as a whole. I've included extreme detail referenced with sources and all right from Microsoft explaining what this does. If anyone does not trust it, I suggest they don't use it. I agree! – Vomit IT - Chunky Mess Style May 14 '20 at 21:13
  • Why use a temp file? REG can insert data into registry directly. The script also forgets to delete the temp file. – David Balažic Aug 11 '21 at 08:10
  • Good question, I'm really not sure why I did it this way back when I wrote this. In any event, I just left the logic example to make those changes this way because I have not confirmed myself that is works using a different syntax, etc. I'm not sure why I did not implement logic to delete post execution rather than pre-execution as it deletes per the logic now. – Vomit IT - Chunky Mess Style Aug 11 '21 at 11:29
34

You can use Windows' own tools against it to disable automatic reboots.

As some of the other answers have mentioned, Windows runs its reboots using the Scheduled Task called \Microsoft\Windows\UpdateOrchestrator\Reboot. However, if you open Task Scheduler and disable this one, Windows will happily reenable it the following day -- even if you change its permissions to make it read-only.

Rather than have to go into the Task Scheduler UI to disable the task every day, we can set this up automatically, using the schtasks command-line utility to modify tasks.


If a reboot is scheduled, the following command, run with administrative privileges, will disable the task:

schtasks /change /tn \Microsoft\Windows\UpdateOrchestrator\Reboot /DISABLE

Knowing this, you can create your own Scheduled Task to periodically run the above command and disable Windows' insidious little scheme. If you're familiar with how to use Task Scheduler, set up your own task.

Otherwise,

  1. Copy and paste the markup below into a text editor.
  2. Save it as an XML file.
  3. In Task Scheduler, click on Actions > Import Task... and select this file.
  4. Tweak the configuration as needed.
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.4" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Author>http://superuser.com/users/1909/kpozin</Author>
    <URI>\SuperUser\Cancel Windows automatic reboot</URI>
  </RegistrationInfo>
  <Triggers>
    <CalendarTrigger>
      <Repetition>
        <Interval>PT10M</Interval>
        <Duration>P1D</Duration>
        <StopAtDurationEnd>false</StopAtDurationEnd>
      </Repetition>
      <StartBoundary>2016-11-16T18:30:00</StartBoundary>
      <Enabled>true</Enabled>
      <ScheduleByDay>
        <DaysInterval>1</DaysInterval>
      </ScheduleByDay>
    </CalendarTrigger>
  </Triggers>
  <Principals>
    <Principal id="Author">
      <!-- That's the SYSTEM user -->
      <UserId>S-1-5-18</UserId>
      <RunLevel>HighestAvailable</RunLevel>
    </Principal>
  </Principals>
  <Settings>
    <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
    <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
    <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
    <AllowHardTerminate>true</AllowHardTerminate>
    <StartWhenAvailable>true</StartWhenAvailable>
    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
    <IdleSettings>
      <StopOnIdleEnd>true</StopOnIdleEnd>
      <RestartOnIdle>false</RestartOnIdle>
    </IdleSettings>
    <AllowStartOnDemand>true</AllowStartOnDemand>
    <Enabled>true</Enabled>
    <Hidden>false</Hidden>
    <RunOnlyIfIdle>false</RunOnlyIfIdle>
    <DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>
    <UseUnifiedSchedulingEngine>false</UseUnifiedSchedulingEngine>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>PT1H</ExecutionTimeLimit>
    <Priority>7</Priority>
  </Settings>
  <Actions Context="Author">
    <Exec>
      <Command>schtasks</Command>
      <Arguments>/change /tn \Microsoft\Windows\UpdateOrchestrator\Reboot /DISABLE</Arguments>
    </Exec>
  </Actions>
</Task>
kpozin
  • 1,658
  • 8
  • 24
  • 29
  • 22
    The brain trust at Microsoft has been causing me grief since the 1980s. Back then, it was incompetence. Now they do it on purpose. – user184411 Dec 11 '16 at 07:04
  • Nope, can't trust this. Disabling the Windows Update service is the only reliable solution. It's the only way to be certain that Windows won't literally destroy everything you're working on when you least expect it. – Triynko Jan 10 '17 at 03:40
  • 1
    "Now they do it on purpose" LOL. I've coined a term I use: [BOPs](http://jameswilkins.net/grievances_and_annoyances/2031/) (bugs on purpose) - for any company that says it is "by design" (simple excuse not to change it). ;) – James Wilkins Mar 29 '17 at 07:31
  • Thank you, but why not simply set it to run on startup and then repeat every 10 minutes indefinitely? As it is set up now, the task will only run at 6:30 PM (and then repeat itself every 10 minutes), so if you (re)boot your machine at 6:31 PM, the task will only run at 6:30 PM the following day. Windows may still restart automatically during that time. – tomasz86 Apr 19 '18 at 01:20
  • 2
    Even when I'm logged into the default administrator account I cannot run this command in an elevated cmd - https://i.imgur.com/z0ef7nC.png – Goose Dec 20 '18 at 00:48
  • XML file works and confirmed on latest Windows 10 by the current date – FelikZ Jan 26 '19 at 21:53
  • 2
    *if you open Task Scheduler and disable this one, Windows will happily reenable it the following day* When MS decided they were doing this, they basically proclaimed war on the user. – Stijn de Witt May 14 '20 at 07:33
14

Other answers require 3rd-party software or a running task/service, and many have to be repeated after Windows updates. This solution has several advantages:

  • It's fast & easy: Just a single cmd command
  • It's permanent: No need to repeat after Windows Updates
  • It's lightweight: No running services or tasks required

Solution

Run this command in Command Prompt as administrator:

cd C:\Windows\System32\Tasks\Microsoft\Windows\UpdateOrchestrator && rename Reboot Reboot.backup & rename Reboot_Battery Reboot_Battery.backup & rename Reboot_AC Reboot_AC.backup & rename USO_UxBroker USO_UxBroker.backup & mkdir Reboot & mkdir Reboot_Battery & mkdir Reboot_AC & mkdir USO_UxBroker & copy NUL Reboot\empty_file & copy NUL Reboot_Battery\empty_file & copy NUL Reboot_AC\empty_file & copy NUL USO_UxBroker\empty_file

Backup solution if you get an access denied error:

cd C:\Windows\System32\Tasks\Microsoft\Windows && takeown /F UpdateOrchestrator /A /R /D y && icacls UpdateOrchestrator /reset /T /C && icacls UpdateOrchestrator /T /C /grant *S-1-5-32-544:F && cd UpdateOrchestrator && rename Reboot Reboot.backup & rename Reboot_Battery Reboot_Battery.backup & rename Reboot_AC Reboot_AC.backup & rename USO_UxBroker USO_UxBroker.backup & mkdir Reboot & mkdir Reboot_Battery & mkdir Reboot_AC & mkdir USO_UxBroker & copy NUL Reboot\empty_file & copy NUL Reboot_Battery\empty_file & copy NUL Reboot_AC\empty_file & copy NUL USO_UxBroker\empty_file

This last command does the same thing, but first gives Administrators ownership of and full permissions to the UpdateOrchestrator folder & contents.

2022 update:

It seems some of the old tasks are being phased out, resulting in "not found" error messages when running the command. These are safe to ignore, as the commands will still prevent reboots.


What it does

Automatic reboots after updates are performed by Windows Tasks, specifically one of Reboot, Reboot_AC, Reboot_Battery or USO_UxBroker. These tasks are defined in files in the C:\Windows\System32\Tasks\Microsoft\Windows\UpdateOrchestrator folder.

This solution renames these files and creates folders with the same names in their place. It then puts an empty file in each of the created folders.

This effectively deletes the tasks responsible for the auto-reboots, and prevents Windows from re-creating them.

Why it works

Windows can no longer run the Reboot, Reboot_AC, Reboot_Battery or USO_UxBroker tasks after an update because they no longer exist (except as backups with different names).

When this happens, Windows will attempt to fix the problem by re-creating (or fixing) the expected tasks (files), and then run them. However, Windows will fail to create the needed files because there's a folder with the same name in the target folder and two items in the same folder can't have the same name.

Moreover, since folders and files are different things, Windows will not be able to modify the folders into files containing the correct Task definitions.

Finally, because the command puts an empty file in each of the created folders, it's very unlikely that they will be automatically deleted (which is necessary to re-create the tasks). This is because deleting folders with contents requires a recursive delete command, which would never be used for deleting an object that Windows expects to be a file.

For these reasons, this solution is much more robust than those relying on changing file ownership/access and/or modifying the relevant tasks, something that can be (and frequently is) "fixed" by Windows during updates.

Sources & testing of the solution

I learned about the technique used in my solution from this article. I have been using this technique for several years and have not experienced a single auto-reboot in all this time except this January (2020) when Microsoft added the new Reboot_AC and Reboot_Battery tasks, which are now also used by Windows Update to initiate automatic restarts.

I have updated the solution myself to account for the new tasks, and it has successfully prevented reboots after the changes I've made.

Late 2020, the task USO_UxBroker was added to Windows. The task description (This task triggers a system reboot following update installation) confirms its purpose, so the solution now also neutralizes this task. Thanks to @Simon East for pointing out this task in the comments.

The entire answer, including the cmd commands, is my own original work.

Joakim
  • 311
  • 2
  • 6
  • Neat-o. But I'm guessing this doesn't prevent Winbugs from waking up at the middle of the night (and me, if I left MediaMonkey blaring) and staying on until I come back? – Chema May 14 '20 at 21:46
  • 1
    @Chema it does prevent waking actually, or at least it has for me :) I think waking is caused by the "Wake the computer to run this task" setting on the tasks, which become obsolete when Windows is unable to ever schedule the tasks to run. – Joakim May 15 '20 at 08:22
  • I suspect you never suspend your machine while music is playing, @Joakim. :) Mine keeps waking (me) up in the middle of the night. Syslog points to the 'UpdateOrchestrator\Universal Orchestrator Start' task. The task is scheduled for *three days ago*, and Wake computer up is *not selected*, so no idea why would it wake the PC tonight, or at all... but what else is new in Winbugs. I just disabled Wake timers in Advanced energy options > Sleep. Fingers crossed (and a playlist full of soft classical! ;) – Chema Jun 06 '20 at 07:18
  • A more complete solution here: https://superuser.com/questions/973009/ Sadly it seems I can't disable my laptop's keyboard or touchpad (nor USB mouse) from triggering wake ups, which has also happened while stored in a backpack. – Chema Jun 06 '20 at 07:33
  • Do you also need to nuke `USO_UxBroker` (in that same folder)? This seems to be the task that rebooted my computer a few minutes ago. – Simon E. Sep 14 '20 at 05:56
  • @SimonEast That task hasn't caused a reboot for me (yet?), but based on the task description it does seem like it also needs to be nuked. I updated the answer to mention it, and also nuked the task on my own systems. If you do decide to nuke it then I'd appreciate if you report back on the results :) – Joakim Sep 15 '20 at 08:23
  • In 2021, Reboot is no longer a thing. I am disabling USO_UxBroker as well. – GManNickG Apr 29 '21 at 18:24
12

I've made a PowerShell script that dynamically sets the Active Hours to prevent the unwanted restarts from Windows Updates based on this answer (https://superuser.com/a/1208866/351521). It sets these registry keys:

  • HKLM\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings\ActiveHoursStart

  • HKLM\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings\ActiveHoursEnd

  • HKLM\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings\IsActiveHoursEnabled

You can get it here: https://github.com/marcosbozzani/Win10ActiveHours

Suggestions and Pull Requests are welcomed!

Changes

  • Converted from Batch to PowerShell (easier to understand and maintain, in my opinion)

  • The script checks a range of hours instead of a single a hour (as suggested in the comments from that answer)

  • The script can install and uninstall the Scheduled task and set the appropriated settings and triggers

  • The script can execute the Scheduled task manually, if needed

  • Created a Github repository (easier to update and to accept changes)

General information

  • The task will be created at \Win10ActiveHours\Update

  • There are two Active Hours windows of 18 hours:

    • from 18:00 to 12:00
    • from 06:00 to 00:00
  • There are four triggers that will active the tasks and switch between the two windows:

    • at computer start up
    • at computer wake up
    • daily at 06:00
    • daily at 18:00
  • These are the settings for the task:

    • wake to run
    • start when available
    • don't stop on idle end
    • allow start if on batteries
    • don't stop if going on batteries

For more information see the README.md from the repository

Marcos
  • 289
  • 2
  • 8
  • "wake to run" - will this wake up the PC when sleeping? Many people don't want the PC waking up "by itself". I understand Windows might wake up by the update/reboot task, so this might be necessary, but please consider it. Maybe just add a note. – David Balažic Aug 11 '21 at 08:06
  • 1
    Excellent script that worked without an issue for me for all these years. On my new PC I installed it with the following one-liner in the admin powershell window: `powershell -Command { Invoke-RestMethod https://raw.githubusercontent.com/marcosbozzani/Win10ActiveHours/7a214576ee2681c3e677b6c017429934a2c8c7d2/setup.ps1 | Invoke-Expression }`. The "subshell" is needed because setup.ps1 `exit`s when finished. – Nickolay Nov 30 '22 at 14:54
5

Windows 10 rebuild his Windows Update Policies adding some diferences between previous versions.

Windows Update will force updates even if windows update service is off, that apply to Home users, since some update requires a mandatory restart, restart scheduler can't be turned off.

That don't mean you can not block the updates, maybe you could do a workarround as block updates servers, but that could be very annoying asuming you have hundred of methods to do that in whole internet.

A Newspaper with Reference Here

Updates. The software periodically checks for system and app updates, and downloads and installs them for you. You may obtain updates only from Microsoft or authorized sources, and Microsoft may need to update your system to provide you with those updates. By accepting this agreement, you agree to receive these types of automatic updates without any additional notice.

Source Windows 10 EULA

Some information about Windows Update for Business explaining the diferences between home users and advantages of enterprise update Here

Francisco Tapia
  • 2,614
  • 4
  • 24
  • 43
  • Should have specified I'm using "Pro" edition. – mpen Aug 27 '15 at 18:52
  • 17
    Updating is usually not a problem, rebooting and destroying a user's work is. But who needs a user nowadays? – Michael Jaros Sep 30 '16 at 20:05
  • 2
    This answer is dead wrong. Disabling the Windows Update service ABSOLUTELY SOLVES THE PROBLEM. It's the only way to solve the problem. It's been months since I've disabled it, and my computer has never tried to restart itself. Don't just "stop" the service... stop and set it to "disabled". Problem solved. Enable it when you feel like installing updates. Rewriting the guts of your computer and killing all your work has NO BUSINESS being anything other than 100% manual operation. What Microsoft has done in Windows 10 is ******** disgusting and infuriating. – Triynko Jan 10 '17 at 03:42
  • 1
    Even when it's marked disabled, Microsoft still runs the parent svchost netsvcs wrapper and can start up and run windows updates on you. – Warren P Jan 24 '17 at 13:07
  • 1
    27 June 2017 - been using this for nearly two months and still no forced updates. – Mick Jun 27 '17 at 15:59
  • 2
    My problem is, I want to have the cake and eat it. I *do* want updates, but I *don't* want forced automatic reboots that close all my apps and destroy my work. – Stijn de Witt May 15 '20 at 09:06
5

It seems like "No auto-restart with logged on users for scheduled automatic updates installations" doesn't work currently with Windows 10, but according to this article on Lifehacker.com (http://lifehacker.com/enable-metered-connection-to-delay-windows-10-updates-1723316525), enabling metered connections in Windows 10 might stop or at least further delay Windows Updates.

Windows 10 comes with a feature that allows you to specify that your internet connection is capped, throttled, or handicapped in some way. You may be tethering to your phone, on a public Wi-Fi network, or just have a crappy data cap on your home network. By enabling “Metered connection,” Microsoft will respect that by waiting to force a download. To turn it on, follow these steps:

  1. Search in the start menu for “Change Wi-Fi settings”
  2. Click Advanced Options.
  3. Enable the toggle under “Metered connection.”

The one major downside to this method is that it only works if your computer is connected via Wi-Fi. For some reason, Windows 10 doesn’t allow you to specify that your connection is metered when connected via ethernet (despite the fact that many home internet connections have data caps). However, this should help many typical users.

Marc NJ
  • 175
  • 3
  • 9
  • 3
    Just disable the service altogether. Disabling windows update is the only solution. As far as I'm concerned and as a matter of actual fact, Windows Update's automatic restarts have caused more destruction of work and more agony in 2 months than any virus or malware I've ever encountered in the past 20 years combined. DISABLE THE WINDOWS UPDATE SERVICE. PROBLEM SOLVED. – Triynko Jan 10 '17 at 03:46
  • @Triynko I hope you've changed your mind now that WanaCrypt0r has made its appearance. In any case, it's been less than 20 years since [SQL Slammer](https://en.wikipedia.org/wiki/SQL_Slammer) took down tens of thousands of systems, and Microsoft had released a patch fixing that problem *6 months prior to that worm's release*. – I say Reinstate Monica May 13 '17 at 19:10
4

According to this answer, two actions are both required to disable forced reboot while the user is logged-on. The answer is based on an article (in Italian).

The two required settings are :

  1. Set the registry item NoAutoRebootWithLoggedOnUsers
  2. Set the policy of Configure Automatic Updates policy

I do not have the capability to test it in all Windows versions, nor can I guarantee that it will still work tomorrow. But here is how to set these two settings.

Disable forced restarts after updates (registry)

This registry modification will disable forced restarts as long as some user(s) are logged-in.

  1. Click Win+R, type regedit, and hit Enter
  2. Navigate to the key
    HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU
  3. If either WindowsUpdate or its subkey AU do not exist, create them manually by right-click on the right-hand panel, then New -> Key, type the missing key name and press Enter.
  4. Once positioned into the AU key, right-click in the right-hand panel, select New and then DWORD (32-bit).
  5. Type NoAutoRebootWithLoggedOnUsers and press Enter
  6. Double-click on the item, change its value to 1 and press OK.

image1 image2

Modify Windows Update settings (Local Group Policy)

  1. Press Win+R, type gpedit.msc, and hit Enter.
  2. Navigate to Computer Configuration -> Administrative Templates -> Windows Components -> Windows Update.
  3. Locate the Configure Automatic Updates policy on the right pane and double-click it.
  4. Select Enabled and Options to 2 (Notify for download and notify for install).
  5. Click Apply.
  6. Press OK to save the changes.

Finally, reboot the PC.

enter image description here

Note about Windows 10 Enterprise

I am running Windows 10 Enterprise with deferred updates. For what it may help, here are my registry settings from HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU :

enter image description here

And in the Local Group Policy Editor, Configure Automatic Updates is set to Enabled with Option set to 2.

harrymc
  • 455,459
  • 31
  • 526
  • 924
4

Disabling Windows Updates in Windows 10 Natively

**** No third party software required for this method ****

For more control ensuring that Windows Update operations only apply to your Windows 10 OS when you want them to, see the below steps using two scripts and one scheduled task job.

This method will work regardless of any scheduled tasks or other processes that kick off Windows Update if it's setup correctly and the job is enabled and running at short enough intervals.

Essentially this will

  1. Check once a minute to see if the Windows Update service is running and take one of the two below actions whether TRUE or FALSE. . .
    • if it is running, then the service is forcefully stopped with NET STOP ensuring that no Windows Updates are applied
    • if it is not running, then the process ends until executed on the next scheduled trigger with Task Scheduler

You will need to do three things to ensure this works as expected

  1. create the simple Batch Script that'll check if Windows Update is running and kill it if it is
    • this is just a text document renamed with a .cmd file extension
  2. create the simple VB Script that'll execute the batch script but in a hidden manner so there's not a pop up every time it runs
    • this is just a text document renamed with a .vbs file extension
  3. create the scheduled task to run once a minute indefinitely with Windows Task Scheduler

Setup and Configuration

Below are the detailed steps to follow for setting up these three simple things.

1. Batch Script

NOTE: Save the below logic to a text file and rename to have an extension of .cmd e.g . DisableWU.cmd.

@ECHO OFF

TASKLIST /SVC | FINDSTR /I /C:"wuauserv"
IF %ERRORLEVEL%==0 GOTO :StopWUService
GOTO :EOF

:StopWUService
FOR %%A IN (wuauserv) DO NET STOP /Y "%%~A"
GOTO :EOF

2. VBS Script

NOTE: Save the below logic to a text file and rename to have an extension of .vbs e.g . DisableWUHidden.vbs. Also be sure that you put the correct full path and file name value where the batch file is saved in place of the C:\FolderPath\DisableWU.cmd value in the below logic accordingly.

Set WinScriptHost = CreateObject("WScript.Shell")
WinScriptHost.Run Chr(34) & "C:\FolderPath\DisableWU.cmd" & Chr(34), 0
Set WinScriptHost = Nothing

3. Task Scheduler Job

Press enter image description here + R, type in taskschd.msc and press Enter. Right-click on the Task Scheduler Library option in the right pane and then select the Create Task option.

From the General tab be sure the Run whether user is logged on or not and Run with highest privileges options are checked so both are enabled and effective.

enter image description here

From the Triggers tab be sure the Daily option is set with Recur every: 1 days and check the Repeat task every 1 minute for a duration of 1 day is set and specified and that the Enabled option is checked.

enter image description here

From the Actions tab be sure Program\script: points to the full explicit path of the VB Script, and be sure the Start in (optional): points to the folder path only where that same VB Script resides.

enter image description here

To finalize and save, press OK (maybe twice), and then type in the username and password credential information from an account that (1. has permissions to run Task Scheduler tasks, and (2. has execute and read access to the location where you saved the scripts it'll execute.


Confirming it Works

For a quick test to confirm this works as expected you can:

  • Press enter image description here + R, type in services.msc and press Enter
  • Scroll down to Windows Update, right click on it and select Start until you see the status go to Running
  • Now just press F5 every so many seconds to refresh the screen to see if the service status changes
    • Eventually you should see the status change to a Blank/Null/Empty/Nothing indicating the service is not running. If you refresh in the middle of a stop operation, you may notice a status value of Stopping for the service

This means whether you start Windows Update, a scheduled task starts it, or whatever other process(es) start it, it will be killed every 60 seconds if it is running when this job is enabled and running. This helps ensure Windows Update operations never have sufficient time to ever complete a download or install of any update.

Note: The scheduled interval can easily be adjusted to run more frequently than 60 seconds if that's not quick enough in some instances.


To Disable

You should apply Windows Updates periodically though at your regular scheduled maintenance intervals to ensure your system is up to date with the latest security patches and so forth. This is not a method intended to totally never apply Windows Updates as these are critical and necessary in many environments so this is intended to just give you better control to choose when you want to apply these updates in your environment.

To disable this process to allow you to manually install Windows Updates when you're ready, you will simply go to the job you scheduled with Task Scheduler, right-click it, and select the Disable option to disable the job and thus preventing the killing of the Windows Updates service.

enter image description here

Once disabled, just run through the motions of applying Windows Updates manually to patch the OS. Once the updates are applied and your power cycles are complete if applicable, simplly Enable the job for it to start running again.


Further Resources

Vomit IT - Chunky Mess Style
  • 40,038
  • 27
  • 84
  • 117
  • Seems to have stopped working? I can stop the service manually, but running the batch file/vbs did not do anything when WU was running. But I doubt WU has changed name to fail the name match? – Sir Adelaide Nov 22 '19 at 03:07
  • @SirAdelaide What version of Windows 10 are you running? 1903, 1909, or what? – Vomit IT - Chunky Mess Style Nov 22 '19 at 04:31
  • 1803 Win 10 Pro. I've got a problem where the update to 1903 etc fails, but Windows likes to keep trying and I get too many reboots, thus why I'm reading this page – Sir Adelaide Nov 22 '19 at 06:02
  • @SirAdelaide Try updating via https://www.microsoft.com/en-us/software-download/windows10 using this method or the media installation tool if it's failing. You might manually stop the Windows Update service via the `services.msc` interface, delete the `C:\Windows\SoftwareDistribution` folder, and then run the update to 1903 manually via the link. I've not went from 1803 to 1909 personally but I "think: you have to go to 1903 before you can go to 1909 if that's what you want to do ultimately. Is the PC in a domain with group policies by chance? Good luck regardless. – Vomit IT - Chunky Mess Style Nov 22 '19 at 11:42
4

Canonical Answer for Clearer Guidance

There seems to be two reason people come to this post for an answer to...

  1. How do I entirely disable Windows Updates so it never runs.
  2. How do I control when Windows reboots after Windows Updates are applied

Since there are so many answers for this post and a Canonical Answer was requested per a bounty, I figured I'd take a stab at giving a little more clear guidance for the task at hand per the answers from this post.

Note: It's possible that Microsoft releases updates that change the way this correlated functionality works, so if you apply such updates, then these processes may not work as expected afterwards.


#1 Disable Windows Updates entirely

Warning

As stated in the "Stop Windows 10 from automatically updating your PC" post. . .

"As a general rule, an up-to-date operating system is a secure operating system. Windows 10 automatically checks for, downloads and installs new updates to your PC -- whether you like it or not. This new feature is actually pretty convenient for most users, but not everyone wants their operating system updated on Microsoft's schedule."

source

To disable Windows Updates entirely you can follow the instructions from two specific answers on this post linked just below as #1 and #2 and perform the operations specified in both but #1 at a minimum or #1 and #2 for extra thoroughness.

  1. Disabling Windows Updates in Windows 10 Natively

  2. Turn off Windows Updates in Windows 10 and Disabling Task Scheduler Jobs

    • For this answer, in the Disabling Task Scheduler Jobs section where the scheduled tasks within the /Microsoft/Windows/Windows Updates container, it might be worth disabling all those jobs in there for complete thoroughness.

#2 Control when Windows reboots after Windows Updates install

Warning

Please note that rebooting may be required before any newly patched vulnerability becomes effective so you need to understand this and still routinely reboot when patches are applied in a somewhat timely manner to ensure your system stays secure.

There seems to be at least two answer that work best here for most people so I'll start with the Windows native solution and then tell you about the 3rd party solution.

To control when Windows reboots post Windows Update installs you can follow the instructions from either of these two answers on this post. . .

  1. Windows Native: Controlling when Windows will Reboot after Windows Updates apply
  2. 3rd Party App: Windows 10 Reboot Blocker

Vomit IT - Chunky Mess Style
  • 40,038
  • 27
  • 84
  • 117
4

Third-party products

As Windows rules and methods change and no method works forever, here are some free third-party products that will postpone shutdown (and more). They may use the Windows API which allows any program to veto an impending shutdown or disable Windows system services.

Windows Update Blocker

A portable freeware that helps to completely disable or enable Automatic Updates on Windows with one button click. It does a good job of disabling Windows Update system services, including the unstoppable Windows Update Medic Service.

Don’t Sleep

A small program that can block various Windows events from the traybar, only recently updated on January 2019.

enter image description here

ShutdownGuard

An older program that sits in the system tray and prevents Windows from shutting down, rebooting or logging off. There are a few options available in the tray menu such as hiding the tray icon, disabling the program temporarily and forcing a shutdown, and a few other configuration settings are available in an .ini file which can be edited with Notepad.

enter image description here

Shut It!

Shut It! can monitor and block shutdowns and restarts etc, but also it can do so in view of the currently executing application processes or windows and perform a different action for those that match.

It's only available for download from third-party websites.

enter image description here

Source:

4 Tools to Prevent, Cancel and Abort a Windows System Shutdown or Restart when Applications are Running

harrymc
  • 455,459
  • 31
  • 526
  • 924
2

If you absolutely must not allow your system to reboot due to Windows Updates without it being "controlled" when you are present, schedule down time for maintenance, or whatever the case, then you could disable the Windows Update service.

Manually Controlling Windows Updates

This would mean that this machine would not get critical security updates, etc. unless you re-enable and then manually download, install, reboot, etc. and then disable once the patching is complete.

WARNING: This could be dangerous and is not recommended and especially in a home network environment. In a business or data center environment though, it is normal for companies to control when they will make changes, install security updates, patch OSes, and so on.

Turn off Windows Updates in Windows 10

You can do this using the Windows Update service. Via Control Panel > Administrative Tools, you can access Services. In the Services window, scroll down to Windows Update and turn off the process. To turn it off, right-click on the process, click on Properties and select Disabled. That will take care of Windows Updates not being installed on your machine.

enter image description here

But since Windows is a Service now onwards, you have to keep your computer updated. To be able to install the next set of features or a newer build, you will require the earlier updates to be installed. That’s why if you use the above workaround, you will have to go to the Services and turn it on once in a while to download and update your copy of Windows.

Manually Starting Windows Updates and Running it

After you turn on the Windows Update service, when you open Windows Update in PC Settings, you will see a message that updates were not installed because computer was stopped. You will have to click on Retry so that all the available updates are downloaded and installed. This may take two or three “Check for Updates”. You will have to keep on clicking “Check for updates” until it says your computer is up to date. Then you can go back and turn off the Windows Update service until next time you feel you are free enough to spend time updating your copy of Windows 10.

source


Disabling Task Scheduler Jobs

It seems that there are some scheduled tasks related to Windows Update scheduled to trigger Windows Updates perhaps.

Press enter image description here + R, type in taskschd.msc and press Enter. Navigate to Task Scheduler Library > Microsoft > Windows > WindowsUpdates, and then right click and select the Disable option for the job named Scheduled Start.

enter image description here


Further Resources

Vomit IT - Chunky Mess Style
  • 40,038
  • 27
  • 84
  • 117
2

Update: After testing, my previous solution failed to be effective. Microsoft seems to have implemented features that prevent even it from working.

My final solution was to use a utility called StopUpdates10. It combines all of the techniques I've read about over the last few months, notably multiple registry changes and the disabling of multiple services—rather than just the couple that keep being mentioned but which don't work on their own.


Up until last night, I had prevented my computer (which hosts services requiring it to be on 24/7 unless I specifically scheduled downtime) from automatically applying updates and rebooting. I had done this by disabling the Windows Update service—one of the answers here.

This morning, I discovered that it had rebooted automatically and that the Windows Update service had been re-enabled. This is not behaviour that Windows 10 has ever exhibited for me before. I can only assume that something has changed in 2018, and that Microsoft has rolled out an update this year (which I would have applied when manually updating my system) that re-enables the Windows Update service even if you've disabled it.

I have since disabled the Windows Update service once more—but now also removed all inherited permissions from HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wuauserv, and given only myself anything other than read-only access to it.

In addition, I have taken ownership of C:\Windows\System32\sihclient.exe (the binary responsible for background updates), removed all permissions to it aside from myself, and renamed it.

I will not know if this is successful (one or the other or both) until one or more months have passed.

Jason Bassford
  • 282
  • 2
  • 9
  • @PimpJuiceIT I'll think about that once I can verify if my solution is actually effective. :) Unfortunately, unless somebody has definitive information on this, it's now just a waiting game. – Jason Bassford May 29 '18 at 19:03
  • 2
    Hey, Jason, welcome to the site. This is interesting information, but maybe premature for an answer. It might be better to wait until you confirm that it works. – fixer1234 May 29 '18 at 22:36
2

A simple option is to set active hours outside your working hours. enter image description here

Windows now only has a 6-hour window to reboot and I'm actively working during that time so it will ask me.

Bradley Hayes
  • 1,233
  • 8
  • 10
2

OK, so this is an old thread but I found nothing working for Windows 10 20H2.

It appears that in Windows 10 20H2 two scheduled tasks are created in \Microsoft\Windows\UpdateOrchestrator\, named Reboot_AC and Reboot_Battery.
When there are no pending reboots, the tasks have a start date in the past and are set to Disabled.

These tasks can only be edited by System, but when you do attempt that, you are prompted for a password when saving.

So I created a task in Task Scheduler, that runs every minute and calls a small PowerShell script that for each scheduled Reboot_* task, replaces the trigger with a new one with a start date 7 days in the future and disables the task nonetheless.

Note that this does not disable any reboot notifications.
Also, I use this in conjunction with Active Hours so that it is most likely a reboot is scheduled somewhere in the future.

Powershell file PostponeWindowsUpdateReboot.ps1:

$TaskPath = '\Microsoft\Windows\UpdateOrchestrator\'
$NewTrigger = New-ScheduledTaskTrigger -At ([DateTime]::Now.AddDays(7)) -Once
'Reboot_AC', 'Reboot_Battery' | ForEach-Object {
  Set-ScheduledTask -TaskName $_ -TaskPath $TaskPath -Trigger $NewTrigger
  Disable-ScheduledTask -TaskName $_ -TaskPath $TaskPath
}

The scheduled task that disables both Reboot_* tasks must run as System and set to run with highest privileges.
This is an XML dump of it (assuming that the script is named D:\tools\PostponeWindowsUpdateReboot.ps1):

<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Date>2021-05-03T12:46:10.9447093</Date>
    <Author>PC\eelco</Author>
    <URI>\PostponeWindowsUpdateReboot</URI>
  </RegistrationInfo>
  <Triggers>
    <CalendarTrigger>
      <Repetition>
        <Interval>PT1M</Interval>
        <Duration>P1D</Duration>
        <StopAtDurationEnd>false</StopAtDurationEnd>
      </Repetition>
      <StartBoundary>2021-05-03T00:00:00</StartBoundary>
      <ExecutionTimeLimit>PT30M</ExecutionTimeLimit>
      <Enabled>true</Enabled>
      <ScheduleByDay>
        <DaysInterval>1</DaysInterval>
      </ScheduleByDay>
    </CalendarTrigger>
  </Triggers>
  <Principals>
    <Principal id="Author">
      <UserId>S-1-5-18</UserId>
      <RunLevel>HighestAvailable</RunLevel>
    </Principal>
  </Principals>
  <Settings>
    <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
    <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
    <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
    <AllowHardTerminate>true</AllowHardTerminate>
    <StartWhenAvailable>true</StartWhenAvailable>
    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
    <IdleSettings>
      <StopOnIdleEnd>true</StopOnIdleEnd>
      <RestartOnIdle>false</RestartOnIdle>
    </IdleSettings>
    <AllowStartOnDemand>true</AllowStartOnDemand>
    <Enabled>true</Enabled>
    <Hidden>false</Hidden>
    <RunOnlyIfIdle>false</RunOnlyIfIdle>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>PT72H</ExecutionTimeLimit>
    <Priority>7</Priority>
  </Settings>
  <Actions Context="Author">
    <Exec>
      <Command>powershell.exe</Command>
      <Arguments>-File D:\tools\PostponeWindowsUpdateReboot.ps1</Arguments>
    </Exec>
  </Actions>
</Task>

I am currently still testing if the tasks ever get a new trigger assigned when new updates are received, and if an interval of 1 minute is sufficient (or overkill).

Hope this helps anybody searching to tame Windows Update.

Eelco L.
  • 201
  • 1
  • 2
2

Most of the answers here are rather old now and I wanted to have a "clean" solution that doesn't involve renaming system files or running background tasks. The latter might also not work when putting the system to sleep, as I often do at night when I go to sleep, but want to keep the system state/continue with my work the next day. Disabling Windows Update completely is also not wanted.

After about two hours of research, reading up on multiple ways, I tried and came up with the following solution, for the "Pro" Edition:

  1. Open the group policy editor (gpedit.msc)
  2. Navigate to Administrative Templates -> Windows Components -> Windows Update
  3. Set "Enabling Windows Update Power Management to automatically wake up the system to install scheduled updates" to Disabled
  4. Set "No auto-restart with logged on users for scheduled automatic update installations" to Enabled
  5. Open the CMD and execute gpupdate /force

That's it! The changes are immediately effective and you can put your system to sleep safely if there was a restart pending already - Windows should keep your system in sleep mode and will not automatically restart if you leave it running, as one would expect.

I researched and applied these settings back in November 2021 and wanted to put them to the test before posting - so far I haven't had (these) troubles with Windows updates anymore and I've had a few pending restarts since then and uptimes of up to ~2 weeks. At least on Windows 10 Pro Version 21H1 that is; things might change in the future/with newer versions again.


Further background on why I didn't use solution X

  • Change the "Configure Automatic Updates" setting:
    As of my Windows version, option 3 seems to be the default (unconfigured state though) and it's already not working as described, so I skipped it first. I might give it a try in the future, though; maybe it does differ from the default behaviour and works as described.
  • Disabling or Renaming/removing the reboot task(s):
    Not a fan of tampering with system files and potentially making my system less stable honestly, but I did give it a try to change properties and disable the tasks, but that did not do anything. I think I also tried renaming the task files, but that also didn't work, not sure now though. Maybe these changes require a restart to have an effect? (couldn't do that back then)
    Also, this is prone to be changed every now and then by Windows and has so already (more tasks than one).
  • Background task updating active hours:
    Primarily I don't think this will work when the system is put to sleep (haven't tried though). And while clever, it feels a bit hacky and is again not something I'd like to do when there are alternatives.

Some sources I used (maybe additionally helpful), besides this question:
https://superuser.com/a/973029/457901
https://www.itechtics.com/disable-automatic-restart/

Dennis98
  • 51
  • 2