Rimuovi App Indesiderate di Windows 10 con PowerShell

Windows 10 include una serie di app integrate che vanno dalle app di base come Calcolatrice e Meteo alle app più orientate alle attività come Posta e Foto. Mentre queste app integrate vanno bene per la maggior parte delle situazioni, in un ambiente aziendale possono essere inappropriati, ridondanti o non supportati. Molto spesso, queste app possono rappresentare un rischio per la sicurezza. Ecco perché, in questo post, imparerai come rimuovere le app di Windows 10 con PowerShell.

Il problema è che Microsoft non rende facile disinstallare alcune di queste app. Non c’è un pulsante di disinstallazione quando si utilizzano i metodi normali. Le app integrate devono essere disinstallate tramite PowerShell.

Avviso: Non disinstallare tutte le app di Windows 10. Molte di esse sono necessarie per l’esperienza di Windows 10 e altre, come il framework .NET, sono necessarie per altri programmi. Sii selettivo su quali applicazioni disinstallare. Puoi reinstallare tutte le applicazioni, tuttavia, e vedrai il comando PowerShell per farlo alla fine di questo articolo

Trovare le app di Windows 10 con PowerShell

In realtà ci sono due tipi diversi di applicazioni con cui lavoreremo.

  • Pacchetti AppX – Applicazioni installate con il sistema operativo
  • Pacchetti AppX provisionati – Applicazioni installate come parte del primo setup del profilo utente.

Il primo passo è ottenere un inventario delle app installate. Per farlo, avvia PowerShell con privilegi elevati ed esegui il comando Get-AppxPackage. Questo restituirà tutti i pacchetti AppX installati su Windows 10.

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--

I pacchetti forniti hanno un comando leggermente diverso e necessitano anche del parametro Online. Il parametro Online estrae i pacchetti dal sistema operativo online corrente anziché da un file di immagine situato in una directory locale. Questo mostrerà un elenco di tutti i dettagli relativi a ciascun pacchetto.

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--

Restringendo l’elenco delle app

Entrambi questi comandi producono un elenco piuttosto verboso e tutto ciò che ti interessa è il Name del pacchetto per i pacchetti Appx e il DisplayName per i pacchetti forniti come mostrato di seguito.

Details of Get-AppxPackage listing
Listing for get-appxprovisionedpackage

Per semplificare le cose, dirigi i risultati tramite Select-Object e seleziona le proprietà Name e DisplayName. Ciò ti fornirà un elenco come quello riportato di seguito. Questo elenco è più facile da gestire.

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

Ora puoi vedere quali app di Windows 10 desideri rimuovere. A questo punto, devi elencare tutti i nomi dei pacchetti che desideri rimuovere. Un modo per farlo è copiare e incollare le app di Windows 10 che desideri rimuovere e creare un elenco in questo modo. Un trucco che uso è salvare i risultati in un file di testo e quindi aprirlo in Visual Studio Code. Ad esempio:

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

Nel tuo editor esterno, inizia a creare un array di app da rimuovere.

$ProvisionedAppPackageNames = @()

Ora che hai l’elenco, puoi iniziare a creare lo script PowerShell.

Rimuovere le app di Windows 10 con PowerShell

Dovresti ora avere un array definito nell’editor che contiene i nomi di tutti i pacchetti AppX che desideri rimuovere. Ecco un esempio:

$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"
)

Con l’array popolato con le applicazioni specifiche da rimuovere, puoi ora configurare il ciclo foreach per passare attraverso ogni pacchetto da disinstallare utilizzando il cmdlet Remove-AppXProvisionedPackage e il cmdlet Remove-AppXPackage.

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

Se per qualsiasi motivo desideri reinstallare tutte le applicazioni, puoi sempre utilizzare il cmdlet add-AppXPackage per registrare nuovamente l’app di Windows 10 specificando il file XML del manifesto dell’app come mostrato di seguito.

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

Riassunto

Anche se Microsoft non rende facile disinstallare le app di Windows 10, puoi sempre fare affidamento su PowerShell!

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