Navigate / search

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

  1. Open/Create a new group policy object in the “Group Policy Management Editor”
  2. Navigate to Computer Configuration > Administrative Templates > Windows Components > Cloud Content
  3. Click on “Turn off Microsoft consumer experience
  4. Switch the status of the policy to enabled.
Computer Configuration > Administrative Templates > Windows Components > Cloud Content

All third party applications will be removed from you client.

Windows 10 Professional – This setting was turned off by Microsoft since version 1607. Even if you setup the registry manually these setting will have no effect! Microsoft provides a list of GPO settings that are deactivated for Windows 10 Professional. https://docs.microsoft.com/en-us/windows/client-management/group-policies-for-enterprise-and-education-editions

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“.

Leave a comment

name*

email* (not published)

website

This site uses Akismet to reduce spam. Learn how your comment data is processed.