AppXPackages

AppXPackages

Stand 11.01.2018

Die Grundsätzliche Idee zu den AppXPackages entstand während der Entwicklung von Windows 8. Dabei ging es unter anderem um die Fragestellung wie man Entwicklern eine einfache und sichere Platform bietet um Apps ohne großen Aufwand auf einem System zu installieren und aktuell zuhalten. Die bis dato verwendeten Methoden über eine ausführbare Datei oder ein *.msi Packet, waren bei der Vielzahl an alternativen App Platformen zur einfachen Einbindung unter Windows nicht mehr zeitgemäß. Daher wurde 2008 unter der ISO/IEC 29500-2  ein Standard festgelegt der von Microsoft bereits 2006 veröffentlicht wurde. Hinter AppXPackages verbergen sich eine Vielzahl von Anwendungen. Darunter fallen zahlreiche nützliche wie der Calculator oder der Calender, allerdings auch einige Apps auf die man gut und gerne verzichten kann.

AppXPackages unter Windows 10

Ich habe mir die Packages auf dem Win 10 Build 16299 angesehen um einen Überblick darüber zu erhalten ob diese Anwendungen einen System relevanten Hintergrund besitzen oder ob man einen Teil davon entfernen kann. AppXPackages werden generell in 5 PackageTypeFilter unterteilt Bundle, Resource, Main, Framework, None. Die Anzahl der Anwendungen ist abhängig von der Tatsache ob bei der Installation von Windows 10 die Benutzerdefinierte Variante verwendet wurde oder die Update Variante. Wählt man die Benutzerdefinierte Installation und belässt man beim ersten Start des Systems alle Einstellung so wie das System es vorgibt dann variiert  die Anzahl der Packages zwischen 115-182. Hintergrund sind Updates während der Einrichtung des Benutzerkontos und in den ersten Minuten nachdem System Start, darunter fallen einige Main Packages aber auch zusätzliche Resource Packages für bereits vorhandene Anwendung. Ebenfalls können ab diesem Zeitpunkt Apps von Drittanbietern installiert werden die ihren Content zum Beispiel in der Taskleiste anzeigen lassen möchten. Wenn alle Updates während der Installation unterbunden werden befinden sich zunächst nur Microsoft eigene AppXPackages auf dem System. Daher habe ich während der Einrichtung Cortana „deaktiviert“ und folgende Datenschutz Einstellung gewählt

 

Nach dem Abschluss der Installation können die grundsätzlich vorhandenen Packages und das benutzte Build eines vorliegenden Systems wie folgt abgefragt werden.

$System = [System.Environment]::OSVersion.Version
$AllPackages = Get-AppxPackage -PackageTypeFilter Bundle,Resource,Main,Framework,None | Sort-Object
$i = 0

foreach($Package in $AllPackages)
 {
   Write-host $Package.Name
   $i++
 }

Write-host "Count $i Packages on Windows Major $($system.major) Build $($System.Build)"

 

Die Liste umfasst alle Packages inklusive ihres jeweiligen PackageTypeFilter, dazu die Kategorien System relevant und nützlich. System relevante AppXPackages sind jene Packages die nicht auf direktem Weg gelöscht werden können. Die Kategorie Nützlich AppXPackages basiert auf Erfahrungswerten. Wird das cmdlet Get-AppxPackage ohne den Parameter -Packagetype gefolgt von den 5 Filtern angegeben, werden nur Packages der Kategorien Main und Framework angezeigt. Bei Fett markierten AppXPackages handelt es sich um Drittanbieter Anwendungen.

AppXPackagesMainBundleFrameworkResourceSystem relevantnützlich
1527c705-839a-4832-9118-54d4Bd6a0c89XX
A278AB0D.DisneyMagicKingdomsX
A278AB0D.MarchofEmpiresX
c5e2524a-ea46-4f67-841f-6a9465d9d515XX
DolbyLaboratories.DolbyAccessX
E2A4F912-2574-4A75-9BB0-0D023378592BXX
F46D4000-FD22-4DB4-AC8E-4E1DDDE828FEXX
InputAppXX
king.com.BubbleWitch3SagaX
king.com.CandyCrushSodaSagaX
Microsoft.AAD.BrokerPluginXX
Microsoft.AccountsControlXX
Microsoft.Advertising.XamlX
Microsoft.Advertising.XamlXX
Microsoft.BingNewsX
Microsoft.BingNewsX
Microsoft.BingNewsX
Microsoft.BingNewsX
Microsoft.BingWeatherX
Microsoft.BingWeatherX
Microsoft.BingWeatherX
Microsoft.BingWeatherX
Microsoft.BioEnrollmentXX
Microsoft.CredDialogHostXX
Microsoft.DesktopAppInstallerX
Microsoft.DesktopAppInstallerX
Microsoft.DesktopAppInstallerX
Microsoft.DesktopAppInstallerX
Microsoft.ECAppXX
Microsoft.GetHelpX
Microsoft.GetHelpX
Microsoft.GetHelpX
Microsoft.GetHelpX
Microsoft.GetstartedX
Microsoft.GetstartedX
Microsoft.GetstartedX
Microsoft.LockAppXX
Microsoft.MessagingX
Microsoft.MessagingX
Microsoft.MessagingX
Microsoft.MessagingX
Microsoft.Microsoft3DViewerX
Microsoft.Microsoft3DViewerX
Microsoft.MicrosoftEdgeXX
Microsoft.MicrosoftOfficeHubX
Microsoft.MicrosoftOfficeHubX
Microsoft.MicrosoftOfficeHubX
Microsoft.MicrosoftSolitaireCollectionX
Microsoft.MicrosoftSolitaireCollectionX
Microsoft.MicrosoftSolitaireCollectionX
Microsoft.MicrosoftSolitaireCollectionX
Microsoft.MicrosoftStickyNotesX
Microsoft.MicrosoftStickyNotesX
Microsoft.MicrosoftStickyNotesX
Microsoft.MicrosoftStickyNotesX
Microsoft.MSPaintXX
Microsoft.MSPaintXX
Microsoft.NET.Native.Framework.1.3XX
Microsoft.NET.Native.Framework.1.3XX
Microsoft.NET.Native.Framework.1.6XX
Microsoft.NET.Native.Framework.1.6XX
Microsoft.NET.Native.Framework.1.7X
Microsoft.NET.Native.Framework.1.7XX
Microsoft.NET.Native.Runtime.1.3XX
Microsoft.NET.Native.Runtime.1.3XX
Microsoft.NET.Native.Runtime.1.4XX
Microsoft.NET.Native.Runtime.1.4XX
Microsoft.NET.Native.Runtime.1.6XX
Microsoft.NET.Native.Runtime.1.6XX
Microsoft.NET.Native.Runtime.1.7X
Microsoft.NET.Native.Runtime.1.7XX
Microsoft.Office.OneNoteX
Microsoft.Office.OneNoteX
Microsoft.Office.OneNoteX
Microsoft.OneConnectX
Microsoft.OneConnectX
Microsoft.OneConnectX
Microsoft.OneConnectX
Microsoft.PeopleX
Microsoft.PeopleX
Microsoft.PeopleX
Microsoft.PeopleX
Microsoft.PPIProjectionXX
Microsoft.Print3DX
Microsoft.Print3DX
Microsoft.Print3DX
Microsoft.Services.Store.EngagementX
Microsoft.Services.Store.EngagementX
Microsoft.SkypeAppX
Microsoft.SkypeAppX
Microsoft.SkypeAppX
Microsoft.SkypeAppX
Microsoft.StorePurchaseAppX
Microsoft.StorePurchaseAppX
Microsoft.StorePurchaseAppX
Microsoft.StorePurchaseAppX
Microsoft.VCLibs.120.00X
Microsoft.VCLibs.120.00X
Microsoft.VCLibs.140.00.UWPDesktopX
Microsoft.VCLibs.140.00.UWPDesktopX
Microsoft.VCLibs.140.00X
Microsoft.VCLibs.140.00XX
Microsoft.WalletX
Microsoft.WalletX
Microsoft.Windows.Apprep.ChxAppXX
Microsoft.Windows.AssignedAccessLockAppXX
Microsoft.Windows.CloudExperienceHostXX
Microsoft.Windows.ContentDeliveryManagerXX
Microsoft.Windows.CortanaXX
Microsoft.Windows.HolographicFirstRunXX
Microsoft.Windows.OOBENetworkCaptivePortalXX
Microsoft.Windows.OOBENetworkConnectionFlowXX
Microsoft.Windows.ParentalControlsXX
Microsoft.Windows.PeopleExperienceHostXX
Microsoft.Windows.PhotosX
Microsoft.Windows.PhotosX
Microsoft.Windows.PhotosX
Microsoft.Windows.PhotosX
Microsoft.Windows.PinningConfirmationDialogXX
Microsoft.Windows.SecHealthUIXX
Microsoft.Windows.SecondaryTileExperienceXX
Microsoft.Windows.SecureAssessmentBrowserXX
Microsoft.Windows.ShellExperienceHostXX
Microsoft.WindowsAlarmsX
Microsoft.WindowsAlarmsX
Microsoft.WindowsAlarmsX
Microsoft.WindowsAlarmsX
Microsoft.WindowsCalculatorXX
Microsoft.WindowsCalculatorXX
Microsoft.WindowsCalculatorXX
Microsoft.WindowsCalculatorXX
Microsoft.WindowsCameraXX
Microsoft.WindowsCameraXX
Microsoft.WindowsCameraXX
microsoft.windowscommunicationsappsX
microsoft.windowscommunicationsappsX
microsoft.windowscommunicationsappsX
Microsoft.WindowsFeedbackHubX
Microsoft.WindowsFeedbackHubX
Microsoft.WindowsFeedbackHubX
Microsoft.WindowsFeedbackHubX
Microsoft.WindowsMapsX
Microsoft.WindowsMapsX
Microsoft.WindowsMapsX
Microsoft.WindowsMapsX
Microsoft.WindowsSoundRecorderX
Microsoft.WindowsSoundRecorderX
Microsoft.WindowsSoundRecorderX
Microsoft.WindowsStoreX
Microsoft.WindowsStoreX
Microsoft.WindowsStoreX
Microsoft.WindowsStoreX
Microsoft.Xbox.TCUIX
Microsoft.Xbox.TCUIX
Microsoft.Xbox.TCUIX
Microsoft.XboxAppX
Microsoft.XboxAppX
Microsoft.XboxAppX
Microsoft.XboxGameCallableUIXX
Microsoft.XboxGameOverlayX
Microsoft.XboxGameOverlayX
Microsoft.XboxGameOverlayX
Microsoft.XboxIdentityProviderX
Microsoft.XboxIdentityProviderX
Microsoft.XboxSpeechToTextOverlayX
Microsoft.XboxSpeechToTextOverlayX
Microsoft.XboxSpeechToTextOverlayX
Microsoft.ZuneMusicX
Microsoft.ZuneMusicX
Microsoft.ZuneMusicX
Microsoft.ZuneMusicX
Microsoft.ZuneVideoX
Microsoft.ZuneVideoX
Microsoft.ZuneVideoX
Microsoft.ZuneVideoX
SpotifyAB.SpotifyMusicX
windows.immersivecontrolpanelXX
Windows.PrintDialogXX
XINGAG.XINGX
XINGAG.XINGX
XINGAG.XINGX
XINGAG.XINGX

In diesem Build befinden sich 31 Packages die System relevant sind und nicht ohne weitere Mittel vom System entfernt werden können. Es gibt 86 AppXPackages vom Typ Bundle oder Resource die auf diesem Build ohne eine Beeinflussung der grundsätzlichen Funktionen des Systems nach belieben entfernt werden können. Möchte man einige Packete die man nicht als nützlich ansieht von seinem System entfernen kann das obere Script ergänzt werden.

$System = [System.Environment]::OSVersion.Version
$AllPackages = Get-AppxPackage -PackageTypeFilter Bundle,Resource,Main,Framework,None | Sort-Object
$CountAll = 0
$CountRemoved = 0
$countSystem = 0
$DontRemove = 'Microsoft.WindowsCalculator','Microsoft.MSPaint'

foreach($Package in $AllPackages)
{
   if($DontRemove -notcontains $Package.Name)
   {
        Get-AppxPackage $Package.Name | Remove-AppxPackage -ErrorAction SilentlyContinue
        if($error)
        {
            $error.Clear()
            $CountSystem++
        }
        $CountRemoved++
   }
   $CountAll++
}

Write-host "Count $CountAll Packages on Windows Major $($system.major) Build $($System.Build). "
Write-host "Can't remove $($CountSystem - $($CountAll - $CountRemoved)) required System AppXPackages. "
Write-host "$($CountAll - $CountRemoved) Packages are protected by `$DontRemove."

Dieses Script entfernt keine System relevanten AppXPackages, über die Variable $DontRemove können Packages angegeben werden die nicht vom System gelöscht werden sollen. Abschließend erfolgt eine kleine Auswertung. Während der Laufzeit des Scriptes können bereits auftretende Side Effects beobachtet werden, da durch das entfernen der Packages das Aussehen der Taskleiste verändert wird. Dies deutet darauf hin das es Abhängigkeiten zwischen AppXPackages gibt und den Symbolen in der Taskleiste. Es ist nicht verwunderlich da das Konzept der AppXPackages unter anderem darauf abzielt, dem User Apps zur Verfügung zu stellen.

 

 

 

 

 

 


AppXPackages unter Windows Server 2016

Die Liste der AppXPackages eines Windows Server 2016 Build 14393 ist deutlich kürzer sie umfasst 14 Packages:

AppXPackagesMainBundleFrameworkResource
Microsoft.AAD.BrokerPluginX
Microsoft.AccountsControlX
Microsoft.BioEnrollmentX
Microsoft.LockAppX
Microsoft.Windows.Apprep.ChxAppX
Microsoft.Windows.AssignedAccessLockAppX
Microsoft.Windows.CloudExperienceHostX
Microsoft.Windows.CortanaX
Microsoft.Windows.SecondaryTileExperienceX
Microsoft.Windows.ShellExperienceHostX
Microsoft.XboxGameCallableUIX
windows.immersivecontrolpanelX
Windows.MiracastViewX
Windows.PrintDialogX