Win10 appx

From Help
Jump to: navigation, search

Format: Brief Scope

Return to Main Page

Explanations

Windows 10 has two different sets of preinstalled AppX applications. The first, referred to as ProvisionedPackage, are the “installation files”. Then there are the AppXPackages themselves, which are the actual installed AppX. The AppX can bring in unwanted games, potential security issues, and wasted bandwith.

The best time to remove these is before having any other users other than the local administrator log on. Once other users begin to logon, they start generating their own AppXPackages that must be removed under that particular user profile. Failure to to so can cause system instability including the inability to use utilities like Sysprep.

Return to Top

AppXProvisioned

The initial step is to remove the preinstallation packages from the system. Many of them cannot be removed as the are part of the system infrastructure, so the following list are ones that I have been able to remove.

  • Get list of AppXProvisioned. This needs to be run as the local Admin
 Get-AppXProvisionedPackage -Online | Select PackageName | out-file -filepath $home\Desktop\AppxProvisionedPackage.txt
  • Open the text file AppxProvisionedPackage.txt that should now be on your desktop.
  • The following is a list that I use as a starter base:
Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -Like "*Holo*"} | ForEach-Object { Remove-AppxProvisionedPackage -Online -PackageName $_.PackageName}
Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -Like "*Xbox*"} | ForEach-Object { Remove-AppxProvisionedPackage -Online -PackageName $_.PackageName}
Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -Like "*ContactSupport*"} | ForEach-Object { Remove-AppxProvisionedPackage -Online -PackageName $_.PackageName}
Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -Like "*Bing*"} | ForEach-Object { Remove-AppxProvisionedPackage -Online -PackageName $_.PackageName}
Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -Like "*Duolingo*"} | ForEach-Object { Remove-AppxProvisionedPackage -Online -PackageName $_.PackageName}
Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -Like "*NetworkSpeedTest*"} | ForEach-Object { Remove-AppxProvisionedPackage -Online -PackageName $_.PackageName}
Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -Like "*WindowsMaps*"} | ForEach-Object { Remove-AppxProvisionedPackage -Online -PackageName $_.PackageName}
Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -Like "*WindowsFeedbackHub*"} | ForEach-Object { Remove-AppxProvisionedPackage -Online -PackageName $_.PackageName}
Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -Like "*StorePurchaseApp*"} | ForEach-Object { Remove-AppxProvisionedPackage -Online -PackageName $_.PackageName}
Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -Like "*SkypeApp*"} | ForEach-Object { Remove-AppxProvisionedPackage -Online -PackageName $_.PackageName}
Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -Like "*solitairecollection*"} | ForEach-Object { Remove-AppxProvisionedPackage -Online -PackageName $_.PackageName}
Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -Like "*Wunderlist*"} | ForEach-Object { Remove-AppxProvisionedPackage -Online -PackageName $_.PackageName}
Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -Like "*Twitter*"} | ForEach-Object { Remove-AppxProvisionedPackage -Online -PackageName $_.PackageName}
Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -Like "*Microsoft.Wallet*"} | ForEach-Object { Remove-AppxProvisionedPackage -Online -PackageName $_.PackageName}
Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -Like "*Microsoft.People*"} | ForEach-Object { Remove-AppxProvisionedPackage -Online -PackageName $_.PackageName}
Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -Like "*Microsoft.Messaging*"} | ForEach-Object { Remove-AppxProvisionedPackage -Online -PackageName $_.PackageName}
Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -Like "*Microsoft.3DBuilder*"} | ForEach-Object { Remove-AppxProvisionedPackage -Online -PackageName $_.PackageName}
Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -Like "*Microsoft.Getstarted*"} | ForEach-Object { Remove-AppxProvisionedPackage -Online -PackageName $_.PackageName}
Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -Like "*Microsoft.Messaging*"} | ForEach-Object { Remove-AppxProvisionedPackage -Online -PackageName $_.PackageName}
Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -Like "*Microsoft.MicrosoftOfficeHub*"} | ForEach-Object { Remove-AppxProvisionedPackage -Online -PackageName $_.PackageName}
Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -Like "*Microsoft.OneConnect*"} | ForEach-Object { Remove-AppxProvisionedPackage -Online -PackageName $_.PackageName}
Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -Like "*Microsoft.StorePurchaseApp*"} | ForEach-Object { Remove-AppxProvisionedPackage -Online -PackageName $_.PackageName}
Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -Like "*microsoft.windowscommunicationsapps*"} | ForEach-Object { Remove-AppxProvisionedPackage -Online -PackageName $_.PackageName}
Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -Like "*Microsoft.Office.OneNote*"} | ForEach-Object { Remove-AppxProvisionedPackage -Online -PackageName $_.PackageName}
#Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -Like "*Zune*"} | ForEach-Object { Remove-AppxProvisionedPackage -Online -PackageName $_.PackageName}

AppXPackages

  • To get a list of what is installed under what user:
get-appxpackage -AllUsers  | format-list -Property Name, PackageFullName,PackageUserInformation | out-file -filepath appxpackage.txt

I've found that it helps to be very specific in package removal:

Remove-AppxPackage Microsoft.OneConnect_2.1709.2484.0_x64__8wekyb3d8bbwe
Remove-AppxPackage Microsoft.Office.OneNote_17.9029.20991.0_x64__8wekyb3d8bbwe
Remove-AppxPackage Microsoft.OneConnect_2.1709.2484.0_x64__8wekyb3d8bbwe
Remove-AppxPackage Microsoft.WindowsSoundRecorder_10.1709.2703.0_x64__8wekyb3d8bbwe
Remove-AppxPackage Microsoft.StorePurchaseApp_11801.1801.19001.0_x64__8wekyb3d8bbwe
Remove-AppxPackage Microsoft.Messaging_3.37.23004.0_x64__8wekyb3d8bbwe
Remove-AppxPackage Microsoft.Office.Sway_18.1711.50601.0_x64__8wekyb3d8bbwe
Remove-AppxPackage microsoft.windowscommunicationsapps_17.9029.21675.0_x64__8wekyb3d8bbwe
Remove-AppxPackage microsoft.windowscommunicationsapps_17.9029.21675.0_x64__8wekyb3d8bbwe
Remove-AppxPackage Microsoft.Services.Store.Engagement_10.0.17112.0_x86__8wekyb3d8bbwe
Remove-AppxPackage Microsoft.BingWeather_4.22.3254.0_x64__8wekyb3d8bbwe
Remove-AppxPackage Microsoft.People_10.2.2791.0_x64__8wekyb3d8bbwe 
  • Others suggest to use piping and wildcards:
Get-AppxPackage -AllUsers *Bing* | Remove-AppxPackage

Return to Top

Removing Windows Mail

:: Take ownership of the folders
TakeOwn /F "C:\Program Files\Windows Mail" /R /D Y
TakeOwn /F "C:\Program Files (x86)\Windows Mail" /R /D Y

:: Grant full control to Administrators, the user running this, and SYSTEM
ICACLS "C:\Program Files\Windows Mail" /T /Grant:R "Administrators":(OI)(CI)F
ICACLS "C:\Program Files\Windows Mail" /T /Grant:R %UserDomain%\%UserName%:(OI)(CI)F
ICACLS "C:\Program Files\Windows Mail" /T /Grant:R "SYSTEM":(OI)(CI)F
ICACLS "C:\Program Files (x86)\Windows Mail" /T /Grant:R "Administrators":(OI)(CI)F
ICACLS "C:\Program Files (x86)\Windows Mail" /T /Grant:R %UserDomain%\%UserName%:(OI)(CI)F
ICACLS "C:\Program Files (x86)\Windows Mail" /T /Grant:R "SYSTEM":(OI)(CI)F

:: Unhide WinMail.exe
Attrib -S -H "C:\Program Files\Windows Mail\WinMail.exe"
Attrib -S -H "C:\Program Files (x86)\Windows Mail\WinMail.exe"

:: Delete the WinMail folders
RD /S /Q "C:\Program Files\Windows Mail"
RD /S /Q "C:\Program Files (x86)\Windows Mail"

Return to Top

References

Return to Top