Windows 10 – Remove Windows Store Applications (appx)
Even if you start installing a Windows 10 Enterprise (SAC) operating system there is still a bunch of applications installed you really don’t need in an enterprise environment. There are two ways of getting rid of these. First thing you can do is to disable the “Microsoft Consumer Experiences” (Application Set) that are automatically installed during the system deployment. That is the easiest way to get rid of apps like “Candy Crush” or “Xing”.
To get rid of the rest of applications like “Weather” & “Xbox” there is only one way to do that. You need to build a PowerShell script that is executed during your OS deployment. Eventhough the removing commands for appx packages are supported by Microsoft some applications are still not removed from the user interface completelly. I recommend to run the script during the OS deployment to avoid these kind of problems. If you start removing appx packages after the first user login sometimes the app will be removed completelly but the icon will stay in the start menu as long as you delete the user profile.
1. Hide Applications by Group Policy Settings
- Open/Create a new group policy object in the “Group Policy Management Editor”
- Navigate to Computer Configuration > Administrative Templates > Windows Components > Cloud Content
- Click on “Turn off Microsoft consumer experience“
- Switch the status of the policy to enabled.
All third party applications will be removed from you client.
2. Remove Applications by PowerShell
There are two different PowerShell commandlets that help you to remove already installed packages Get-AppxPackage and packages that will be provided to first login users Get-AppxProvisionedPackage . Before we start uninstalling the applications we need to know the correct display names of our currently installed applications. The easiest way to fin out is the following command.
Get-AppxPackage | Out-GridView
As you can see the command will show you all currently installed packages. To display all packages that will be installed to new registered users you can use the following command.
Get-AppxProvisionedPackage -Online | Out-GridView
To prevent later troubleshooting our script will always try to remove currently istalled apps and preprovisioned packages. To remove packages we can use the commandlets Remove-AppxPackage & Remove-AppxProvisionedPackage . The following script will remove the packages/apps “Microsoft.MicrosoftOfficeHub”, “Microsoft.XboxApp” and “Microsoft.WindowsFeedbackHub”. Feel free to extend $AppList
$AppList = "Microsoft.MicrosoftOfficeHub", "Microsoft.XboxApp", "Microsoft.WindowsFeedbackHub" ForEach ($App in $AppList) { $PackageFullName = (Get-AppxPackage $App).PackageFullName $ProPackageFullName = (Get-AppxProvisionedPackage -online | where {$_.Displayname -eq $App}).PackageName if ($PackageFullName){ Write-Output "Removing Package: $App" try { remove-AppxPackage -package $PackageFullName -ErrorAction Stop | Out-Null } catch { Write-Output "ERROR: $_" } } else { Write-Output "WARNING: Unable to find package: $App" } if ($ProPackageFullName){ Write-Output "Removing Provisioned Package: $ProPackageFullName" try { Remove-AppxProvisionedPackage -online -packagename $ProPackageFullName -ErrorAction Stop | Out-Null } catch { Write-Output "ERROR: $_" } } else{ Write-Output "WARNING: Unable to find provisioned package: $App" } }
The script is working fine and helped me a lot in the last years to remove unneccessary applications. If you want to use the script in you own customer environments you should definitely add a logging function to you script. I’ve explained that in the post “PowerShell – General Logging Script“.