Site icon Kommands.com

Removing Bloatware and Useless Apps from Windows Using PowerShell

New Windows computers often come with unnecessary applications preinstalled. These apps take up disk space, slow down startup, and clutter the system. Some appear under Apps & Features, others under Programs and Features, and many are hidden as provisioned apps that reinstall for new users.

PowerShell gives administrators a clean and repeatable way to remove this bloatware in one pass.

This post covers:


What Counts as Bloatware

Bloatware typically includes:

Examples:

This script does not remove critical Windows components such as:


Types of Apps in Windows

Windows apps fall into two main categories:

Installed Apps (Per User or System)

Provisioned Apps

To truly clean a system, both must be handled.


PowerShell Script to Remove Bloatware and Useless Apps

Important notes before running:

What this script does


PowerShell Script

# ==========================================
# Windows Bloatware Removal Script
# Run as Administrator
# ==========================================

Write-Host "Starting bloatware removal..." -ForegroundColor Cyan

# List of AppX package names to remove
$BloatwareApps = @(
    "Microsoft.3DBuilder"
    "Microsoft.BingNews"
    "Microsoft.BingWeather"
    "Microsoft.GetHelp"
    "Microsoft.Getstarted"
    "Microsoft.MicrosoftOfficeHub"
    "Microsoft.MicrosoftSolitaireCollection"
    "Microsoft.MixedReality.Portal"
    "Microsoft.Office.OneNote"
    "Microsoft.People"
    "Microsoft.SkypeApp"
    "Microsoft.Todos"
    "Microsoft.XboxApp"
    "Microsoft.XboxGameOverlay"
    "Microsoft.XboxGamingOverlay"
    "Microsoft.XboxIdentityProvider"
    "Microsoft.XboxSpeechToTextOverlay"
    "Microsoft.YourPhone"
    "Microsoft.ZuneMusic"
    "Microsoft.ZuneVideo"
    "Microsoft.WindowsFeedbackHub"
    "Microsoft.WindowsMaps"
    "MicrosoftTeams"
    "Clipchamp.Clipchamp"
)

# Remove installed AppX packages for all users
foreach ($App in $BloatwareApps) {
    Write-Host "Removing installed app: $App"
    Get-AppxPackage -AllUsers -Name $App -ErrorAction SilentlyContinue |
        Remove-AppxPackage -ErrorAction SilentlyContinue
}

# Remove provisioned AppX packages so they don't reinstall
foreach ($App in $BloatwareApps) {
    Write-Host "Removing provisioned app: $App"
    Get-AppxProvisionedPackage -Online |
        Where-Object { $_.DisplayName -eq $App } |
        Remove-AppxProvisionedPackage -Online -ErrorAction SilentlyContinue
}

# ==========================================
# Remove traditional desktop programs
# (Programs and Features)
# ==========================================

$UnwantedPrograms = @(
    "McAfee"
    "Norton"
    "WildTangent"
    "HP Support Assistant"
    "Dell SupportAssist"
    "Lenovo Vantage"
)

$RegistryPaths = @(
    "HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*",
    "HKLM:\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*"
)

foreach ($Path in $RegistryPaths) {
    Get-ItemProperty $Path -ErrorAction SilentlyContinue | ForEach-Object {
        foreach ($Program in $UnwantedPrograms) {
            if ($_.DisplayName -and $_.DisplayName -like "*$Program*") {
                Write-Host "Uninstalling program: $($_.DisplayName)"
                if ($_.UninstallString) {
                    Start-Process "cmd.exe" -ArgumentList "/c $($_.UninstallString) /quiet" -Wait
                }
            }
        }
    }
}

Write-Host "Bloatware removal completed." -ForegroundColor Green

Customizing the Script

You should tailor the app lists for your environment.

To see all installed AppX apps:

Get-AppxPackage -AllUsers | Select Name

To see provisioned apps:

Get-AppxProvisionedPackage -Online | Select DisplayName

Add or remove entries from the $BloatwareApps array as needed.


When to Use This Script

This script is ideal for:

For domain environments, this script can also be deployed via:


Final Thoughts

Windows bloatware is more than an annoyance—it impacts performance, storage, and user experience. With a single PowerShell script, you can standardize cleanup, reduce manual effort, and keep systems lean.

Exit mobile version