Feature Request: Delay when the quality and optional updates are installed

garlin I just want to delay the quality updates for 7 days and feature updates for 365 days....Hellbovine's guide doesn't show how to do that (it pause all updates for 4 years with a specific start and end time).
 
This requires a script anyway, because you're expecting a date calculation based on when Windows got installed.

Copy this to a PS script, and run from Post-Setup (Before logon):
Code:
$PauseUpdate_Days = 7
$PauseFeatureUpdate_Days = 365

Set-ItemProperty 'HKLM:\Software\Microsoft\WindowsUpdate\UX\Settings' -Name FlightSettingsMaxPauseDays -Value $PauseUpdate_Days -Force

[string]$StartDate = Get-Date -Format "yyyy-MM-ddTHH:mm:ssZ"
[string]$EndDate = Get-Date (Get-Date).AddDays($PauseFeatureUpdate_Days) -Format "yyyy-MM-ddTHH:mm:ssZ"

Set-ItemProperty 'HKLM:\Software\Microsoft\WindowsUpdate\UX\Settings' -Name PauseFeatureUpdatesStartTime -Type String -Value $StartDate -Force
Set-ItemProperty 'HKLM:\Software\Microsoft\WindowsUpdate\UX\Settings' -Name PauseFeatureUpdatesEndTime -Type String -Value $EndDate -Force
 
garlin Thanks....is there a method to confirm that it is working after running the script ?
also, I think this script will conflict with a registry tweak I already applied in the preset that enables deferring updates for up to 20 years from windows updates settings UI:

Windows Registry Editor Version 5.00

; Set max days to pause Windows Updates to 20 years
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings]
"FlightSettingsMaxPauseDays"=dword:00001c84

can we do both ? I mean the ability to pause updates for 20 years from the UI + delaying quality updates for 7 days and feature updates for a year? if this complicate things I can give up on the registry tweak...I just like being able to stop updates altogether for a long time when I feel like it.
 
Last edited:
Hellbovine can correct me, if I'm wrong.

FlightSettingsMaxPauseDays is reserved as the default delay value when you manually change Settings. When you select it, EndDate changes to [current time] + [FlightSettingsMaxPauseDays]. So if you keep playing with it, the EndDate keeps shifting forward into the future as your local time changes.

The other settings instruct WU to internally stop updates for a fixed time interval, even if you never opened up Settings.
 
I learned the hard way many times that this is a tricky discussion, because there's a dozen hidden agendas that typically fuel Windows Update questions and they're all likely to be XY scenarios, plus the answer changes drastically depending on which goal is being chased. To be certain of the true intent, some clarification is needed. AsadAlrafidain, you made this a suggestion thread, which prompts my first questions.

1) Are you using this group policy right now, and have you actually confirmed if it works as intended?

2) Are you asking NTLite to simply add that one registry key as a "Settings" tweak inside the tool, so users don't have to integrate a registry file? Or, is it more accurate to say that you are trying to ask Nuhi and/or forum members to help you figure out how to split Windows Update so that you can pause Quality Updates for a short time, but pause Feature Updates for a long time, because you don't currently know how?

Note: For forum searches and readers that aren't logged in (cannot read screenshots), the thread author posted a screenshot of a group policy tweak that toggles, "Select when Quality Updates are received."
 
Last edited:
Hellbovine to answer your questions:

1) yes I've been using these policies for more than a year now...and as far as I can tell, they are working properly.

2) from my understanding, , the full "pause windows updates" registry tweak ( which I personally used for a while) achieve different goals from my current need.

what I need now is to find an easy method (whether using a registry tweak or scripting) that can be embedded within a NTLite preset, with the purpose of splitting Windows Update so that you can delay Quality Updates for a short time, but delay Feature Updates for a long time + being able to pause all updates altogether from the UI for extended times (more than the default 5 weeks)...I already achieved this configuration using a registry tweak for the UI to display extended pausing periods + modifying group policy settings (for delaying updates), but done the later after installing windows

it would be nice to implement this in NTLite settings, but as long as I can use other easy methods to achieve this, it's fine for me.

if combining the delaying + the UI extended pausing options can not be automated, then I'm fine with sticking to garlin's script for delaying updates, and dropping the UI tweak if it conflict with the script
 
Last edited:
You won't properly do this from a NTLite setting. Only the FlightSettingsMaxPauseDays value is expressed as an integer which is applied relative to the current time. The other values are absolute date ranges.

Once they're written to the image, if you don't immediately install the ISO right after creating it, then you're losing days from the expressed range. What started as 365 days, will become 364 or 363 days because it's an absolute end date (not relative to install time).

In Hellbovine's case, if you really want to delay updates indefinitely (or close to it), you select a future date so far out that the difference in time between you creating/installing Windows is so small you won't notice. But your intended time period is much shorter. Maybe you don't care it's really now 364 or 363 days left, but the guiding principle is it's a poor way to solve the problem.

NTLite can obviously do the date math, but after it's integrated into the image, it can't be readjusted automatically. Which is why a script is required.
 
I found that I can Import these policies by transferring a hidden folder "GroupPolicy" from system32 to the mounted image using explore mounted image....the problem is that this method transfers all modified group policy settings, and can transfer "unwanted" changes.
 
Last edited:
The GPO policy files are basically a modified form of the registry (different storage format). They're not friendly for exporting individual policies, therefore most users use the direct reg keys they create when a policy is applied to Windows. Same result, just not enforced as a policy.

Having a real GPO policy is unnecessary unless you're afraid of something changing the downstream reg values on you.
 
...I've been using these policies for more than a year now...and as far as I can tell, they are working properly...
If that's the case, there's no need to complicate things with a script or any other methods. All you need is for someone to help you extract the registry keys that are relevant to the group policy toggle from your screenshot, then add that to your other registry files to integrate.

The group policy interface, same as most toggles found throughout all Windows interfaces, are really just adding, deleting, or modifying a registry key silently in the background the moment you click between "Enabled" and "Disabled" or whatever it's labeled as. For example, if I click the "Pause updates for 7 more days" option in Windows Update interface, it's simply changes registry tweaks in Regedit so I don't have to.

In other words, interfaces, tools, and scripts, try to automate and cover up the two million lines of registry, so that people don't get confused and break things in there. Interfaces are also visually appealing, while Regedit is hard on the eyes and has a huge learning curve. There's some buttons that aren't handled by registry tweaks, but more often than not it's just a basic registry key without any magic.

You may not realize it, but if you search your current registry files that you made your image with, you are actually using group policy keys in there already. I saw them when I helped you rebuild your image a while back, so just search for \Policies\ to find them.

...the full "pause windows updates" registry tweak...achieve different goals from my current need...
Correct. My guide pauses Security/Quality and Feature updates for up to as long as the user wants, if they adjust the values accordingly, and stops Driver updates permanently. That's not what you want though, so my guide isn't directly relevant to your question.

If you still want to combine my guide with your group policy tweaks that should work, and whenever you manually unpause Windows Update through its interface, it should start relying on this thread's group policies to defer Quality Updates by 7 days and Feature Updates by 365 days. My guide's tweaks will mostly be inactive during this time, so it's up to the group policies to do their job. I won't be testing any group policy tweaks to verify this theory, especially since most of those don't work on Home edition, so it's up to you.

When you manually pause Windows Update again, it will automatically adjust the timestamps and allow the selection of a date that is up to 4 years away from the time you are manually pausing Windows Update, meaning you never have to use scripts or manually alter timestamps. There's no need to worry about the dates set in my guide as far as this thread's question is concerned--it's totally unrelated.

Keep in mind, the reason I didn't go this route in my pausing guide, is because users still have to do some form of a "Host refresh" with their presets in NTLite after every time they allow updates to get installed, plus they need to reapply every one of my registry files. It's too much maintenance work, so myself and many others would rather just pause everything forever and then download the latest ISO that has all the updates already baked in by Microsoft, and reinstall Windows at the start of each year, with future updates paused forever out of the box again.

...what I need now is to find an easy method...that can be embedded within a NTLite preset...
That's your true question and what you should have asked in the 1st post, since it would have led to a solution by the 2nd post, instead of getting there on the 12th, and that's why I clarified things earlier. It's more efficient when people are upfront about their goals, then we know exactly what the problem is and where to go. There's three main methods to extract a registry key and they are briefly explained below.

1) Use a registry snapshot tool, such as RegistryChangesView by Nirsoft, to take a before and after comparison of the registry while toggling a setting, to see what it changes in the background. This takes some skill and knowledge, but NTLite users should be able to figure it out. I have several posts with more information on this topic spread throughout the NTLite forum.

2) Use Boolean logic in Google searches to check credible websites for a solution. Every forum member needs to be competent in this option. The sites I use are Admx.help, learn.microsoft.com, TenForums.com, and ElevenForum.com. Do not use YouTube, Reddit, answers.microsoft.com, or random GitHubs links, because those tweaks are usually posted by inexperienced users. The more knowledgeable power users are found elsewhere, on places like NTLite for example. I have a lot of posts about Boolean logic on the NTLite forum for more instructions.

3) Dive into Regedit and figure it out. I came up with new tweaks for W10 that other people don't have anywhere on the internet by doing this and either searching for keywords or perusing branches that interested me or were relevant to my task. Then, I spent time researching each key and experimenting with them until I learned something useful and added it to my guides. While that is too advanced for most, Regedit can still be useful in a very simple way by navigating to the common \Policies\ branch of Regedit and see which tweaks are added/modified as you toggle the group policy interface for example, acting like a registry comparison tool by looking for the values that are changing.

PROPOSED SOLUTION
I prefer to know for a fact what the fully correct and optimized solution is, so I would actually use the snapshot tool to figure this out, but since I don't have the group policy interface on Home edition to test this for you, I've looked at TenForums for a solution instead. The keys they think you need are in option five of their tutorial (link) and are pasted below, but you'll need to modify the dword value to 7 days instead of 30.

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate]
"DeferQualityUpdates"=dword:00000001
"DeferQualityUpdatesPeriodInDays"=dword:0000001e
"PauseQualityUpdatesStartTime"=""

I don't see any reference to DeferQualityUpdates in my registry, which means there's a chance that key is extraneous and not needed for this tweak to work properly. A snapshot tool would verify this easily, and so would some basic troubleshooting steps.

Also, PauseQualityUpdatesStartTime on this tweak is most likely to be extraneous, because that should only be needed if you previously used a group policy to pause updates, which doesn't happen on a default install. They probably added this after too many people reported the tutorial as not working, due to the fact that many users don't realize they have a bunch of group policies from other tools/scripts that are conflicting. On that note, my pausing guide does not use group policies, so mine shouldn't interfere with this TenForums tutorial.

Less is best when it comes to tweaking, because the potential for conflicts increases as the number of tweaks does.

GROUP POLICY INTERFACE
It's been mentioned on this forum that the downside to integrating group policy keys into an image, is that it will not automatically change the physical toggle of the buttons inside the group policy interface, but it's only a cosmetic issue.

What I mean is, if the DeferQualityUpdatesPeriodInDays tweak is integrated as a registry key, it will still work out of the box, but when the user loads the interface to check if "Select when Quality Updates are received" is toggled, it won't actually show "Enabled" as chosen.

I have never tested this myself, since I use Home edition, but I'm inclined to believe the sources that discussed it. I'm also confident that the user interface doesn't really matter anyway, because on Home edition which doesn't have the interface, some group policy keys still work.
 
Last edited:
Hellbovine thank you...I'll try the registry snapshot method to figure the keys that'll do the trick.

the downside to integrating group policy keys into an image, is that it will not automatically change the physical toggle of the buttons inside the group policy interface, but it's only a cosmetic issue.
I don't think this is 100 percent correct, because when I tried to integrate my group policy modifications into an image, I verified after windows is installed and it shows both the state (enabled) and the values (7, 365). done this on Windows 11 pro.
 
Regarding the "Group Policy Interface" spoiler, I think you may be confusing GPO templates, which isn't the same thing as the individual registry tweaks, but I'm not familiar enough to have a view on that or say much else, so someone that's more versed will need to comment further. I've always used Home edition without the group policy interface, so I don't have experiences to draw from there and can only restate what I've read. I just wanted to make sure that information was put out there for posterity, in case it became an issue for anyone using the tweaks in this thread.
 
Last edited:
Also if you simply assign TargetReleaseVersion to 24H2, then you'll never be disturbed for a Feature update. Regardless of how many days it's been.
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate]
"DeferQualityUpdates"=dword:00000001
"DeferQualityUpdatesPeriodInDays"=dword:0000001e
"PauseQualityUpdatesStartTime"=""
this was indeed the correct answer to my problem...and true, they are not there by default, but get created after modifying the related policies in Group Policy Editor....I've tested the efficacy of this registry tweak, and it appear to be working as intended. the full registry tweak for my exact scenario (delay quality updates 7 days, delay feature updates 365 days) will be as follows:

Code:
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate]
"DeferFeatureUpdates"=dword:00000001
"DeferFeatureUpdatesPeriodInDays"=dword:0000016d
"PauseFeatureUpdatesStartTime"=""
"DeferQualityUpdates"=dword:00000001
"DeferQualityUpdatesPeriodInDays"=dword:00000007
"PauseQualityUpdatesStartTime"=""


may someone benefit from this in the future.
 
Back
Top