How to disable Windows 11 automatic reboots?

Anonymous
2024-02-18T11:19:20+00:00

Hi,

I have browsed this forum but found so far no real solution:

It has happened to my now several times that I was running tasks over extended periods of time only to come back to my PC the next morning to find Windows 11 had done an automatic reboot! So not only the tasks weren't finished, worse, lots of preparatory work was lost!

I don't want Windows to ever automatically reboot after an update. Never. Ever. Period. I want to be informed about updates, that's fine, and I keep Windows 11 up to date, but under no circumstances ever is it acceptable that Windows just shovels an update on my PC and disrupts overnight tasks and REBOOTS(!) my PC all by itself.

So it would be very helpful if somebody could tell me how to disable these automatic update reboots once and for all. I don't want to "pause" Updates (I absolutely want updates, I just want to control myself when the updates are done) and resetting "work hours" is of no use unless I can set it to 24 hours.

Best regards

Nick

Windows for home | Windows 11 | Windows update

Locked Question. This question was migrated from the Microsoft Support Community. You can vote on whether it's helpful, but you can't add comments or replies or follow the question.

0 comments No comments

84 answers

Sort by: Oldest
  1. Anonymous
    2024-06-27T13:00:02+00:00

    Hello,

    I would like to implement this fix above, but I don't know how to make a batch command file. Could you provide a little more guidance on how to do the above fix? The auto-restarting is driving me crazy and making me lose lots of work.

    Thank you,

    Josh

    Was this answer helpful?

    0 comments No comments
  2. Anonymous
    2024-06-27T18:31:55+00:00

    Do this:

    Open you notepad and past the code below:


    for /f "tokens=1 delims=:" %%a in ('time/t') do set currentHour=%%a

    if %currentHour% gtr 17 goto after6pm
    if %currentHour% gtr 5 goto after6am

    set /a startHour = %currentHour%+18
    set /a endHour = %currentHour%+6
    goto SetActiveHours

    :after6pm
    set /a startHour = %currentHour%-6
    set /a endHour = %currentHour%-18
    goto SetActiveHours

    :after6am
    set /a startHour = %currentHour%-6
    set /a endHour = %currentHour%+6

    :SetActiveHours

    set "activeHours=%startHour%,%endHour%"

    reg add "HKLM\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" /v ActiveHoursStart /t REG_DWORD /d %startHour% /f
    reg add "HKLM\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" /v ActiveHoursEnd /t REG_DWORD /d %endHour% /f


    save the notepad as noreboot.bat in some place, like c:/windows/

    open the task scheduler : press the windows key + R at the same time and in the prompt type:

    taskschd.msc

    this will open the task scheduler

    in the right panel click in create task

    name it as you will in the Gerneral tab

    In the Triggers tab create a new one with the contents below:

    Daily, repeat task every 1 hour for duration at: 1 day

    in Actions click in new with the action Start a program and in the browse locate your previous saved bat file, in this example, noreboot.bat.

    ok for all and there you have a task changing your work hours every hour.

    Was this answer helpful?

    4 people found this answer helpful.
    0 comments No comments
  3. Anonymous
    2024-06-27T20:42:21+00:00

    Thank you so much!

    Now if I want to manually update windows, will this new task I have created allow me to do that? Just go into update and select the update when I am ready?

    Best,

    Josh

    Was this answer helpful?

    0 comments No comments
  4. Anonymous
    2024-06-27T22:08:35+00:00

    In fact, windows will continue to update, however, it will not restart your computer without warning.

    The task only keep windows has it in working hours, no restarting without warning.

    Was this answer helpful?

    0 comments No comments
  5. Anonymous
    2024-06-28T09:46:44+00:00

    I made the batch file shorter (BTW: I am the the original author of this fix. I can't get into my old username )

    for /f %%i in ('powershell "((get-date).Hour+18) %% 24"') do set startHour=%%i
    for /f %%i in ('powershell "((get-date).Hour+12) %% 24"') do set endHour=%%i
     
    reg add HKLM\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings /v ActiveHoursStart /t REG_DWORD /d %startHour% /f 
    reg add HKLM\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings /v ActiveHoursEnd /t REG_DWORD /d %endHour% /f
    

    Was this answer helpful?

    3 people found this answer helpful.
    0 comments No comments