Skip to content

Instantly share code, notes, and snippets.

@iloire
Created May 1, 2025 17:07
Show Gist options
  • Save iloire/5d44d3a682d3828a67fd50f44424ec58 to your computer and use it in GitHub Desktop.
Save iloire/5d44d3a682d3828a67fd50f44424ec58 to your computer and use it in GitHub Desktop.
# Uninstall-DefaultWindows11Apps.ps1
# Run this script as Administrator in PowerShell
Write-Host "Uninstalling default Windows 11 apps unnecessary for development..."
# List of common Windows 11 apps to remove (add or remove as needed)
$appsToRemove = @(
"Microsoft.BingNews"
"Microsoft.BingWeather"
"Microsoft.BingFinance"
"Microsoft.XboxApp"
"Microsoft.XboxGamingOverlay"
"Microsoft.XboxGameOverlay"
"Microsoft.XboxSpeechToTextOverlay"
"Microsoft.XboxIdentityProvider"
"Microsoft.GamingApp"
"Microsoft.GetHelp"
"Microsoft.Getstarted"
"Microsoft.MicrosoftSolitaireCollection"
"Microsoft.MicrosoftStickyNotes"
"Microsoft.MixedReality.Portal"
"Microsoft.MSPaint" # Paint (remove if you don't need it)
"Microsoft.People"
"Microsoft.SkypeApp"
"Microsoft.Todos"
"Microsoft.WindowsAlarms"
"Microsoft.WindowsCamera"
"Microsoft.WindowsFeedbackHub"
"Microsoft.WindowsMaps"
"Microsoft.WindowsSoundRecorder"
"Microsoft.YourPhone"
"Microsoft.ZuneMusic"
"Microsoft.ZuneVideo"
"MicrosoftTeams" # Microsoft Teams (personal version)
"Microsoft.Clipchamp" # Clipchamp video editor
"Microsoft.Windows.Photos" # Photos app (remove if you use alternatives)
)
# Loop through the list and attempt to remove each app
foreach ($app in $appsToRemove) {
Write-Host "Attempting to remove $app..."
# Remove the app for the current user
$package = Get-AppxPackage -Name $app -ErrorAction SilentlyContinue
if ($package) {
try {
$package | Remove-AppxPackage -ErrorAction Stop
Write-Host "$app successfully removed."
}
catch {
Write-Host "Failed to remove $app. Error: $_"
}
}
else {
Write-Host "$app not found or already removed."
}
}
# Optionally, remove provisioned apps (prevents reinstall for new users)
# Uncomment the following block if you want to remove apps for all users
<#
Write-Host "Removing provisioned apps (for all users)..."
foreach ($app in $appsToRemove) {
$provisioned = Get-AppxProvisionedPackage -Online | Where-Object { $_.DisplayName -eq $app }
if ($provisioned) {
try {
Remove-AppxProvisionedPackage -Online -PackageName $provisioned.PackageName -ErrorAction Stop
Write-Host "Provisioned $app successfully removed."
}
catch {
Write-Host "Failed to remove provisioned $app. Error: $_"
}
}
else {
Write-Host "Provisioned $app not found."
}
}
#>
Write-Host "Uninstallation process completed. Some apps may require a system restart to fully remove."
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment