Eliminar aplicaciones no deseadas de Windows 10 con PowerShell

Windows 10 incluye una serie de aplicaciones integradas que van desde aplicaciones básicas como Calculadora y Clima hasta aplicaciones más enfocadas en tareas como Correo y Fotos. Si bien estas aplicaciones integradas son adecuadas para la mayoría de las situaciones, en un entorno empresarial pueden ser inapropiadas, redundantes o no admitidas. Muy a menudo, estas aplicaciones pueden representar un riesgo de seguridad. Por eso, en esta publicación, aprenderás cómo quitar las aplicaciones de Windows 10 con PowerShell.

El problema es que Microsoft no facilita la desinstalación de algunas de estas aplicaciones. No hay un botón de desinstalación al usar métodos normales. Las aplicaciones integradas deben desinstalarse a través de PowerShell.

Descargo de responsabilidad: No desinstales todas las aplicaciones de Windows 10. Muchas de ellas son necesarias para la “Experiencia” de Windows 10 y otras, como el marco .NET, son necesarias para otros programas. Selecciona con cuidado qué aplicaciones desinstalar. Sin embargo, puedes reinstalar todas las aplicaciones, y verás el comando de PowerShell para hacerlo al final de este artículo.

Encontrar aplicaciones de Windows 10 con PowerShell

En realidad, hay dos tipos diferentes de aplicaciones con las que trabajaremos.

  • Paquetes AppX: aplicaciones instaladas con el sistema operativo
  • Paquetes provisionados AppX: aplicaciones instaladas como parte de la configuración inicial del perfil de usuario.

El primer paso es obtener un inventario de las aplicaciones que están instaladas. Para hacerlo, inicia PowerShell con privilegios elevados y ejecuta el comando Get-AppxPackage. Esto devolverá todos los paquetes AppX instalados en 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--

Los paquetes provisionados tienen un comando ligeramente diferente y también necesitan el parámetro Online. El parámetro Online obtiene paquetes del sistema operativo en línea actual en lugar de un archivo de imagen ubicado en un directorio local. Esto presentará una lista de todos los detalles con respecto a cada paquete.

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

Refinando las listas de aplicaciones

Ambos comandos producen listados bastante detallados y todo lo que te interesa es el Nombre del paquete para los paquetes Appx y el DisplayName para los paquetes provisionados, como se muestra a continuación.

Details of Get-AppxPackage listing
Listing for get-appxprovisionedpackage

Para facilitar las cosas, pasa los resultados a través de Select-Object y selecciona las propiedades Nombre y DisplayName. Esto te dará una lista como la siguiente. Esta lista es más fácil de trabajar.

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

Ahora puedes ver qué aplicaciones de Windows 10 te gustaría eliminar. En este punto, necesitas enumerar todos los nombres de los paquetes que te gustaría eliminar. Una forma de hacerlo es copiar y pegar las aplicaciones de Windows 10 que te interesa eliminar y construir una lista de esa manera. Un truco que uso es guardar los resultados en un archivo de texto y luego abrir ese archivo en Visual Studio Code. Por ejemplo:

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

En tu editor externo, comienza a construir una matriz de aplicaciones para eliminar.

$ProvisionedAppPackageNames = @()

Ahora que tienes la lista, puedes comenzar a construir el script de PowerShell.

Eliminación de aplicaciones de Windows 10 con PowerShell

Deberías tener ahora una matriz definida en tu editor que contiene los nombres de todos los paquetes de AppX que te gustaría desinstalar. He creado un ejemplo a continuación.

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

Con la matriz poblada con las aplicaciones específicas que se deben eliminar, ahora puedes configurar el bucle foreach para recorrer cada paquete y desinstalarlo utilizando el cmdlet Remove-AppXProvisionedPackage y el 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
}

Si por alguna razón deseas reinstalar todas las aplicaciones, siempre puedes utilizar el cmdlet add-AppXPackage para registrar la aplicación de Windows 10 nuevamente especificando el archivo XML del manifiesto de la aplicación, como se muestra a continuación.

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

Resumen

Aunque Microsoft no lo hace fácil para desinstalar aplicaciones de Windows 10, ¡siempre puedes recurrir a PowerShell!

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