Debloat Windows Without Breaking Windows
Most Windows debloaters act like blunt hammers: they indiscriminately rip out system services, break the Microsoft Store and brick Cumulative Updates. Months later, users face 0x800f0922 or 0x80070002 update errors that force a clean OS reinstall.
unslop-windows was engineered with four strict safety rules:
- Never Touches WinSxS or Servicing Manifests: Monthly Cumulative Updates continue installing cleanly with zero servicing corruption.
- 100% Symmetrical Rollback (
-Undo): Every registry modification, service toggle, scheduled task and firewall rule has an exact inverse restore command. - Zero Mystery Binaries or Downloads: Written in 100% human-readable PowerShell (5.1 & 7+) and Batch. No compiled EXEs, no background downloads and zero telemetry.
- De-provisions From System Images: Pre-installed bloatware is removed at the provisioning level so junk apps don’t reinstall for new user accounts or after monthly updates.
Real-World Benchmarks on Windows 11
Empirical measurements taken on a clean, stock Windows 11 (24H2 / 25H2) installation before and after running the default debloat pass:
| System Metric | Stock Baseline | Post-Debloat | Improvement / Delta | Reduction |
|---|---|---|---|---|
| Idle RAM Usage | 4.82 GB (15.1%) | 2.58 GB (8.1%) | -2.24 GB | -46.5% |
| Commit Charge | 6.45 GB | 3.82 GB | -2.63 GB | -40.8% |
| Active Processes | 186 processes | 134 processes | -52 processes | -28.0% |
| Active Threads | 2,490 threads | 1,512 threads | -978 threads | -39.3% |
| Installed User AppX | 76 packages | 38 packages | -38 packages | -50.0% |
| Provisioned OEM Bloat | 34 packages | 0 packages | -34 packages | -100% |
Background Services & Tracking Tasks Turned Off
| Subsystem Component | Stock Baseline State | Post-Debloat State | What This Does |
|---|---|---|---|
DiagTrack (Connected User Experiences) |
Running (Automatic) | Stopped (Disabled) | Diagnostic telemetry uploads stopped |
dmwappushservice (WAP Telemetry) |
Running (Automatic) | Stopped (Disabled) | Background telemetry routing disabled |
SysMain (Superfetch disk thrash) |
Running (Automatic) | Stopped (Disabled) | Superfetch disk and RAM thrashing eliminated |
WSearch (Windows Search Indexer) |
Running (Automatic) | Stopped (Disabled) | Idle background disk crawling eliminated |
Consolidator (CEIP Task) |
Ready (Scheduled) | Disabled | Customer experience logging halted |
UsbCeip (USB Telemetry Task) |
Ready (Scheduled) | Disabled | USB device polling stopped |
Microsoft Compatibility Appraiser |
Ready (Scheduled) | Disabled | Daily app inventory telemetry halted |
What unslop-windows Cleans Up (18 Modular Stages)
unslop-windows executes across 18 isolated modules that can be run together or toggled individually:
- Copilot and AI Bloat: Disables Microsoft Copilot taskbar hooks, Windows Recall continuous snapshot indexing and Edge copilot sidebars.
- Diagnostic Telemetry: Disables
DiagTrackservice, CEIP event providers and ETW trace loggers. - Cortana and Web Search: Disables Bing web search queries in the Start menu while keeping fast local file search.
- Pre-Installed Bloatware: Removes OEM promotional packages, pre-installed trial games and sponsored AppX packages across current and future user accounts.
- Start Menu and Lock Screen Ads: Disables consumer tips, suggested apps and Windows Spotlight ad popups.
- Background App Throttling: Stops idle UWP apps from wasting CPU cycles and battery in the background.
- Activity History and Tracking: Disables cross-device timeline sync and diagnostic activity tracking.
- Network Privacy: Disables LLMNR to block local credential sniffing and turns off Wi-Fi hotspot reporting.
- P2P Update Sharing: Disables bandwidth-wasting peer-to-peer update sharing via GPO while keeping
DoSvcactive so the Microsoft Store works cleanly. - Telemetry Firewall Rules: Blocks outbound connection attempts to diagnostic data collection servers.
Automated CI Quality Gate
Every commit to unslop-windows must clear an automated quality gate enforced via GitHub Actions before release:
- AST Syntax Validation: Ensures scripts parse cleanly without syntax errors on both PowerShell 5.1 and PowerShell 7+.
- PSScriptAnalyzer Security Rules: Enforces strict PowerShell security rules and coding standards.
- Line-Ending & Encoding Check: Validates CRLF line-endings and UTF-8 encoding across all deployment scripts.
- Pester Automated Tests: Verifies module logic, parameter contracts and error handling.
- Symmetrical -Undo Verification: Proves that applying and reverting changes restores the machine to its exact initial state.
- Non-Elevated -DryRun Check: Confirms the audit mode runs completely read-only without requiring administrator rights.
- Clean Virtual Machine Testing: Automated test execution on clean Windows 11 and Windows 10 virtual machine images before every release.
Benchmark Your Own Machine
You can measure the exact before-and-after difference on your own PC using the built-in benchmark script:
# Step 1: Capture baseline state BEFORE debloating
powershell -ExecutionPolicy Bypass -File .\scripts\Measure-SystemState.ps1 -Snapshot "before"
# Step 2: Run unslop-windows (and reboot your PC)
powershell -ExecutionPolicy Bypass -File .\unslop.ps1
# Step 3: Capture debloated state AFTER reboot
powershell -ExecutionPolicy Bypass -File .\scripts\Measure-SystemState.ps1 -Snapshot "after"
# Step 4: Compare results side by side
powershell -ExecutionPolicy Bypass -File .\scripts\Measure-SystemState.ps1 -Baseline "logs/before.json" -Target "logs/after.json"
