Verwijder Ongewenste Windows 10-apps met PowerShell

Windows 10 bevat een aantal ingebouwde apps, variërend van basis-apps zoals Calculator en Weer tot meer taakgerichte apps zoals Mail en Foto’s. Hoewel deze ingebouwde apps prima zijn voor de meeste situaties, kunnen ze in een zakelijke omgeving ongepast, overbodig of niet-ondersteund zijn. Vaak vormen deze apps een beveiligingsrisico. Daarom ga je in deze post leren hoe je Windows 10-apps kunt verwijderen met PowerShell.

Het probleem is dat Microsoft het niet gemakkelijk maakt om sommige van deze apps te verwijderen. Er is geen verwijderknop bij het verwijderen met normale methoden. De ingebouwde apps moeten worden verwijderd via PowerShell.

Disclaimer: Verwijder niet alle Windows 10-apps. Veel ervan zijn nodig voor de Windows 10 “ervaring” en andere, zoals het .NET-framework, zijn nodig voor andere programma’s. Wees selectief in welke toepassingen je wilt verwijderen. Je kunt echter alle toepassingen opnieuw installeren, en je zult het PowerShell-commando zien om dat aan het einde van dit artikel te doen

Windows 10-apps vinden met PowerShell

Er zijn eigenlijk twee verschillende soorten toepassingen waarmee we zullen werken.

  • AppX-pakketten – Toepassingen geïnstalleerd met het besturingssysteem
  • AppX-voorziene pakketten – Toepassingen geïnstalleerd als onderdeel van de gebruikersprofiel eerste installatie.

De eerste stap is om een inventaris te krijgen van de geïnstalleerde apps. Start daarvoor PowerShell met verhoogde rechten en voer het commando Get-AppxPackage uit. Hiermee worden alle AppX-pakketten die op Windows 10 zijn geïnstalleerd, geretourneerd.

PS C:\> Get-AppxPackage

Name              : Microsoft.NET.Native.Framework.1.6
Publisher         : CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
Architecture      : X64
ResourceId        :
Version           : 1.6.24903.0
PackageFullName   : Microsoft.NET.Native.Framework.1.6_1.6.24903.0_x64__8wekyb3d8bbwe
InstallLocation   : C:\Program Files\WindowsApps\Microsoft.NET.Native.Framework.1.6_1.6.24903.0_x64__8wekyb3d8bbwe
IsFramework       : True
PackageFamilyName : Microsoft.NET.Native.Framework.1.6_8wekyb3d8bbwe
PublisherId       : 8wekyb3d8bbwe
IsResourcePackage : False
IsBundle          : False
IsDevelopmentMode : False
IsPartiallyStaged : False
SignatureKind     : Store
Status            : Ok
--snip--

De geleverde pakketten hebben een iets andere opdracht en hebben ook de parameter Online nodig. De Online-parameter haalt pakketten op van het huidige online besturingssysteem in plaats van een afbeeldingsbestand in een lokale directory. Hierdoor wordt een lijst weergegeven met alle details met betrekking tot elk pakket.

PS C:\> Get-AppxProvisionedPackage -Online


DisplayName  : Microsoft.3DBuilder
Version      : 16.1.1431.0
Architecture : neutral
ResourceId   : ~
PackageName  : Microsoft.3DBuilder_16.1.1431.0_neutral_~_8wekyb3d8bbwe
Regions      :

DisplayName  : Microsoft.BingWeather
Version      : 4.31.11905.0
Architecture : neutral
ResourceId   : ~
PackageName  : Microsoft.BingWeather_4.31.11905.0_neutral_~_8wekyb3d8bbwe
Regions      :
--snip--

Het beperken van de app-lijsten

Beide van deze opdrachten produceren nogal uitgebreide lijsten, en alles waarin je geïnteresseerd bent, is de Naam van het pakket voor de Appx-pakketten en de DisplayName voor de geleverde pakketten, zoals hieronder weergegeven.

Details of Get-AppxPackage listing
Listing for get-appxprovisionedpackage

Om het wat eenvoudiger te maken, leidt de resultaten door Select-Object en selecteer de eigenschappen Naam en DisplayName. Hierdoor krijg je een lijst zoals hieronder. Deze lijst is makkelijker om mee te werken.

Get-AppxPackage | Select-Object Name
Output of get-appxpackage | select object name

Nu kun je zien welke Windows 10-apps je wilt verwijderen. Op dit punt moet je alle namen van de pakketten die je wilt verwijderen, noteren. Een manier om dat te doen is door de Windows 10-apps die je wilt verwijderen te kopiëren en plakken en op die manier een lijst op te bouwen. Een truc die ik gebruik, is om de resultaten op te slaan in een tekstbestand en vervolgens dat bestand te openen in Visual Studio Code. Bijvoorbeeld:

Get-AppxPackage | Select-object name | Out-File apps.txt | code apps.txt

In je externe editor begin je een array van apps op te bouwen die je wilt verwijderen.

$ProvisionedAppPackageNames = @()

Nu je de lijst hebt, kun je beginnen met het bouwen van het PowerShell-script.

Windows 10-apps verwijderen met PowerShell

Je zou nu een array moeten hebben gedefinieerd in je editor die de namen bevat van alle AppX-pakketten die je wilt verwijderen. Ik heb hieronder een voorbeeld bedacht.

$ProvisionedAppPackageNames = @(
    "Microsoft.BingFinance"
    "Microsoft.BingNews"
    "Microsoft.BingSports"
    "Microsoft.BingWeather"
    "Microsoft.MicrosoftOfficeHub"
    "Microsoft.Getstarted"
    "microsoft.windowscommunicationsapps" # Mail,Calendar
    "Microsoft.Office.OneNote"
    "Microsoft.People"
    "Microsoft.SkypeApp"
    "Microsoft.XboxApp"
    "Microsoft.ZuneMusic"
    "Microsoft.ZuneVideo"
)

Met de array gevuld met de specifieke toepassingen die moeten worden verwijderd, kun je nu de foreach lus opzetten om door elk pakket te stappen om te deïnstalleren met behulp van de Remove-AppXProvisionedPackage cmdlet en de Remove-AppXPackage cmdlet.

foreach ($ProvisionedAppName in $ProvisionedAppPackageNames) {
    Get-AppxPackage -Name $ProvisionedAppName -AllUsers | Remove-AppxPackage
    Get-AppXProvisionedPackage -Online | Where-Object DisplayName -EQ $ProvisionedAppName | Remove-AppxProvisionedPackage -Online
}

Als je om welke reden dan ook alle toepassingen opnieuw wilt installeren, kun je altijd de add-AppXPackage cmdlet gebruiken om de Windows 10-app opnieuw te registreren door het toepassingsmanifest XML-bestand op te geven zoals hieronder getoond.

Get-AppxPackage -AllUsers | Foreach {
    Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"
}

Samenvatting

Hoewel Microsoft het niet gemakkelijk maakt om Windows 10-apps te verwijderen, zie je dat je altijd PowerShell hebt om op terug te vallen!

Source:
https://adamtheautomator.com/remove-windows-10-apps/