AsadAlrafidain
Member
- Messages
- 98
- Reaction score
- 16
the problem is I don't know which is the right registry Key/Value for thisNot all HKCU reg customizations work, that's simply because later W10/11 releases block or ignoring many of them during new user provisioning. The solution is to add the reg file during Post-Setup (After logon).
[HKEY_CURRENT_USER\Control Panel\Desktop]
"UserPreferencesMask"=hex(3):98,1E,07,80,12,00,00,00
hex(3):9E,1E,07,80,12,00,00,00
------------------------------
MenuAnimation
ComboBoxAnimation
ListBoxSmoothScrolling
GradientCaptions
HotTracking
MenuFade
SelectionFade
ToolTipAnimation
ToolTipFade
Reserved16
Reserved17
Reserved18
UIEffects
hex(3):98,1E,07,80,12,00,00,00
------------------------------
ListBoxSmoothScrolling
GradientCaptions
HotTracking
MenuFade
SelectionFade
ToolTipAnimation
ToolTipFade
Reserved16
Reserved17
Reserved18
UIEffects
Changes
-------
MenuAnimation
ComboBoxAnimation
C:\Users\GARLIN\Downloads>UserPreferencesMask.bat
"UserPreferencesMask"=hex(3):9E,1E,07,80,12,00,00,00
MenuAnimation
ComboBoxAnimation
ListBoxSmoothScrolling
GradientCaptions
HotTracking
MenuFade
SelectionFade
ToolTipAnimation
ToolTipFade
HidePointerWhileTyping
UseVisualStylesButtons
ShowShadowsUnderMenus
UIEffects
AnimateControlsInWindows
EnableClearType
C:\Users\GARLIN\Downloads>UserPreferencesMask.bat -help
ActiveWindowTracking
ActiveWindowTrackingZOrder
AnimateControlsElementsInWindows
AnimateControlsInWindows
AnimationEffects (alias)
ClickLock
ComboBoxAnimation
CursorShadow
DisableOverlappedContent
EnableClearType
EnableSpeechRecognition
GradientCaptions
HidePointerWhileTyping
HotTracking
KeyboardCues
LanguageBar
ListBoxSmoothScrolling
MenuAnimation
MenuFade
SelectionFade
ShowPointerLocation
ShowShadowsUnderMenus
ShowShadowsUnderWindows
ToolTipAnimation
ToolTipFade
UIEffects
UseVisualStylesButtons
UseVisualWindowsAndButtons
C:\Users\GARLIN\Downloads>UserPreferencesMask.bat -AnimationEffects ClickLock
Enabled: ClickLock
Disabled: AnimateControlsInWindows, ComboBoxAnimation, ListBoxSmoothScrolling, MenuAnimation, SelectionFade, ToolTipAnimation
GradientCaptions
HotTracking
MenuFade
ToolTipFade
ClickLock
HidePointerWhileTyping
UseVisualStylesButtons
ShowShadowsUnderMenus
UIEffects
EnableClearType
[HKEY_CURRENT_USER\Control Panel\Desktop]
"UserPreferencesMask"=hex(3):90,92,07,80,10,00,00,00
[HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics]
"MinAnimate"=0
my intention was to keep the tweaks modular so that it is easier (and clearer) to add and remove as needed....This is likely because you have conflicting tweaks at the moment. Masks are especially hard to work with too, because they change multiple settings as mentioned earlier in this thread. When I downloaded and looked through your registry tweaks it gave me a stroke, so it's time for you to go back and start doing a bunch of housekeeping on your image, as poor quality control is the likely culprit here.
If you want to tackle this yourself, please of course do so because that's the best way to learn. But, I wouldn't mind taking this as an opportunity to help show lurkers the importance of having an organized workspace and good housekeeping on files, so if you're interested I can take all your files when I get a chance here in a few hours and transform them into something totally different that will help you see the potential.
I am doing it Post-setup....sorry for not being clearnvidia drivers are massive once xtracted so not recommended for integration however garlin has a way to get the drivers installed post setup that would be better.
my first intention was to set the region to English(World) during OOBE to Prevent installing bloatware, since this was a well-known tweak to do that, then the command was meant to return the region to United States for microsoft store to work....later I discovered that choosing English (World) during OOBE would later cause xbox app not to work at all so I reverted to choosing US as region but kept the command in the preset to make use of it later (I know....lazy).....many of the other (redundant) tweaks have similar stories07) Converted the post-setup set-WinHomeLocation command into a registry key and put it into the new registry file. But, what is the reason for this tweak, since this can be configured in the unattend, right? I'm not sure of the intent here.
The tweak for Ultimate Power Plan was applied separately together with BypassNRO before using the main preset...but since you fixed it for high performance and see that they are the same I'll keep it that way and use only BypassNRO tweak (to apply for windows setup)19) In addition to the other power plan issues, there was never a tweak anywhere in this image that actually switched the power plan from Balanced to Ultimate, so even if the previous tweaks were correct, they weren't being actively used, because Windows defaults to the Balanced power plan on both W10 and W11 unless the user changes it. I fixed this by adding 2 keys that set the active plan to High performance
if only the support for it wouldn't end next year, I would've sticked to W10The reality though, is W10 is the better operating system, especially if you're a gamer, which I think you are since you use timer tools and other similar tweaks.
This post is a sidebar, designed to be linked to as a guide on how to polish an image, using a real project from a forum member as an example, so that users can download the attachments and follow along, as if this were being explained in a classroom setting or similar.
I've finished doing housekeeping on the image from this thread. It was just the right size for this project, because it was big enough to have plenty of issues to solve, but small enough that it wasn't overwhelming. I did two test installs of this image, one with only the new registry file so I could verify it works. Then I did an install using both the NTLite preset and new registry file, and took screenshots of some of the bigger fixes.
PROJECT STATS
The old project had 3 NTLite presets, 38 registry files, 1 powershell script, and 1 batch file.
The new project has 1 NTLite preset, 1 registry file, and 1 example file.
A file comparison tool, such as DiffMerge by SourceGear, can do a side by side view of two files and display to the user what was added, removed, or modified between them. This is especially useful for looking at the changes between two NTLite XML presets for example, as those can be hundreds of or thousands of lines long, so a tool can save heaps of time and greatly improve accuracy while working on projects.
IMAGE POLISHING
Hopefully the notes below will help users see just how much housekeeping there is to do on an image. It's an important step, and it just doesn't get done at all or to the degree it should most times, resulting in bugged images being used everywhere. I cringe nearly every time I open attachments to see what someone needs help with, because I immediately see bugs and bad tweaks that need fixing each time.
I'm not saying that to put people down, but to try to drive home how frequent and severe this overall problem is in the community so that more people will take notice and spend time cleaning up their projects, not only for their own benefit, but to also help reduce the number of questions that get asked on the forum, since it can be overwhelming for the small number of helpers to handle each day, leading to burnout.
Of course not everything I discuss here is super important, the point is this is a teaching exercise that can by used by people that want to learn how to build a good project workspace, the types of issues they need to be on the lookout for, and ideas about how to test and troubleshoot. Keep in mind, I am not making notes here about whether I like certain tweaks or not, as that's not the point of this post at all.
NTLITE XML PRESETS
I performed the following on the presets contained in this thread.
01) Manually merged the 3 presets after comparing them, and ended with a single preset where I modified the entire post-setup section to fix things that I was moving around and consolidating.
02) Deleted the Scheduled Tasks powershell script and instead added all those tweaks into the preset so they are integrated into the image, as that is the most robust approach here, rather than post-setup. The script is a great idea for testing them on a live install though, before committing to integrating them into NTLite.
03) Deleted 14 tweaks from the preset, because they are already contained in the registry files and part of fixing this project meant eliminating all potential sources of conflict, which is part of why some things weren't working before. We don't need multiple tools or scripts to apply the same tweak, because either it works or it doesn't, and everyone should be testing tweaks on a live install first, before putting them into an image. In this case, I cut the conflicts out of the preset and pasted them into the example.txt file for reference.
04) Deleted the post-setup disable8dot3 command in the preset and added it to the new registry file instead, as integration is better than post-setup when possible for most tweaks.
05) Converted the post-setup wmic command for password expiration in the preset into maxpwage, so it works for all users.
06) Converted the post-setup hibernate command into a registry key and put it into the new registry file. It's also enabled by default in W10/W11, so this isn't really needed, but I added it anyway in case there was a niche scenario it was fixing before.
07) Converted the post-setup set-WinHomeLocation command into a registry key and put it into the new registry file. But, what is the reason for this tweak, since this can be configured in the unattend, right? I'm not sure of the intent here.
08) The Visual C++ Runtime All-In-One isn't needed, as most software automatically installs what they need, which nowadays is mostly the 2015-2022 runtimes in both the 32-bit and 64-bit packages (even on 64-bit Windows). I didn't change this though, it's just a comment to consider. People will argue it has no performance impact, but my view is the point of NTLite is to remove bloat, not add even more excess files.
09) Deleted the "Disable Animation Effects" batch file, and removed the reference from the preset's post-setup, as this file can be handled better with registry keys which integrate into an image, plus we needed to eliminate all points of conflict in the Visual Effects settings by consolidating the various tweaks into a final outcome.
10) When I loaded the new preset into the latest version of NTLite, it automatically added two new component removals, which I decided to keep in the file, but I am documenting them below in case they cause any problems in the future:
<c>directml 'Direct Machine Learning (DirectML)'</c>
<c>universalprintsvc 'Universal Print Management Service'</c>
REGISTRY FILES
11) Added comments to document where to locate each tweak in Windows and what they do, which also makes it much easier to find a tweak using a search box, since more keywords are available. Then used the registry paths as well as the comments to organize tweaks into related groups, and put things in alphabetical order too. Also, separated out individual tweaks that aren't directly related, such as the various xbox keys for example, so that they are modular and documented more accurately.
12) Did a bunch of basic formatting, like removing excess empty lines, trailing whitespace, and ensured the new registry file was in the correct UTF-16 LE encoding, since many of the old files weren't, as well as making sure to add ending newlines and other similar cleanup.
13) Deleted the VisualFXSetting key, and then fixed the overall Visual Effects settings by adding the new method for tweaking it. This adds 17 easy to use keys with a registry path of \Explorer\VisualEffects\ that have a simple "DefaultValue" which can be 00000000 to turn off a setting or 00000001 to turn them on, and they are all toggled individually, unlike the traditional route that uses a clunky mask and shellstate.
14) The Animation effects in the Accessibility settings page was fixed so that on a clean install it is now toggled off.
15) Fixed the DisablePCA tweak, because it was failing to apply to the registry, due to multiple invalid characters and parameters in the key. For future reference, it had a double equal (==) sign on the dword, as well as "smart quotes" which stand out due to them being in italics.
16) Converted DisablePCA and DisableAIDataAnalysis tweaks into local_machine so that it applies to all users instead, because I imagine that's actually what was intended for these, since many of the other registry tweaks target all users.
17) Deleted several redundant group policy tweaks that were using both current_user and local_machine. This is unneccessary as local_machine is all that's needed to affect all users, and stuff like this is a part of why it's so difficult to troubleshoot images on the internet, because so many people do this, "shotgun approach" where they go to extremes in, "ensuring a tweak sticks" by stacking them together, causing problems.
18) All the power plan tweaks gleaned from my Optimized Image guide aren't used correctly in this thread, because they were modified to be for the Ultimate performance plan, but that's not a real power plan which is why these tweaks don't work at the moment. Ultimate power is completely misunderstood by everyone, and I have posts explaining that (link1, link2) here. To fix this, I changed the tweaks back to the High performance power plan, but then I also added the hard drive timeout tweak which is all the ultimate performance plan really does.
19) In addition to the other power plan issues, there was never a tweak anywhere in this image that actually switched the power plan from Balanced to Ultimate, so even if the previous tweaks were correct, they weren't being actively used, because Windows defaults to the Balanced power plan on both W10 and W11 unless the user changes it. I fixed this by adding 2 keys that set the active plan to High performance.
20) StickyKeys flag was set at 2, but it needs to be 506 to disable the shortcut, so I fixed that.
21) NtfsDisableLastAccessUpdate was set to 3 which disables it, but that also allows group policies to modify this setting, whereas a value of 1 keeps it from being conflicted with. It's not common knowledge, but the "Refs" key also gets set along with the "Ntfs" key when using the fsutil command, meaning people need to toggle both together, so I fixed that and set them both to disabled globally.
22) The tweaks gleaned from my Pause Windows Update guide were also incorrect in this thread, because later builds of W11 have now changed several of those keys and even added a new one. I fixed all of this, and now it's properly paused out of the box on a clean install.
MISCELLANEOUS INFORMATION
23) Created an example a file called, Extra.txt which explains how to keep registry files modular and easy to sort through, as a user works on building an image and testing things. Open that file to see more information.
24) Discovered a Microsoft typo during this adventure, as the spelling of MDMMaintenenceTask is incorrect and should be MDMMaintenanceTask. It's spelled wrong in NTLite too, but that's expected, because the tool uses Microsoft's naming. I am pointing this out in case it affects anyone in the future, because I am going to submit it to Microsoft to be fixed, which could cause a problem for scripts using the old name. I stumbled on this when I was using a search box and spelling it properly, but it wouldn't appear.
25) As a closing note, I want to clarify that the 3 files in the "NEW" attachment are complete, and there's no work that has to be done based on the things I talked about in this post. I went ahead and did all the fixing, so from this point users can do whatever they want with it. I feel like it's worth mentioning that some of these fixes will improve the snappiness of the new image compared to the old, due to things like the power plan and visual effects being improved over the original.
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings]
"ExcludeWUDriversInQualityUpdate"=dword:00000001
"PauseFeatureUpdatesStartTime"="2023-02-18T12:53:30Z"
"PauseFeatureUpdatesEndTime"="3000-12-30T12:53:30Z"
"PauseQualityUpdatesStartTime"="2023-02-18T12:53:30Z"
"PauseQualityUpdatesEndTime"="3000-12-30T12:53:30Z"
"PauseUpdatesStartTime"="2023-02-18T12:53:30Z"
"PauseUpdatesExpiryTime"="3000-12-30T12:53:30Z"
"TrayIconVisibility"=dword:00000000