Declutter Windows 10 by Removing Built-In Store Apps

Table of Contents
🧹 Clearing the Clutter: A Smarter Start to Windows 10
Windows 10 comes pre-installed with a large number of apps that consume system resources, use network data, update automatically, and display notifications. Many of these apps are only fully functional once Windows 10 is linked to a Microsoft account.
In this guide, we’ll use a post-installation method involving a PowerShell script (with a few minor modifications), executed under the built-in Administrator account.
To begin, we’ll first enable the Administrator account using Command Prompt:
net user Administrator /active:yes
📋 Exceptions & Logging
We won’t be removing all built-in apps—specifically, essential ones like the Microsoft Store and others that are tightly integrated with the Windows GUI. These apps are necessary for system stability and usability, so we’re keeping them to preserve key interface functionality.
The PowerShell script we’ll be using was originally created by Ben Hunter. Although his original post was written for Windows 8.1, the script still works well on Windows 10. Full credit goes to him — you can find the original script here. I’ve made a few small modifications to better suit this process.
🛠️ Why These Modifications Matter
Our objective is to ensure that the unwanted apps are not reinstalled for new user accounts. To do this properly, we must remove the provisioned packages — not just the apps installed for the current user.
That’s where this script becomes powerful:
It removes each app listed in the $AppList
by targeting both the current and provisioned instances.
My version of the script also adds basic logging for visibility:
- 📁 Creates a
TEMP
folder on the root of theC:\
drive - 📝 Generates a file called
AppxBefore.txt
listing all installed packages before the script runs - 📝 Generates a second file called
AppxAfter.txt
listing installed packages after the script finishes
This before-and-after comparison lets you track changes and adjust the $AppList
as needed.
🧾 Modifying the $AppList
Below is the PowerShell script used to remove built-in Windows 10 apps. The core of this script is the $AppList
array — a list of app names you want to remove.
Feel free to customize this list to match your preferences. For example, you can add or remove specific app names to control exactly which ones are uninstalled.
✏️ How to Modify the Script
- Copy the script code (provided below) into Notepad or any plain text editor.
- Save the file with a
.ps1
extension — for example:Win10RemoveApps.ps1
- Run the script using PowerShell as the built-in Administrator (after enabling the account if needed).
💡 Tip: Make sure file extensions are visible in Windows Explorer so you don’t accidentally save the file as
Win10RemoveApps.ps1.txt
.
Once you’ve saved and edited the script, you’re ready to run it and start removing unwanted provisioned apps from Windows 10.
# Create TEMP directory if it doesn't exist
$TempPath = "C:\TEMP"
if (-not (Test-Path $TempPath)) {
New-Item -Path $TempPath -ItemType Directory | Out-Null
}
# Log installed packages before removal
Get-AppxPackage | Select-Object Name, PackageFullName | Out-File "$TempPath\AppxBefore.txt"
# List of apps to remove
$AppsList = @(
"Microsoft.WindowsCommunicationsApps",
"Microsoft.XboxApp",
"Microsoft.SkypeApp",
"Microsoft.MicrosoftSolitaireCollection",
"Microsoft.ZuneMusic",
"Microsoft.ZuneVideo",
"Microsoft.MicrosoftOfficeHub",
"Microsoft.3DBuilder",
"king.com.CandyCrushSodaSaga",
"9E2F88E3.Twitter",
"Microsoft.Messaging",
"Flipboard.Flipboard",
"ShazamEntertainmentLtd.Shazam",
"ClearChannelRadioDigital.iHeartRadio",
"Microsoft.MinecraftUWP",
"XboxOneSmartGlass"
)
foreach ($App in $AppsList) {
# Get the installed package full name for the current user
$Package = Get-AppxPackage -Name $App -ErrorAction SilentlyContinue
$PackageFullName = $Package?.PackageFullName
# Get the provisioned package full name (for all users)
$ProPackage = Get-AppxProvisionedPackage -Online | Where-Object { $_.DisplayName -eq $App }
$ProPackageFullName = $ProPackage?.PackageName
if ($PackageFullName) {
Write-Host "Removing installed package: $App"
try {
Remove-AppxPackage -Package $PackageFullName -ErrorAction Stop
} catch {
Write-Warning "Failed to remove package $App: $_"
}
} else {
Write-Host "Installed package not found: $App"
}
if ($ProPackageFullName) {
Write-Host "Removing provisioned package: $ProPackageFullName"
try {
Remove-AppxProvisionedPackage -Online -PackageName $ProPackageFullName -ErrorAction Stop
} catch {
Write-Warning "Failed to remove provisioned package $ProPackageFullName: $_"
}
} else {
Write-Host "Provisioned package not found: $App"
}
}
# Log installed packages after removal
Get-AppxPackage | Select-Object Name, PackageFullName | Out-File "$TempPath\AppxAfter.txt"
📜 Script Summary & Breakdown
What this script does:
- Creates a TEMP folder: Ensures
C:\TEMP
exists to store log files. - Logs installed apps before removal: Saves a snapshot of all installed AppX packages to
AppxBefore.txt
. - Defines apps to remove: Uses the
$AppsList
array to specify unwanted built-in apps. - Removes installed packages: For each app in the list, uninstalls it from the current user.
- Removes provisioned packages: Also deletes the provisioned packages so new users won’t get them.
- Logs installed apps after removal: Saves a second snapshot of remaining AppX packages to
AppxAfter.txt
. - Error handling: Includes warnings if any package removal fails or packages aren’t found.
This script helps you clean up Windows 10 by removing unnecessary built-in apps both for the current user and all future users on the machine.
🗑️ Uninstalling Store Apps with PowerShell
Now that you’ve saved the script locally on the machine you want to clean up, you’re ready to run it. Follow these steps carefully to ensure a smooth execution.
⚙️ Step 1: Run PowerShell as Administrator
- Open Windows PowerShell (⚠️ not PowerShell ISE).
- Right-click and choose “Run as Administrator.”
Before you can run scripts, you need to allow script execution by changing the PowerShell execution policy.
Run the following command:
Set-ExecutionPolicy Unrestricted
🛡️ Note: This temporarily allows all scripts to run. We’ll reset it afterward.
📂 Step 2: Navigate to the Script Location
Use the cd
command to move to the folder where you saved the script. For example:
cd C:\Scripts
Once you’re in the correct directory, run the script like this:
./Win10RemoveApps.ps1
🔐 Step 3: Restore Script Execution Policy
After the script completes, it’s good practice to restore your previous execution policy:
Set-ExecutionPolicy Restricted
🧹 Post-Run Notes
Because this is a post-install method, you may encounter a few visual leftovers in the Start Menu:
- Some removed apps may leave behind blank icons or names.
- You can usually remove these manually by right-clicking and selecting Uninstall.
- If no option appears, they are simply visual remnants — not active apps.
If this bothers you, there’s a more complete cleanup method:
👤 Delete and recreate the user profile.
When you log in again, the Start Menu will be clean, and the removed apps won’t return (thanks to the removal of provisioned packages).
⚠️ Make sure to back up all user data before deleting a user profile.
🛠️ Fixing AppX Package Issues After Username Change
If a user account has been renamed in Active Directory, and the user logs into a Windows 10 machine joined to the organization’s domain, they may encounter issues with built-in Windows Store Apps — such as apps failing to start, crashing, or not opening at all.
This is a common issue tied to AppX packages and how they’re associated with the user profile.
✅ Solution: Re-register AppX Packages
To resolve this, follow the steps below:
Open PowerShell as Administrator and run the following command:
Add the affected user to the Local Administrators group on the client machine.
Have the user log in directly to the machine with their domain credentials.
Get-AppxPackage | ForEach-Object { Add-AppxPackage -DisableDevelopmentMode -Register ($_.InstallLocation + 'AppxManifest.xml')}
If the above command does not work, try this other variation of it below:
Get-AppxPackage | ForEach-Object { Add-AppxPackage -DisableDevelopmentMode -Register ($_.InstallLocation + '\AppxManifest.xml')}
Here is one from ChatGPT:
Get-AppxPackage -AllUsers | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
Try each one if they don’t work, I’ve found some machines one or the others work.
✅ Conclusion
And there you have it — a cleaner, leaner Windows 10 setup without all the unnecessary bloat.
Now, just unpin any remaining unwanted shortcuts from the Start Menu and arrange things the way you like. You’ll be left with a much more streamlined interface and fewer distractions.
💡 Pro Tip:
This script can also be used as part of a Task Sequence in MDT (Microsoft Deployment Toolkit) when imaging multiple machines. However, an even more robust approach is to remove the default apps before the OS installs by modifying theinstall.wim
file within your Windows installation media.
Whether you’re applying this post-installation or integrating it into your deployment workflow, removing unneeded apps gives users a faster and more focused Windows experience.
🌿 Final Thoughts
Taking control of the default Windows 10 experience not only improves performance and usability but also gives you — and your users — a system that’s tailored, efficient, and free of distractions. Whether you’re managing one machine or hundreds, a little cleanup goes a long way.

My name is Dex, author at WinReflection.
I am a Christian, conservative, truth-seeker, and problem-solver who is not afraid to be vocal about important or controversial issues—silence leads to death. There’s more to life than the worldly status quo, and that’s why many are sad and depressed—they’re suffocating. Truth and purpose can bring fresh air into one’s life, and that’s my mission. My sidebar content should not trigger you, the proof is all there.
📖 John 3:16: For God so loved the world that he gave his one and only Son, that whoever believes in him shall not perish but have eternal life.
Leave a Reply
Want to join the discussion?Feel free to contribute!