Reduce Windows 10 guest noise beyond the Edge updater - #3
Draft
ChrisThibodeaux wants to merge 2 commits into
Draft
Reduce Windows 10 guest noise beyond the Edge updater#3ChrisThibodeaux wants to merge 2 commits into
ChrisThibodeaux wants to merge 2 commits into
Conversation
Uninstalling Edge/WebView2 only silences the MicrosoftEdgeUpdate.exe family. The remaining background processes in an idle Windows 10 guest come from unrelated features, so add sections covering the Windows Update stack (wuauserv/UsoSvc/WaaSMedicSvc/PushToInstall), telemetry and census, ESU licence validation, Windows Error Reporting, the Diagnostic Policy Service, the Program Compatibility Assistant, dmwappushservice/SmsRouter, the UnistackSvcGroup per-user services and Automatic Maintenance. Also actually uninstall Edge and WebView2 instead of only renaming MicrosoftEdgeUpdate.exe, and add Set-RegValue/Disable-GuestService/ Disable-GuestTask helpers so missing keys, protected services and TrustedInstaller-owned tasks no longer abort the run. Co-authored-by: Cthib <ChrisThibodeaux@users.noreply.github.com>
The guest docs only linked disable_win7noise.bat. Link win10_disabler.ps1, describe its switches, and add a table mapping each process family seen in behavioural reports to the service, policy or scheduled task responsible. Co-authored-by: Cthib <ChrisThibodeaux@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
Removing Edge and the WebView2 Runtime from a Windows 10 guest only silences the
MicrosoftEdgeUpdate.exefamily. The rest of the processes that clutter a behavioural report and trigger signature false positives on an idle VM come from unrelated Windows features: the Windows Update stack, telemetry, ESU licence validation, error reporting, diagnostics, the Program Compatibility Assistant and a handful of per-user services.installer/win10_disabler.ps1previously covered only a small slice of this: it renamedMicrosoftEdgeUpdate.exeand disabled four Application Experience tasks. It was also not referenced anywhere in the docs, which only linked the Windows 7 batch script.Changes
installer/win10_disabler.ps1Set-RegValue,Disable-GuestServiceandDisable-GuestTaskhelpers. The previous script assumed policy keys already existed, soNew-ItemProperty/Set-ItemPropertywould fail on a clean image;Disable-ScheduledTaskwould likewise throw on absent tasks. Services are disabled by writingStart=4directly, becausesc config/Set-Serviceis refused for protected services such asWaaSMedicSvc.setup.exe --uninstall --force-uninstall, WebView2 first, plus the appx stub) rather than only having the updater renamed.-KeepEdgeskips the uninstall while still neutering the updater.wuauserv,UsoSvc,WaaSMedicSvc,PushToInstall,DoSvc,BITS,InstallService), telemetry/census/CLIP ESU, Windows Error Reporting, the Diagnostic Policy Service, the Program Compatibility Assistant,dmwappushservice/SmsRouter, theUnistackSvcGroupper-user template services (behind-KeepUserServices), and Automatic Maintenance.$env:ProgramFiles/${env:ProgramFiles(x86)}instead of a hardcodedC:\Program Files (x86).docs/book/src/installation/guest/additional_configuration.rstwin10_disabler.ps1alongside the Windows 7 script and documents how to run it and what its two switches do.WaaSMedicSvcundoing changes, TrustedInstaller-ownedUpdateOrchestratortasks, per-user service templates, Automatic Maintenance as the shared idle trigger, and the services that must stay enabled for the agent).Verification
No CI covers PowerShell or the docs, so this was checked locally:
Invoke-ScriptAnalyzer -Severity Error: clean. The only remaining warnings are pre-existingWrite-Hostusage carried over from the original script.Set-MpPreferenceand simulatedAccess deniedon a protected scheduled task were both caught by the intended fallback paths.sphinx -b htmlbuilds the docs page with no new warnings.The script itself has not been run against a real Windows 10 image in this environment.