You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
On Windows 11 build 28000, the Full action aborts at Phase 5/11 because the SearchHighlightOff tweak cannot write HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\SearchSettings\IsDynamicSearchBoxEnabled. Windows blocks value writes to that key at the kernel level, even for an elevated administrator.
Because the SearchHighlightOff step is not marked BestEffort (unlike the adjacent WidgetServiceOff step), this single un-writable cosmetic setting terminates the entire run, so Phases 6–11 (Edge, fonts, Terminal, PowerShell profile, Copilot, WSL) never execute.
Environment
Item
Value
Windows
Windows 11, build 28000 (Microsoft Windows NT 10.0.28000.0)
Yes — verified IsInRole(Administrator) = True for the running process
Steps to reproduce
On Windows 11 build 28000, run irm https://aka.ms/devconfig/full/setup.ps1 | iex from an elevated PowerShell 7 session.
Let setup complete Phases 1–4 and the first four steps of Phase 5.
Actual result
Phase 5/11 -- Taskbar, search & start tweaks
...
-> Disable Show search highlights...
Calm OS setup stopped early.
Windows blocked changing HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\SearchSettings\IsDynamicSearchBoxEnabled. Administrator access or Windows policy may restrict this setting.
(_registry.ps1 line 50)
Nothing already applied was undone -- running this again picks up where it left off.
The underlying exception is an UnauthorizedAccessException ("Attempted to perform an unauthorized operation./ 未经授权操作") raised by New-ItemProperty at steps/_registry.ps1:48, caught and rethrown with the friendly message at steps/_registry.ps1:50-52.
Re-running simply reproduces the identical failure, so Full can never advance past Phase 5 on this build.
Root cause
Windows on this build protects the SearchSettings key against value writes, independent of ACLs. The key is owned by the user and its ACL grants the user, SYSTEM and AdministratorsKEY_ALL_ACCESS (KA), with no Deny ACE — yet every value write is refused.
Note the key carries an explicit ACE for a MicrosoftWindows.Client.CBS AppContainer SID (S-1-15-3-1024-1086922356-207614091-3724853071-841836187-4018695103-34218837-3164163255-155871754), which is the search/taskbar package (SearchHost.exe runs from MicrosoftWindows.Client.CBS_cw5n1h2txyewy).
[Microsoft.Win32.RegistryKey]::SetValue() via OpenSubKey($true)
Attempted to perform an unauthorized operation.
Rewrote the key ACL (removed the AppContainer ACE, granted the current user explicit FullControl)
ACL change succeeded, write still failed
Stopped WSearch service and killed SearchHost.exe
write still failed
Wrote a different, brand-new value name in the same key
failed
Modified an existing value (WebSearchInstalledVersion)
failed
Created a new subkey
succeeded (so it is specifically value writes that are blocked)
Wrote HKLM\SOFTWARE\Policies\Microsoft\Windows\Windows Search
succeeded (proves elevation is fine)
Wrote HKCU\...\Explorer\Advanced
succeeded (proves general HKCU writes are fine)
SearchSettings has no policy mirror on this build (HKLM\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\SearchSettings does not exist), so there is no supported policy-based way to set this value either.
Expected result
Either of:
SearchHighlightOff should be marked BestEffort = $true, like the WidgetServiceOff step in the very same file, so a platform-protected cosmetic setting cannot abort the whole run; or
If the value is genuinely un-writable on current builds, the step should be removed or its apply-path changed to a supported API.
Suggested fix
In windows-dev-config/steps/registry-taskbar-search.ps1, the file already acknowledges this exact class of problem for Widgets:
# Windows may protect the Widgets policy even from an administrator.@{
Name='WidgetServiceOff'KeyPath='HKLM\SOFTWARE\Policies\Microsoft\Dsh'ValueName='AllowNewsAndInterests'Value=0Description='Disable Widgets'BestEffort=$true
}
The SearchHighlightOff tweak immediately above it has the same exposure but lacks the flag:
@{
Name='SearchHighlightOff'KeyPath='HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\SearchSettings'ValueName='IsDynamicSearchBoxEnabled'Value=0Description='Disable Show search highlights'
}
Adding BestEffort = $true (or removing the tweak) would let Full continue on builds where Windows protects this key.
Additional notes
Verified against the current main: steps/registry-taskbar-search.ps1 is byte-identical to the copy setup installed, so the issue is present in the latest code.
Summary
On Windows 11 build 28000, the
Fullaction aborts at Phase 5/11 because theSearchHighlightOfftweak cannot writeHKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\SearchSettings\IsDynamicSearchBoxEnabled. Windows blocks value writes to that key at the kernel level, even for an elevated administrator.Because the
SearchHighlightOffstep is not markedBestEffort(unlike the adjacentWidgetServiceOffstep), this single un-writable cosmetic setting terminates the entire run, so Phases 6–11 (Edge, fonts, Terminal, PowerShell profile, Copilot, WSL) never execute.Environment
Microsoft Windows NT 10.0.28000.0)irm https://aka.ms/devconfig/full/setup.ps1 | iex06200f0819136c528e09533e3c8afac7e5f46ed7(branchmain)FullIsInRole(Administrator)=Truefor the running processSteps to reproduce
irm https://aka.ms/devconfig/full/setup.ps1 | iexfrom an elevated PowerShell 7 session.Actual result
The underlying exception is an
UnauthorizedAccessException("Attempted to perform an unauthorized operation./ 未经授权操作") raised byNew-ItemPropertyatsteps/_registry.ps1:48, caught and rethrown with the friendly message atsteps/_registry.ps1:50-52.Re-running simply reproduces the identical failure, so
Fullcan never advance past Phase 5 on this build.Root cause
Windows on this build protects the
SearchSettingskey against value writes, independent of ACLs. The key is owned by the user and its ACL grants the user,SYSTEMandAdministratorsKEY_ALL_ACCESS(KA), with no Deny ACE — yet every value write is refused.Note the key carries an explicit ACE for a
MicrosoftWindows.Client.CBSAppContainer SID (S-1-15-3-1024-1086922356-207614091-3724853071-841836187-4018695103-34218837-3164163255-155871754), which is the search/taskbar package (SearchHost.exeruns fromMicrosoftWindows.Client.CBS_cw5n1h2txyewy).Methods attempted, all failing
New-ItemProperty(PowerShell, elevated)Access is deniedreg.exe add HKCU\...\SearchSettings /v IsDynamicSearchBoxEnabled /t REG_DWORD /d 0 /fERROR: Access is denied.[Microsoft.Win32.RegistryKey]::SetValue()viaOpenSubKey($true)Attempted to perform an unauthorized operation.FullControl)WSearchservice and killedSearchHost.exeWebSearchInstalledVersion)HKLM\SOFTWARE\Policies\Microsoft\Windows\Windows SearchHKCU\...\Explorer\AdvancedSearchSettingshas no policy mirror on this build (HKLM\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\SearchSettingsdoes not exist), so there is no supported policy-based way to set this value either.Expected result
Either of:
SearchHighlightOffshould be markedBestEffort = $true, like theWidgetServiceOffstep in the very same file, so a platform-protected cosmetic setting cannot abort the whole run; orSuggested fix
In
windows-dev-config/steps/registry-taskbar-search.ps1, the file already acknowledges this exact class of problem for Widgets:The
SearchHighlightOfftweak immediately above it has the same exposure but lacks the flag:Adding
BestEffort = $true(or removing the tweak) would letFullcontinue on builds where Windows protects this key.Additional notes
main:steps/registry-taskbar-search.ps1is byte-identical to the copy setup installed, so the issue is present in the latest code.WidgetServiceOffwas givenBestEffort.SearchHighlightOffappears to have been missed.IsDynamicSearchBoxEnabled/SearchSettingsspecifically.