Uninstalls (and deregisters) Windows APPX packages that are preinstalled by default.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Claire a2c5317a0e Update 'README.md' 2 years ago
LICENSE Initial commit 2 years ago
README.md Update 'README.md' 2 years ago
remove-apps.ps1 Initial commit 2 years ago


Remove Default Apps

This script makes it simple to remove unnecessary Microsoft, OEM, and third-party modern app packages (APPX) which are typically preinstalled and part of an OS image.

There are two different means of removing packages:

  1. Remove-AppxPackage uninstalls packages installed for the current user.
  2. Remove-AppxProvisionedPackage -Online uninstalls staged packages - these packages are automatically deployed every time a new user profile is created.

Be careful removing staged packages. It's typically possible to redownload these packages from the Microsoft Store, but this isn't a given for every package. Windows prevents uninstalling core system packages, so you can't render your Windows installation unusable by accidentally removing a staged package, but it's always best practice to assess every package presented by the script.

The $appcsv variable contains a single, multiline, comma-delimited string. By default, this list only includes Microsoft packages.

There are three fields:

  1. name - The display name for the package. This is typically a dot-separated string, such as Microsoft.Windows.Photos.
  2. id - The Store ID for the package. If you use this script to reinstall previously-uninstalled packages, you need this ID to find the package in the Store. This ID may be obtained by finding the app in the Microsoft Store through a web browser. The ID is part of the URL for the app listing: https://www.microsoft.com/en-us/p/package-name/abc123packageid?...
  3. skip - A Boolean value; if true, the script will bypass this package, leaving it intact.

Edit $appcsv to add packages for removal, and to flag packages to be skipped the next time you run the app. You can also edit the boolean value after starting the script; look at the contents $applist while running the script.