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
- 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
- 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
- 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
- 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 + 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.
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.
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.
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 +
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.
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
51The "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 – 2016-08-19T16:02:49.953
4
There is another effective solution here: https://justpaste.it/HowDisableWindows10Update
– Rob – 2016-08-25T05:54:14.610I found a utility called shutdownguard - but I haven't tried it yet => https://shutdownguard.en.softonic.com/
– Mick – 2016-11-14T14:56:20.207@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 – 2016-12-20T20:56:07.267
1A 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 – 2016-12-21T15:51:09.683
1Epic fail. The only solution is to disable the windows update service entirely. I disabled it. Problem solved. – Triynko – 2017-01-10T03:37:55.533
23Even 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 with Monica – 2017-01-13T10:02:02.047
7Sadly 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 – 2018-01-24T15:23:52.737
2So what is the accepted answer in 2018? no time to try all the elaborate approaches – prusswan – 2018-05-10T04:41:03.023
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 – 2018-05-10T17:40:20.523
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 – 2019-02-25T14:40:27.253
@prusswan: The accepted answer "Windows 10 Reboot Blocker" still works to this day - May 2019 – Mick – 2019-05-14T19:00:15.057