Opt-in Windows debloat profile¶
The DeveloperMinimal profile removes a reviewed subset of consumer, promotional, and retired Windows software. It is separate from security hardening and excluded from the default Apply-Workstation.ps1 -Module All selection.
Commands¶
Inspect the declaration without elevation:
powershell -NoProfile -ExecutionPolicy Bypass -File .\scripts\Set-DebloatState.ps1 -Mode Plan
Inventory matching software without removing it:
sudo powershell -NoProfile -ExecutionPolicy Bypass -File .\scripts\Set-DebloatState.ps1 -Mode Test
After reviewing both outputs, removal requires an additional explicit switch:
sudo powershell -NoProfile -ExecutionPolicy Bypass -File .\scripts\Set-DebloatState.ps1 -Mode Ensure -ConfirmRemoval
The general orchestrator can run the same profile as one module:
.\Apply-Workstation.ps1 -Mode Test -Module Debloat
.\Apply-Workstation.ps1 -Mode Ensure -Module Debloat -ConfirmRemoval
Use -Json for machine-readable output. Ensure does not restart Windows. It records the exact pre-removal inventory under state/debloat-snapshots/ before changing anything.
Declared removals¶
The DSL is config/debloat-profiles.psd1.
| Type | Removed by DeveloperMinimal |
|---|---|
| Microsoft consumer apps | Weather, Get Help, Tips/Get Started, Messaging, 3D Viewer, Office Hub, Solitaire, Mixed Reality Portal, OneConnect, Print 3D, inbox Skype, Wallet, Feedback Hub, Maps, Phone Link, old Feedback and Contact Support |
| Xbox apps | Xbox TCUI, legacy Xbox app, game/gaming overlays, Xbox identity provider, and speech overlay |
| Promotional packages | old Bing News and Sway packages plus declared Pandora, Duolingo, Actipro, Eclipse Manager, Spotify, and King promotional packages |
| Remote support | Quick Assist |
| Capabilities | Steps Recorder, Internet Explorer compatibility, Math Recognizer, and Windows PowerShell ISE |
| Optional features | TFTP, Telnet client, XPS printing, and Work Folders client are disabled without removing their component-store payload |
For AppX/MSIX software, the resource removes matching registrations for all users and matching provisioning records for future users. Microsoft treats those as separate operations: removing provisioning prevents installation for new profiles, while Remove-AppxPackage -AllUsers removes existing registrations. See Microsoft's AppX troubleshooting guidance and Remove-AppxProvisionedPackage.
Protected software¶
The profile refuses a current target if it overlaps its protected AppX patterns or Windows marks it non-removable.
Protected declarations include:
- Desktop App Installer/WinGet, Microsoft Store, Store Purchase, and Windows Security;
- .NET Native, VCLibs, UI Xaml, and Windows App Runtime frameworks;
- image, audio, and video codecs;
- Windows Terminal, WSL, Debian, and Codex.
The reviewed legacy list also does not remove Sticky Notes, OneNote, Camera, Sound Recorder, Alarms, Mail/Calendar, Media Player, OpenSSH, Windows Hello Face, handwriting support, SMB Direct, Remote Desktop infrastructure, or WCF TCP Port Sharing. These are useful workstation features, security/authentication components, package dependencies, or plausible developer requirements.
Services and scheduled tasks¶
The legacy script's blanket service and scheduled-task disabling is not part of debloat. It would disable or impair Edge updates, Windows Error Reporting, diagnostics, smart cards, synchronization, mobile hotspot/connection sharing, Compatibility Appraiser, and Features-on-Demand cleanup.
Those are operational policies, not software removals. If one needs to be disabled, it should get a separate desired-state resource with a specific compatibility rationale and independent Test/Ensure command.
Current workstation inventory¶
The initial 2026-08-14 Test found eight noncompliant targets:
- installed and provisioned
Microsoft.OneConnect,Microsoft.YourPhone, andMicrosoftCorporationII.QuickAssistpackages; - installed Steps Recorder, Internet Explorer compatibility, Math Recognizer, and PowerShell ISE capabilities;
- enabled Work Folders client.
TFTP, Telnet, and XPS printing were already disabled. The profile has not been applied to this workstation.
Rollback limits¶
The JSON snapshot is evidence, not a package backup. AppX removal can be irreversible when the original package payload is no longer available; Microsoft explicitly warns to verify the user and exact package before removal.
- Store-delivered applications normally need to be reinstalled from Microsoft Store or an authoritative
wingetpackage. - Capabilities can usually be restored with
Add-WindowsCapability -Online -Name <exact-name>, potentially downloading content from Windows Update. - Features can be restored with
Enable-WindowsOptionalFeature -Online -FeatureName <name> -NoRestart.
Feature or capability restoration can require a restart. Review the saved snapshot before restoring because Windows versions can rename or retire components.