A dotnet tool that removes the bloat in Windows 11
[!WARNING] This tool makes changes to the Registry. Consider doing a backup before using.
See Milestones for release notes.
dotnet tool install -g WinDebloat
WinDebloat
Ids are case insensitive.
Ids for each item are listed below.
Optional items can be included by using the --include
argument:
WinDebloat --include Paint
See Optional Items Removed / Disabled
WinDebloat --include-all
Items can be excluded by using the --exclude
argument:
WinDebloat --exclude AdvertiserId Xbox
Id to exclude: 3DViewer
Uninstalls 3D Viewer
using winget.
winget uninstall --name "3D Viewer" --exact
Id to exclude: AdvertiserId
Set-ItemProperty -Path "Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\AdvertisingInfo"`
-Name "Enabled"`
-Type "DWord"`
-Value "0"
Set-ItemProperty -Path "Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\AdvertisingInfo"`
-Name "Enabled"`
-Type "DWord"`
-Value "1"
Id to exclude: Camera
Uninstalls Windows Camera
using winget.
winget uninstall --name "Windows Camera" --exact
Id to exclude: Chat
Set-ItemProperty -Path "Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"`
-Name "TaskbarMn"`
-Type "DWord"`
-Value "0"
Set-ItemProperty -Path "Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"`
-Name "TaskbarMn"`
-Type "DWord"`
-Value "1"
Id to exclude: Clipchamp
Uninstalls Clipchamp
using winget.
winget uninstall --name "Clipchamp" --exact
Id to exclude: Cortana
Uninstalls Cortana
using winget.
winget uninstall --name "Cortana" --exact
Id to exclude: EdgeDesktopSearchBar
Set-ItemProperty -Path "Registry::HKLM\SOFTWARE\Policies\Microsoft\Edge"`
-Name "WebWidgetAllowed"`
-Type "DWord"`
-Value "0"
Set-ItemProperty -Path "Registry::HKLM\SOFTWARE\Policies\Microsoft\Edge"`
-Name "WebWidgetAllowed"`
-Type "DWord"`
-Value "1"
Id to exclude: EdgeRecommendations
Set-ItemProperty -Path "Registry::HKLM\SOFTWARE\Policies\Microsoft\Edge"`
-Name "ShowRecommendationsEnabled"`
-Type "DWord"`
-Value "0"
Set-ItemProperty -Path "Registry::HKLM\SOFTWARE\Policies\Microsoft\Edge"`
-Name "ShowRecommendationsEnabled"`
-Type "DWord"`
-Value "1"
Id to exclude: FeedbackHub
Uninstalls Feedback Hub
using winget.
winget uninstall --name "Feedback Hub" --exact
Id to exclude: FileExtensions
Set-ItemProperty -Path "Registry::HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced"`
-Name "HideFileExt"`
-Type "DWord"`
-Value "0"
Set-ItemProperty -Path "Registry::HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced"`
-Name "HideFileExt"`
-Type "DWord"`
-Value "1"
Id to exclude: FilmsAndTV
Uninstalls Films & TV
using winget.
winget uninstall --name "Films & TV" --exact
Id to exclude: Games
Uninstalls Solitaire & Casual Games
using winget.
winget uninstall --name "Solitaire & Casual Games" --exact
Uninstalls Microsoft Solitaire Collection
using winget.
winget uninstall --name "Microsoft Solitaire Collection" --exact
Id to exclude: GetHelp
Uninstalls Get Help
using winget.
winget uninstall --name "Get Help" --exact
Id to exclude: InternetConnectionSharing
Uninstalls SharedAccess
using winget.
winget uninstall --name "SharedAccess" --exact
Id to exclude: LockScreenAds
Set-ItemProperty -Path "Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager"`
-Name "RotatingLockScreenOverlayEnabled"`
-Type "DWord"`
-Value "0"
Set-ItemProperty -Path "Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager"`
-Name "RotatingLockScreenOverlayEnabled"`
-Type "DWord"`
-Value "1"
Set-ItemProperty -Path "Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager"`
-Name "SubscribedContent-338387Enabled"`
-Type "DWord"`
-Value "0"
Set-ItemProperty -Path "Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager"`
-Name "SubscribedContent-338387Enabled"`
-Type "DWord"`
-Value "1"
Id to exclude: MailandCalendar
Uninstalls Mail and Calendar
using winget.
winget uninstall --name "Mail and Calendar" --exact
Id to exclude: Maps
Uninstalls Windows Maps
using winget.
winget uninstall --name "Windows Maps" --exact
Stop-Service -Name "MapsBroker"
Set-Service -Name "MapsBroker"`
-StartupType "Disabled"
Set-Service -Name "MapsBroker"`
-StartupType "Automatic"
Start-Service -Name "MapsBroker"
Id to exclude: MediaPlayer
Uninstalls Windows Media Player
using winget.
winget uninstall --name "Windows Media Player" --exact
Id to exclude: MixedRealityPortal
Uninstalls Mixed Reality Portal
using winget.
winget uninstall --name "Mixed Reality Portal" --exact
Id to exclude: MoviesandTV
Uninstalls Movies & TV
using winget.
winget uninstall --name "Movies & TV" --exact
Id to exclude: News
Uninstalls Microsoft News
using winget.
winget uninstall --name "Microsoft News" --exact
Uninstalls News
using winget.
winget uninstall --name "News" --exact
Id to exclude: OneNote
Uninstalls OneNote for Windows 10
using winget.
winget uninstall --name "OneNote for Windows 10" --exact
Id to exclude: Paint3D
Uninstalls Paint 3D
using winget.
winget uninstall --name "Paint 3D" --exact
Id to exclude: Pay
Uninstalls Microsoft Pay
using winget.
winget uninstall --name "Microsoft Pay" --exact
Id to exclude: People
Uninstalls Microsoft People
using winget.
winget uninstall --name "Microsoft People" --exact
Id to exclude: Photos
Uninstalls Microsoft Photos
using winget.
winget uninstall --name "Microsoft Photos" --exact
Id to exclude: PowerAutomate
Uninstalls Power Automate
using winget.
winget uninstall --name "Power Automate" --exact
Id to exclude: PowerShellUnrestricted
Set-ItemProperty -Path "Registry::HKLM\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell"`
-Name "ExecutionPolicy"`
-Type "String"`
-Value "Unrestricted"
Set-ItemProperty -Path "Registry::HKLM\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell"`
-Name "ExecutionPolicy"`
-Type "String"`
-Value "Restricted"
Id to exclude: Print3D
Uninstalls Print 3D
using winget.
winget uninstall --name "Print 3D" --exact
Id to exclude: Skype
Uninstalls Skype
using winget.
winget uninstall --name "Skype" --exact
Id to exclude: Spotify
Uninstalls Spotify Music
using winget.
winget uninstall --name "Spotify Music" --exact
Id to exclude: Startupboost
Set-ItemProperty -Path "Registry::HKLM\SOFTWARE\Policies\Microsoft\Edge"`
-Name "StartupBoostEnabled"`
-Type "DWord"`
-Value "0"
Set-ItemProperty -Path "Registry::HKLM\SOFTWARE\Policies\Microsoft\Edge"`
-Name "StartupBoostEnabled"`
-Type "DWord"`
-Value "1"
Id to exclude: StartMenuRecommendations
Set-ItemProperty -Path "Registry::HKLM\SOFTWARE\Policies\Microsoft\Windows\Explorer"`
-Name "HideRecommendedSection"`
-Type "DWord"`
-Value "1"
Set-ItemProperty -Path "Registry::HKLM\SOFTWARE\Policies\Microsoft\Windows\Explorer"`
-Name "HideRecommendedSection"`
-Type "DWord"`
-Value "0"
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Explorer
may need to be created if it doesn;t existId to exclude: StickyNotes
Uninstalls Microsoft Sticky Notes
using winget.
winget uninstall --name "Microsoft Sticky Notes" --exact
Id to exclude: TaskBarSearch
Set-ItemProperty -Path "Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\Search"`
-Name "SearchboxTaskbarMode"`
-Type "DWord"`
-Value "0"
Set-ItemProperty -Path "Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\Search"`
-Name "SearchboxTaskbarMode"`
-Type "DWord"`
-Value "1"
Id to exclude: TaskView
Set-ItemProperty -Path "Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"`
-Name "ShowTaskViewButton"`
-Type "DWord"`
-Value "0"
Set-ItemProperty -Path "Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"`
-Name "ShowTaskViewButton"`
-Type "DWord"`
-Value "1"
Id to exclude: TeamsInstaller
Uninstalls Teams Machine-Wide Installer
using winget.
winget uninstall --name "Teams Machine-Wide Installer" --exact
Id to exclude: Telemetry
Set-ItemProperty -Path "Registry::HKLM\SOFTWARE\Policies\Microsoft\Windows\DataCollection"`
-Name "Allow Telemetry"`
-Type "DWord"`
-Value "0"
Set-ItemProperty -Path "Registry::HKLM\SOFTWARE\Policies\Microsoft\Windows\DataCollection"`
-Name "Allow Telemetry"`
-Type "DWord"`
-Value "1"
Stop-Service -Name "DiagTrack"
Set-Service -Name "DiagTrack"`
-StartupType "Disabled"
Set-Service -Name "DiagTrack"`
-StartupType "Automatic"
Start-Service -Name "DiagTrack"
Id to exclude: Tips
Uninstalls Microsoft Tips
using winget.
winget uninstall --name "Microsoft Tips" --exact
Id to exclude: ToDo
Uninstalls Microsoft To Do
using winget.
winget uninstall --name "Microsoft To Do" --exact
Id to exclude: Weather
Uninstalls MSN Weather
using winget.
winget uninstall --name "MSN Weather" --exact
Id to exclude: WebExperiencePack
Uninstalls Windows Web Experience Pack
using winget.
winget uninstall --name "Windows Web Experience Pack" --exact
Id to exclude: StartMenuWebSearch
Set-ItemProperty -Path "Registry::HKCU\SOFTWARE\Policies\Microsoft\Windows\Explorer"`
-Name "DisableSearchBoxSuggestions"`
-Type "DWord"`
-Value "1"
Set-ItemProperty -Path "Registry::HKCU\SOFTWARE\Policies\Microsoft\Windows\Explorer"`
-Name "DisableSearchBoxSuggestions"`
-Type "DWord"`
-Value "0"
Id to exclude: Whiteboard
Uninstalls Microsoft Whiteboard
using winget.
winget uninstall --name "Microsoft Whiteboard" --exact
Id to exclude: Widgets
Set-ItemProperty -Path "Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"`
-Name "TaskbarDa"`
-Type "DWord"`
-Value "0"
Set-ItemProperty -Path "Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"`
-Name "TaskbarDa"`
-Type "DWord"`
-Value "1"
Id to exclude: Xbox
Uninstalls Xbox TCUI
using winget.
winget uninstall --name "Xbox TCUI" --exact
Uninstalls Xbox Console Companion
using winget.
winget uninstall --name "Xbox Console Companion" --exact
Uninstalls Xbox Game Bar Plugin
using winget.
winget uninstall --name "Xbox Game Bar Plugin" --exact
Uninstalls Xbox Identity Provider
using winget.
winget uninstall --name "Xbox Identity Provider" --exact
Uninstalls Xbox Game Speech Window
using winget.
winget uninstall --name "Xbox Game Speech Window" --exact
Uninstalls Xbox Game Bar
using winget.
winget uninstall --name "Xbox Game Bar" --exact
Uninstalls Xbox Accessories
using winget.
winget uninstall --name "Xbox Accessories" --exact
Uninstalls Xbox
using winget.
winget uninstall --name "Xbox" --exact
Id to include: Calculator
Uninstalls Windows Calculator
using winget.
winget uninstall --name "Windows Calculator" --exact
Id to include: Clock
Uninstalls Windows Clock
using winget.
winget uninstall --name "Windows Clock" --exact
Uninstalls Windows Alarms & Clock
using winget.
winget uninstall --name "Windows Alarms & Clock" --exact
Id to include: CustomizeThisFolder
Set-ItemProperty -Path "Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer"`
-Name "NoCustomizeThisFolder"`
-Type "DWord"`
-Value "1"
Set-ItemProperty -Path "Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer"`
-Name "NoCustomizeThisFolder"`
-Type "DWord"`
-Value "0"
Id to include: DevHome
Uninstalls DevHome
using winget.
winget uninstall "DevHome"
Id to include: DeveloperMode
Set-ItemProperty -Path "Registry::HKLM\SOFTWARE\Policies\Microsoft\Windows\Appx"`
-Name "AllowDevelopmentWithoutDevLicense"`
-Type "DWord"`
-Value "1"
Set-ItemProperty -Path "Registry::HKLM\SOFTWARE\Policies\Microsoft\Windows\Appx"`
-Name "AllowDevelopmentWithoutDevLicense"`
-Type "DWord"`
-Value "0"
Id to include: EdgeBingSideBar
Set-ItemProperty -Path "Registry::HKLM\SOFTWARE\Policies\Microsoft\Edge"`
-Name "HubsSidebarEnabled"`
-Type "DWord"`
-Value "0"
Set-ItemProperty -Path "Registry::HKLM\SOFTWARE\Policies\Microsoft\Edge"`
-Name "HubsSidebarEnabled"`
-Type "DWord"`
-Value "1"
Id to include: EdgeDefaultLocationToBlank
Set-ItemProperty -Path "Registry::HKCU\SOFTWARE\Policies\Microsoft\Edge"`
-Name "HomepageLocation"`
-Type "String"`
-Value "about:blank"
Remove-ItemProperty -Path "Registry::HKCU\SOFTWARE\Policies\Microsoft\Edge"`
-Name "HomepageLocation"
Set-ItemProperty -Path "Registry::HKCU\SOFTWARE\Policies\Microsoft\Edge"`
-Name "NewTabPageLocation"`
-Type "String"`
-Value "about:blank"
Remove-ItemProperty -Path "Registry::HKCU\SOFTWARE\Policies\Microsoft\Edge"`
-Name "NewTabPageLocation"
Id to include: ExplorerClassicMenu
New-Item -Path "Registry::HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" -Value ""
Remove-Item -Path "Registry::HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32"
Id to include: GiveAccessTo
Set-ItemProperty -Path "Registry::HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Blocked"`
-Name "{f81e9010-6ea4-11ce-a7ff-00aa003ca9f6}"`
-Type "String"`
-Value ""
Remove-ItemProperty -Path "Registry::HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Blocked"`
-Name "{f81e9010-6ea4-11ce-a7ff-00aa003ca9f6}"
Id to include: HealthCheck
Uninstalls Windows PC Health Check
using winget.
winget uninstall --name "Windows PC Health Check" --exact
Id to include: HP
Uninstalls HP Desktop Support Utilities
using winget.
winget uninstall --name "HP Desktop Support Utilities" --exact
Uninstalls HP Documentation
using winget.
winget uninstall --name "HP Documentation" --exact
Uninstalls HP Notifications
using winget.
winget uninstall --name "HP Notifications" --exact
Uninstalls HPHelp
using winget.
winget uninstall --name "HPHelp" --exact
Stop-Service -Name "HpTouchpointAnalyticsService"
Set-Service -Name "HpTouchpointAnalyticsService"`
-StartupType "Disabled"
Set-Service -Name "HpTouchpointAnalyticsService"`
-StartupType "Automatic"
Start-Service -Name "HpTouchpointAnalyticsService"
Stop-Service -Name "HPAppHelperCap"
Set-Service -Name "HPAppHelperCap"`
-StartupType "Disabled"
Set-Service -Name "HPAppHelperCap"`
-StartupType "Automatic"
Start-Service -Name "HPAppHelperCap"
Stop-Service -Name "HPDiagsCap"
Set-Service -Name "HPDiagsCap"`
-StartupType "Disabled"
Set-Service -Name "HPDiagsCap"`
-StartupType "Automatic"
Start-Service -Name "HPDiagsCap"
Stop-Service -Name "HPSysInfoCap"
Set-Service -Name "HPSysInfoCap"`
-StartupType "Disabled"
Set-Service -Name "HPSysInfoCap"`
-StartupType "Automatic"
Start-Service -Name "HPSysInfoCap"
Stop-Service -Name "hpsvcsscan"
Set-Service -Name "hpsvcsscan"`
-StartupType "Disabled"
Set-Service -Name "hpsvcsscan"`
-StartupType "Automatic"
Start-Service -Name "hpsvcsscan"
Stop-Service -Name "HotKeyServiceDSU"
Set-Service -Name "HotKeyServiceDSU"`
-StartupType "Disabled"
Set-Service -Name "HotKeyServiceDSU"`
-StartupType "Automatic"
Start-Service -Name "HotKeyServiceDSU"
Id to include: Office365
Uninstalls Microsoft 365 (Office)
using winget.
winget uninstall --name "Microsoft 365 (Office)" --exact
Id to include: OfficeCloudFiles
Set-ItemProperty -Path "Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer"`
-Name "ShowCloudFilesInQuickAccess"`
-Type "DWord"`
-Value "0"
Set-ItemProperty -Path "Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer"`
-Name "ShowCloudFilesInQuickAccess"`
-Type "DWord"`
-Value "1"
Id to include: OneDrive
Uninstalls OneDrive
using winget.
winget uninstall "OneDrive"
Id to include: Paint
Uninstalls Paint
using winget.
winget uninstall --name "Paint" --exact
Installs paint.net
using winget.
winget install --name "paint.net" --exact
Id to include: PhoneLink
Uninstalls Phone Link
using winget.
winget uninstall --name "Phone Link" --exact
Id to include: Printer
Stop-Service -Name "Spooler"
Set-Service -Name "Spooler"`
-StartupType "Disabled"
Set-Service -Name "Spooler"`
-StartupType "Automatic"
Start-Service -Name "Spooler"
Id to include: QuickAssist
Uninstalls Quick Assist
using winget.
winget uninstall --name "Quick Assist" --exact
Id to include: Teams
Uninstalls Microsoft Teams
using winget.
winget uninstall --name "Microsoft Teams" --exact
Id to include: VoiceRecorder
Uninstalls Windows Voice Recorder
using winget.
winget uninstall --name "Windows Voice Recorder" --exact
Elephant designed by Icons Producer from The Noun Project.
Unit tests should be run with elevated privileges