AppX ermitteln, entfernen, installieren

Aus Ergun's Wiki
Wechseln zu: Navigation, Suche

Dieser Artikel beschreibt das ermitteln, löschen und installieren von AppX mittels Powershell.


Beschreibung

AppX Programme werden für jeden Nutzer einzeln installiert. Das bedeutet, dass die AppX Applikation mehrfach auf der Festplatte (im jeweiligen Benutzerprofil) vorhanden ist. Da dies manchmal unerwünscht ist, kann man eine oder alle AppX auf verschiedene Weisen von einem Rechner mit der Powershell entfernen.

Entweder löscht man die AppX aus dem zentralen Installationsverzeichnis, so dass diese

  • weder beim hinzufügen eines neuen Nutzers installiert wird,
  • noch nachträglich vom PC aus nachinstalliert werden kann.

Oder man löscht diese nur aus einem Benutzerprofil. Diesem Nutzer steht die AppX dann nicht mehr zur Verfügung, kann aber aus dem zentralen Installationsverzeichnis wieder nachinstalliert werden, solang diese nicht auch dort gelöscht wurde.

Ausgenommen hiervon sind Cortana und Microsoft Edge

Powershell Scripte

Installierte AppX ermitteln

Um zu ermitteln, ob eine bestimmte AppX einer der User installiert hat, kommt folgendes Cmdlt zum Einsatz:

Get-AppXPackage -Name <AppX-Name> -AllUsers

Möchte man herausfinden, welche AppX ein bestimmter Benutzer installiert hat, kann man das mit folgendem Cmdlt prüfen.

Get-AppXPackage -User <Benutzername>

Schließlich kann man sich auch noch alle AppX von allen Usern anschauen

Get-AppXPackage -AllUsers

Damit die Ausgabe nur AppX und den Benutzer ausgibt, kann man das Ergebnis auch filtern lassen

Get-AppXPackage -AllUsers | fl name,PackageUserInformation

Installierte AppX löschen

Beim löschen von AppX sollte man mit Vorsicht vorgehen. Die aus dem zentralen Installationsspeicher gelöschten Apps lassen sich nicht ohne weiteres wieder installieren, gerade, wenn auch der Windows-Shop deinstalliert wurde.

Wenn eine AppX aus dem zentralen Installationsspeicher gelöscht wird, diese aber vorher schon in einem Benutzerprofil installiert war, bleibt die installierte AppX davon unangetastet. Lediglich neue Benutzer bekommen diese AppX dann nicht mehr.

AppX aus zentralem Installationsverzeichnis löschen

Alle AppX-Pakete für alle Benutzer löschen

Get-AppxProvisionedPackage -online | Remove-AppxProvisionedPackage -online

Ein AppX-Paket für alle Benutzer löschen:

remove-AppxProvisionedPackage <App Package Name>

Mehrere AppX-Pakete für alle Benutzer löschen, die eine bestimmte Zeichenkette in ihrem Namen haben :

Get-AppxProvisionedPackage -online | where {$_.PackageName -like "*Bing*"} | Remove-AppxProvisionedPackage -online
Scriptanmerkungen

Diese Scripte löschen die AppX aus dem Installationsverzeichnis. Wenn ein neuer User angelegt (User Account) wird, werden die AppX nicht mehr mit installiert.
Der -online Parameter sagt aus, dass die Aktion unter dem Betriebssystem ausgeführt werden muss, dass derzeit auf dem lokalen Computer ausgeführt wird.
Wenn die App wieder installiert werden soll, muss diese erst wieder heruntergeladen werden.

AppX aus Benutzerprofil löschen

Alle AppX Pakete für einen bestimmten Benutzer löschen:

Get-AppxPackage -User <Benutzername> | Remove-AppxPackage

Alle AppX Pakete für alle Benutzer löschen:

Get-AppxPackage -AllUsers | Remove-AppxPackage

Alle AppX Paket für den aktuellen Benutzer löschen:

Get-AppxPackage | Remove-AppxPackage
Scriptanmerkungen

Die o.g. Scripte löschen AppX aus Benutzerverzeichnissen. Wenn ein neuer User angelegt (User Account) wird, werden die Standart-Apps jedoch aus dem zentralen Installationsverzeichnis wieder installiert.

AppX installieren

Wie man eine AppX mit der Powerdhell installiert, hängt davon ab, ob diese im zentralen Installationsverzeichnis verfügbar ist, oder nicht.

AppX aus zentralen Installationsverzeichnis installieren

Um eine AppX aus dem zI wieder zu installieren

Add-AppxPackage -register <Pfad zum AppX Package Pfad> -DisableDevelopmentMode

Ein komplettes Script[1], um die AppX Pakete wieder zu installieren:

# Get all the provisioned packages
$Packages = (get-item 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\Applications') | Get-ChildItem
# Filter the list if provided a filter
$PackageFilter = $args[0]
if ([string]::IsNullOrEmpty($PackageFilter))
{
	echo "No filter specified, attempting to re-register all provisioned apps."
}
else
{
	$Packages = $Packages | where {$_.Name -like $PackageFilter} 

	if ($Packages -eq $null)
	{
		echo "No provisioned apps match the specified filter."
		exit
	}
	else
	{
		echo "Registering the provisioned apps that match $PackageFilter"
	}
}

ForEach($Package in $Packages)
{
	# get package name & path
	$PackageName = $Package | Get-ItemProperty | Select-Object -ExpandProperty PSChildName
	$PackagePath = [System.Environment]::ExpandEnvironmentVariables(($Package | Get-ItemProperty | Select-Object -ExpandProperty Path))
	# register the package	
	echo "Attempting to register package: $PackageName"
	Add-AppxPackage -register $PackagePath -DisableDevelopmentMode
}
def quickSort(arr):
    less = []
    pivotList = []
    more = []
    if len(arr) <= 1:
        return arr
    else:
       pass
Scriptanmerkungen

Einzelnachweise, Weblinks und Anmerkungen

  1. Reinstalling preinstalled apps