Out of the box, Windows 10 and Windows 11 come loaded with Universal Windows Platform (UWP) apps that most professionals never use. These applications clutter your Start menu, consume background memory, and waste disk space. Worse, Microsoft deliberately grays out the "Uninstall" button for many of these default apps in the Settings menu. Thankfully, system administrators can use native PowerShell commands to force-remove them from the entire operating system.
Key Points Summary
- Standard Windows Settings block you from deleting core apps, but PowerShell bypasses these restrictions entirely.
- The script targets two areas: your current active profile and the "provisioned" hidden files that create apps for new users.
- This method works seamlessly on both Windows 10 and modern Windows 11 environments.
- You have complete control—simply delete a line of code from the script to keep a specific app you actually want.
How to Run the Removal Script
Before executing the script, it is highly recommended to save your work. The script runs quietly in the background and removes the applications sequentially.
- Click the Start Menu, type
PowerShell, right-click the Windows PowerShell app, and select Run as Administrator. - Review the script provided below. If you see an app you want to keep (for example,
Microsoft.WindowsCalculatororMicrosoft.Windows.Photos), simply delete that specific line from the list. - Copy the customized script block.
- Paste it directly into your elevated PowerShell window and press Enter.
The Automated Debloat PowerShell Script
This script uses Remove-AppxPackage to strip the apps from your current user account, and Remove-AppxProvisionedPackage to ensure Windows doesn't secretly reinstall them the next time a new user profile is created on the machine.
# Define the list of bloatware packages to remove
$packages = @(
"7EE7776C.LinkedInforWindows",
"C27EB4BA.DropboxOEM",
"Microsoft.3DBuilder",
"Microsoft.Advertising.Xaml",
"Microsoft.Appconnector",
"Microsoft.BingFinance",
"Microsoft.BingFoodAndDrink",
"Microsoft.BingHealthAndFitness",
"Microsoft.BingNews",
"Microsoft.BingSports",
"Microsoft.BingTravel",
"Microsoft.BingWeather",
"Microsoft.CommsPhone",
"Microsoft.ConnectivityStore",
"Microsoft.DesktopAppInstaller",
"Microsoft.Getstarted",
"Microsoft.Microsoft.GetHelp",
"Microsoft.Messaging",
"Microsoft.Microsoft3DViewer",
"Microsoft.MicrosoftOfficeHub",
"Microsoft.MicrosoftSolitaireCollection",
"Microsoft.MixedReality.Portal",
"Microsoft.Netflix",
"Microsoft.NetworkSpeedTest",
"Microsoft.Office.Desktop",
"Microsoft.Office.OneNote",
"Microsoft.Office.Sway",
"Microsoft.OfficeLens",
"Microsoft.OneConnect",
"Microsoft.People",
"Microsoft.Print3D",
"Microsoft.RemoteDesktop",
"Microsoft.SkypeApp",
"Microsoft.Wallet",
"Microsoft.Windows.CloudExperienceHost",
"Microsoft.Windows.NarratorQuickStart",
"Microsoft.Windows.PeopleExperienceHost",
"Microsoft.WindowsAlarms",
"Microsoft.WindowsCamera",
"Microsoft.windowscommunicationsapps",
"Microsoft.WindowsFeedbackHub",
"Microsoft.WindowsMaps",
"Microsoft.WindowsPhone",
"Microsoft.WindowsReadingList",
"Microsoft.WindowsSoundRecorder",
"Microsoft.Xbox.TCUI",
"Microsoft.XboxApp",
"Microsoft.XboxGameCallableUI",
"Microsoft.XboxGameOverlay",
"Microsoft.XboxGamingOverlay",
"Microsoft.XboxIdentityProvider",
"Microsoft.XboxLive",
"Microsoft.XboxSpeechToTextOverlay",
"Microsoft.YourPhone",
"Microsoft.ZuneMusic",
"Microsoft.ZuneVideo",
"Windows.CBSPreview"
)
# Loop through and remove each package for current and future users
ForEach ($package in $packages) {
# Remove from active user profiles
Get-AppxPackage -Name $package -AllUsers | Remove-AppxPackage -ErrorAction SilentlyContinue
# Remove from provisioned packages (stops re-installation for new users)
Get-AppxProvisionedPackage -Online |
Where-Object { $_.DisplayName -eq $package } |
Remove-AppxProvisionedPackage -Online -ErrorAction SilentlyContinue
Write-Host "Attempted removal of: $package"
}
Common Traps & Warnings
Do not blindly run the script without reading the array list! If you use the native Windows Mail app, you must remove
Microsoft.windowscommunicationsapps from the script list. If you accidentally delete a critical app, you will have to manually redownload it from the Microsoft Store.
The parameters
-AllUsers and -Online command Windows to modify the core system registry and image files. If you run this script in a standard PowerShell window, it will instantly throw "Access Denied" errors and fail.
Frequently Asked Questions (FAQ)
Yes. Both Windows 10 and Windows 11 rely on the exact same AppxPackage management system. This script functions perfectly on both operating systems to clean up the Start menu and background tasks.
Absolutely. Because you haven't removed the Microsoft Store itself, you can easily open the Store, search for "Windows Calculator" or "Xbox Game Bar," and click "Get" to reinstall any application you realize you need later.
Standard monthly security patches will not reinstall these apps. However, major annual "Feature Updates" (which essentially reinstall the OS under the hood) occasionally restore provisioned packages. You may need to re-run this script after massive system upgrades.
- Execution Type: Elevated PowerShell Script (Administrator)
- Target Scope: Currently logged-in users + future user profile templates.
- System Impact: Reclaims disk space, reduces telemetry, and lowers background RAM usage.
- Reversibility: High. Apps can be individually restored via the Microsoft Store.