Windows-10-Apps per PowerShell löschen
Mit einem PowerShell-Skript kann man elegant beliebig viele unerwĂĽnschte Windows-10-Store-Apps auf einmal deinstallieren.
- Dr. Holger Schwichtenberg
Mit einem PowerShell-Skript kann man elegant beliebig viele unerwĂĽnschte Windows-10-Store-Apps auf einmal deinstallieren.
Microsoft liefert in Windows 10 fĂĽr alle Benutzer einige Apps aus seinem App-Store mit, die ich nicht brauche, zum Beispiel weil ich auf meinen PCs nicht spiele, keine 3D-Objekte drucken will oder eine entsprechende Funktion wie eine Wettervorhersage lieber auf einer Website nachschaue. Auch Werbeapps wie DolbyAccess will ich nicht haben. Einige wenige wie MSPaint, Sticky Notes und WindowsCalculator will ich manchmal verwenden.
In Anlehnung an die Diskussion zu einem einem anderen PowerShell-Beitrag sei erwähnt, dass man sich natürlich der unerwünschten Apps durch eine Klickorgie unter Add and remove programs entledigen kann. Ich bin aber kein Fan vom Klicken, wenn ich das häufiger und auf mehreren PCs immer wieder machen muss.
Apps auflisten
Hier meine Lösung per PowerShell: Zunächst einmal lässt man sich die auf dem Windows-10-PC vorhandenen Apps anzeigen:
Get-AppxPackage | where { $_.SignatureKind -eq "Store" -and $_.isframework -eq $false } | Format-Table
Apps deinstallieren
Die unerwĂĽnschten Paketnamen (ein signifikanter Teil des Namens reicht) packt man dann in die Liste zu Beginn des nachfolgenden Skripts. Das Skript kann jeder normale Benutzer fĂĽr sich starten:
# UnerwĂĽnschte Apps anzeigen und ggf. entfernen (fĂĽr den aktuellen Benutzer)
# Holger Schwichtenberg, www.IT-Visions.de, 2019
$unerwĂĽnschteApps = "xbox", "BingNews", "Dolby", "BingWeather", "Zune", "WindowsCamera", "WindowsMaps","Microsoft.People","PhotoShopExpress","Microsoft.OneConnect","Solitaire","Print3D","SoundRecorder","Duolingo","freshpaint"
$remove = $true
foreach($a in $unerwĂĽnschteApps)
{
Write-Host "Installierte Apps mit $a im Titel:" -ForegroundColor Yellow
$menge = Get-AppxPackage | where name -like "*$a*" # Get-AppxProvisionedPackage -Online / DisplayName
$menge | ft
if ($menge.length -eq 0) { Write-Host "Keine :-)" -ForegroundColor green }
else { if ($remove) {
"Entferne $($menge.length) Apps.."
$menge | Remove-AppxPackage # Remove-AppxProvisionedPackage -online
$menge = Get-AppxPackage | where name -like "*$a*"
if ($menge.length -gt 0)
{
Write-Host "folgende Apps wurden NICHT entfernt:" -ForegroundColor red
$menge | ft
}
}
}
}
Das Skript prüft nach dem Löschen, ob es noch Apps mit der Zeichenkette im Namen gibt. Einige Apps lassen sich nicht deinstallieren, zum Beispiel Microsoft.XboxGameCallableUI.
App-Pakete deinstallieren
Das Skript muss man für jeden Benutzer ausführen, der ein Benutzerkonto hat. Für neue Benutzer kann man die Installation der Apps beim ersten Anmelden verhindern, indem man die zugehörigen Pakete aus Windows entfernt. Das geht mit dem nächsten Skript. Dafür muss man aber als Administrator angemeldet sein, und das Skript muss "elevated" laufen.
# UnerwĂĽnschte App-Pakete entfernen (verhindert App-Installation fĂĽr neue Benutzerkonten)
# Holger Schwichtenberg, www.IT-Visions.de, 2019
$unerwĂĽnschteApps = "xbox", "BingNews", "Dolby", "BingWeather", "Zune", "WindowsCamera", "WindowsMaps","Microsoft.People","PhotoShopExpress","Microsoft.OneConnect","Solitaire","Print3D","SoundRecorder","Duolingo","freshpaint"
$remove = $true
foreach($a in $unerwĂĽnschteApps)
{
Write-Host "App-Pakete mit $a im Titel:" -ForegroundColor Yellow
$menge = Get-AppxProvisionedPackage -Online | where DisplayName -like "*$a*"
$menge | ft
if ($menge.length -eq 0) { Write-Host "Keine :-)" -ForegroundColor green }
else { if ($remove) {
"Entferne $($menge.length) App_Pakete.."
$menge | Remove-AppxProvisionedPackage -online
$menge = Get-AppxProvisionedPackage -Online | where DisplayName -like "*$a*"
if ($menge.length -gt 0)
{
Write-Host "folgende Apps wurden NICHT entfernt:" -ForegroundColor red
$menge | ft
}
}
}
} ()