Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The reliable way to remove Windows 11 inbox AppX/MSIX applications during an SCCM (now Microsoft Configuration Manager) deployment is to run a PowerShell step after Setup Windows and ConfigMgr. Remove matching packages twice: use Remove-AppxProvisionedPackage to stop installation for future users, and Remove-AppxPackage to remove copies already installed for users. Do not treat this as a universal debloater: OEM Win32 software, Store dependencies and policy-controlled features require separate handling.

What “Windows 11 bloatware” includes

“Bloatware” is an organizational decision, not a fixed Microsoft list. It may include inbox AppX/MSIX packages such as Xbox components, Clipchamp, consumer Teams, News, Solitaire, Get Help, Feedback Hub, Phone Link and promotional applications. The inventory changes by Windows 11 release, edition, language, architecture and servicing state.

OEM support, diagnostic and promotional utilities are often Win32 applications. They require an MSI product-code uninstall, vendor executable, winget, registry-based detection or a Configuration Manager application—not Remove-AppxPackage. Consumer-experience suggestions, Widgets, Chat, OneDrive and Edge first-run behavior are policy or configuration matters rather than simple AppX deprovisioning.

Understand installed versus provisioned packages

Windows maintains two relevant AppX states:

  • Installed package: present in an existing user profile. Remove-AppxPackage removes this state.
  • Provisioned package: stored in the Windows image and automatically installed for newly created users. Remove-AppxProvisionedPackage removes this state.

Removing a provisioned package does not necessarily remove copies already installed for active users. Microsoft documents this distinction in its AppX and DISM guidance. A deployment that needs both outcomes must perform both operations.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
Sale
Microsoft Windows 11 (USB)
  • Less chaos, more calm. The refreshed design of Windows 11 enables you to do what you want effortlessly.
  • Biometric logins. Encrypted authentication. And, of course, advanced antivirus defenses. Everything you need, plus more, to protect you against the latest cyberthreats.
  • Make the most of your screen space with snap layouts, desktops, and seamless redocking.
  • Widgets makes staying up-to-date with the content you love and the news you care about, simple.
  • Stay in touch with friends and family with Microsoft Teams, which can be seamlessly integrated into your taskbar. (1)

Place the step after Windows and ConfigMgr setup

Use the full installed operating system, not Windows PE, for normal AppX cleanup. Place the step in this order:

  1. Apply operating-system image.
  2. Apply Windows settings and drivers.
  3. Run Setup Windows and ConfigMgr.
  4. Run the AppX-removal PowerShell step.
  5. Install required applications and packages.
  6. Apply organizational policies and capture or prepare the device.

Configuration Manager guidance recommends placing custom PowerShell actions after Setup Windows and ConfigMgr when they depend on the client or full Windows environment. See the task-sequence step documentation. Running in WinPE requires the PowerShell component and correct offline-target handling, so it is not the normal choice for this procedure.

Inventory the exact Windows 11 build

Run these commands as administrator on a representative deployed image:

Get-AppxProvisionedPackage -Online |
    Sort-Object DisplayName |
    Select-Object DisplayName, PackageName

Get-AppxPackage -AllUsers |
    Sort-Object Name |
    Select-Object Name, PackageFullName, PackageUserInformation

Use the results to build a release-specific removal list. Do not copy a package list from an old Windows 10 script. Package names can change after feature updates, language-pack installation, edition changes or OEM servicing.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Know which identifier a command expects

  • DisplayName: friendly provisioned-package name.
  • PackageName: provisioned package identity used by Remove-AppxProvisionedPackage -PackageName.
  • PackageFullName: versioned installed identity used by Remove-AppxPackage -Package.
  • PackageFamilyName (PFN): family identifier used by policy-based removal.

For example, find a PFN with:

Get-AppxPackage *Notepad* |
    Select-Object Name, PackageFamilyName

Build an explicit, conservative removal list

Patterns make a list maintainable, but every match should be approved and tested against the target image:

$RemovePatterns = @(
    'Microsoft.Xbox*'
    'Microsoft.GamingApp*'
    'Microsoft.BingNews*'
    'Microsoft.BingWeather*'
    'Microsoft.GetHelp*'
    'Microsoft.Getstarted*'
    'Microsoft.MicrosoftSolitaireCollection*'
    'Microsoft.WindowsFeedbackHub*'
    'Microsoft.YourPhone*'
    'MicrosoftTeams*'
    'Clipchamp.Clipchamp*'
)

Do not include core Store, framework or productivity components merely because they appear in inventory. Unless your organization has tested and approved their removal, exclude:

Microsoft.WindowsStore
Microsoft.StorePurchaseApp
Microsoft.DesktopAppInstaller
Microsoft.WindowsCalculator
Microsoft.Windows.Photos
Microsoft.WindowsNotepad
Microsoft.WindowsTerminal
Microsoft.VCLibs
Microsoft.UI.Xaml

Framework packages such as Microsoft.VCLibs and Microsoft.UI.Xaml may be dependencies for other applications. Broad wildcards can break application installation or future servicing.

Deployment-ready PowerShell script

Save the following as Remove-Windows11Bloatware.ps1. Customize the patterns after inventory, sign it where required, and test it on the exact image, language set and application baseline you deploy.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #2
Microsoft System Builder | Windоws 11 Home | Intended use for new systems | Install on a new PC | Branded by Microsoft
  • STREAMLINED & INTUITIVE UI, DVD FORMAT | Intelligent desktop | Personalize your experience for simpler efficiency | Powerful security built-in and enabled.
  • OEM IS TO BE INSTALLED ON A NEW PC with no prior version of Windows installed and cannot be transferred to another machine.
  • OEM DOES NOT PROVIDE SUPPORT | To acquire product with Microsoft support, obtain the full packaged “Retail” version.
  • PRODUCT SHIPS IN PLAIN ENVELOPE | Activation key is located under scratch-off area on label.
  • GENUINE WINDOWS SOFTWARE IS BRANDED BY MIRCOSOFT ONLY.
[CmdletBinding()]
param(
    [string]$LogPath = "$env:WINDIRTempRemove-Windows11Bloatware.log"
)

$ErrorActionPreference = 'Stop'

function Write-Log {
    param(
        [Parameter(Mandatory)][string]$Message,
        [ValidateSet('INFO','WARN','ERROR')][string]$Level = 'INFO'
    )
    $timestamp = Get-Date -Format 'yyyy-MM-dd HH:mm:ss'
    $line = "$timestamp [$Level] $Message"
    Write-Output $line
    Add-Content -Path $LogPath -Value $line
}

$RemovePatterns = @(
    'Microsoft.Xbox*'
    'Microsoft.GamingApp*'
    'Microsoft.BingNews*'
    'Microsoft.BingWeather*'
    'Microsoft.GetHelp*'
    'Microsoft.Getstarted*'
    'Microsoft.MicrosoftSolitaireCollection*'
    'Microsoft.WindowsFeedbackHub*'
    'Microsoft.YourPhone*'
    'MicrosoftTeams*'
    'Clipchamp.Clipchamp*'
)

$ExcludePatterns = @(
    'Microsoft.WindowsStore*'
    'Microsoft.StorePurchaseApp*'
    'Microsoft.DesktopAppInstaller*'
    'Microsoft.VCLibs*'
    'Microsoft.UI.Xaml*'
)

function Test-IsExcluded {
    param([Parameter(Mandatory)][string]$Name)
    foreach ($pattern in $ExcludePatterns) {
        if ($Name -like $pattern) { return $true }
    }
    return $false
}

try {
    New-Item -Path (Split-Path -Path $LogPath -Parent) -ItemType Directory -Force | Out-Null
    Write-Log 'Starting Windows 11 AppX/MSIX removal.'
    $os = Get-CimInstance Win32_OperatingSystem
    Write-Log "Computer: $env:COMPUTERNAME"
    Write-Log "OS: $($os.Caption); build $($os.BuildNumber)"

    $provisioned = Get-AppxProvisionedPackage -Online
    foreach ($package in $provisioned) {
        $matched = $false
        foreach ($pattern in $RemovePatterns) {
            if (($package.DisplayName -like $pattern) -or ($package.PackageName -like $pattern)) {
                $matched = $true; break
            }
        }
        if (-not $matched) { continue }
        if (Test-IsExcluded $package.DisplayName) {
            Write-Log "Skipping excluded provisioned package: $($package.DisplayName)" 'WARN'
            continue
        }
        try {
            Write-Log "Removing provisioned package: $($package.PackageName)"
            Remove-AppxProvisionedPackage -Online -PackageName $package.PackageName -ErrorAction Stop | Out-Null
        } catch {
            Write-Log "Failed to remove provisioned package $($package.PackageName): $($_.Exception.Message)" 'ERROR'
        }
    }

    $installed = Get-AppxPackage -AllUsers
    foreach ($package in $installed) {
        $matched = $false
        foreach ($pattern in $RemovePatterns) {
            if ($package.Name -like $pattern) { $matched = $true; break }
        }
        if (-not $matched) { continue }
        if (Test-IsExcluded $package.Name) {
            Write-Log "Skipping excluded installed package: $($package.Name)" 'WARN'
            continue
        }
        try {
            Write-Log "Removing installed package for all users: $($package.PackageFullName)"
            Remove-AppxPackage -Package $package.PackageFullName -AllUsers -ErrorAction Stop
        } catch {
            Write-Log "Failed to remove installed package $($package.PackageFullName): $($_.Exception.Message)" 'WARN'
        }
    }
    Write-Log 'Windows 11 AppX/MSIX removal completed.'
    exit 0
} catch {
    Write-Log "Fatal error: $($_.Exception.Message)" 'ERROR'
    exit 1
}

A pattern matching nothing is logged only indirectly by the absence of a removal. That is normally a non-error because package inventories differ; maintain a separate inventory report if you need explicit “not found” auditing. The script intentionally does not promise permanent removal: feature updates, Store activity, policies, language packs and OEM provisioning can change the inventory.

Add the script to the Configuration Manager task sequence

Create a Configuration Manager package containing the script, distribute it to the task-sequence distribution points, then open the Task Sequence Editor and choose:

Add
└── General
    └── Run PowerShell Script

Configure the step as follows:

  • Package: the package containing the script.
  • Script name: Remove-Windows11Bloatware.ps1.
  • Execution policy: Bypass, or your approved enterprise policy.
  • Timeout: long enough for enumeration and removal; 15 minutes is a reasonable starting value to validate.
  • Run account: Local System is normally sufficient.
  • Continue on error: leave disabled for a baseline cleanup unless best-effort behavior is deliberate.
  • Success codes: 0; add 3010 only if the script intentionally requests a restart.

Configuration Manager script parameters are values consumed by the script; do not enter PowerShell switches such as -NoLogo or -File as task-sequence parameters. The step must run unattended and should not restart the computer itself. Save the script in an encoding supported by your Configuration Manager process (Unicode or UTF-8 as validated in your environment), and digitally sign it when required by execution-policy controls.

You can create the step programmatically with the Configuration Manager cmdlets:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
$step = New-CMTSStepRunPowerShellScript `
    -Name "Remove Windows 11 Bloatware" `
    -PackageId "ABC00042" `
    -ScriptName "Remove-Windows11Bloatware.ps1" `
    -ExecutionPolicy Bypass `
    -TimeoutMins 15

Get-CMTaskSequence -Name "Windows 11 Enterprise Deployment" |
    Add-CMTaskSequenceStep -Step $step

References: New-CMTSStepRunPowerShellScript and Add-CMTaskSequenceStep.

Verify the result

Check provisioning

Get-AppxProvisionedPackage -Online |
    Where-Object { $_.DisplayName -like 'Microsoft.Xbox*' -or $_.DisplayName -like 'Clipchamp*' } |
    Select-Object DisplayName, PackageName

Targeted packages should no longer be listed as provisioned.

Check installed copies

Get-AppxPackage -AllUsers |
    Where-Object { $_.Name -like 'Microsoft.Xbox*' -or $_.Name -like 'Clipchamp*' } |
    Select-Object Name, PackageFullName, PackageUserInformation

Any remaining entry should be explained by the log or by an intentional exclusion.

Read the logs

The script writes C:WindowsTempRemove-Windows11Bloatware.log. Configuration Manager task-sequence logging is commonly available at C:WindowsCCMLogssmstslogsmsts.log, although the exact location varies by task-sequence phase and operating-system state.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3

Troubleshoot common failures

The app remains for the current user

Only the provisioned state was removed. Run the installed-package pass with Get-AppxPackage -AllUsers, or remove the package in the appropriate user context.

The package is not found

Check whether you used DisplayName, PackageName, PackageFullName or PFN in the wrong cmdlet. Re-run inventory on the deployed build; a different release or language may use a different identity.

Removal fails because of dependencies or protection

Review the package and its framework relationships. Do not broaden the wildcard to include VCLibs, UI.Xaml or other shared runtimes. A package can also be in use or protected by Windows.

Sysprep fails after Store-app changes

Microsoft documents Sysprep failures when Store apps are installed or updated inconsistently between users and the provisioned image. Inspect:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Get-AppxPackage -AllUsers |
    Format-List PackageFullName, PackageUserInformation

After confirming the package is not required, remove both the offending installed package and its provisioning entry. See Microsoft’s Sysprep Store-app troubleshooting guidance.

The app returns after an update

A feature update may introduce a new package name, servicing may re-provision it, a Store or policy action may reinstall it, or the OEM may have installed a separate Win32 edition. Re-run inventory after every target feature-update version and version the removal list with the Windows build.

OEM software remains

That software is probably Win32 rather than AppX. Handle it with its MSI product code, vendor uninstaller, winget, registry detection or a Configuration Manager application deployment.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Policy-based removal versus task-sequence cleanup

Microsoft’s policy-based inbox-app removal feature can maintain selected Store-app removal after deployment, but the current documentation limits it to Windows 11 version 24H2 or later on Enterprise and Education editions. The supported package is identified by PFN, and the Group Policy path is:

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Computer Configuration
└── Administrative Templates
    └── Windows Components
        └── App Package Deployment
            └── Remove Default Microsoft Store packages from the system

See the current Microsoft policy-based inbox app removal documentation and verify support for the exact build. Microsoft’s Windows IT Pro announcements also describe the feature’s evolving scope: policy-based removal of pre-installed Store apps and dynamic app removal from managed devices.

Choose a task-sequence script when cleanup must occur before first sign-in, devices include Windows 11 Pro, package-specific logic is needed, or both provisioned and installed states must be handled. Choose policy for supported Enterprise/Education devices where ongoing enforcement matters. Many organizations use both: task-sequence cleanup during imaging, then policy or Configuration Manager remediation after updates.

Other deployment options

Offline WIM servicing

If you maintain a reference image, inspect an offline Windows directory with:

Get-AppxProvisionedPackage -Path C:MountWindows

Offline servicing can avoid online-user inconsistencies, but it adds image-maintenance complexity and still does not remove ordinary Win32 OEM software. Microsoft documents online and offline operations in its DISM/AppX guidance.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Intune remediation or Win32 deployment

These are useful for already-deployed or cloud-managed devices, especially with Autopilot, Entra ID or co-management. They are less suitable when the computer must be clean before the first user experience.

Community debloat tools

Community scripts can help identify package names, but production use should require reviewed source, version handling, exclusions, logging and change control. A transparent, version-controlled script is safer than an indiscriminate one-click remover.

Operational checklist

  • Inventory installed and provisioned packages on each target Windows 11 release.
  • Approve an explicit removal list and safety exclusions.
  • Run after Setup Windows and ConfigMgr in the full operating system.
  • Remove provisioned packages and installed copies separately.
  • Log matches, skips and failures.
  • Verify both package states and review smsts.log.
  • Test Sysprep or capture workflows before production rollout.
  • Handle OEM Win32 applications with a separate uninstall method.
  • Retest after cumulative and feature updates.

The Bottom Line

A controlled, build-specific PowerShell step is the practical SCCM solution: inventory first, remove only approved AppX packages from both states, log every result, and use separate methods for OEM Win32 software and ongoing post-deployment enforcement.

Quick Recap

SaleBestseller No. 1
Microsoft Windows 11 (USB)
Microsoft Windows 11 (USB)
Make the most of your screen space with snap layouts, desktops, and seamless redocking.; FPP is boxed product that ships with USB for installation
$122.00
Bestseller No. 2
SaleBestseller No. 3

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.