Cómo desinstalar software usando PowerShell

Una ilustración de un hombre que usa una llave inglesa para desinstalar un software de una computadora que se muestra en un monitor.

PowerShell puede ayudarlo a desinstalar programas rápidamente.

La mayoría de nosotros hemos desinstalado programas de nuestras PC. Cómo lo hiciste ¿Puedes recordar?

Lo hemos hecho principalmente a través del Panel de control o, en algunos casos, cuando se trata de suites más complejas, a través de nuestro propio proceso de desinstalación.

Estas opciones son convenientes para eliminar un solo programa, no son escalables. Imagine por un momento que es un administrador de TI y desea eliminar programas de varias computadoras. Iniciar sesión en cada dispositivo y desinstalar un programa no es la opción más productiva.

Afortunadamente, puede usar scripts de PowerShell para desinstalar software. La ventaja es que puedes enviar un comando de desinstalación a cualquier número de PC en red. De esta manera puedes Desinstale un programa de miles de PC con solo un script.

Suena fácil, ¿verdad? Entremos y veamos cómo desinstalar software usando PowerShell.

¿Qué es Microsoft PowerShell?

Microsoft PowerShell es uno Administrador de configuración y automatización de tareas que consta de un lenguaje de secuencias de comandos y una línea de comandos. Viene con muchos comandos integrados llamados cmdlets que realizan una función o tarea específica. Puede combinar estos cmdlets en un script personalizado realizar la tarea deseada - Automatizar tareas complejas o que consumen mucho tiempo.

2 formas de desinstalar software usando PowerShell

Puede desinstalar el software usando PowerShell de 2 maneras, ese Desinstalar() método y el paquete de desinstalación Mando. de los dos que Desinstalar() Method es la forma más popular y sencilla de eliminar programas conocidos de un dispositivo.

La segunda posibilidad es esta paquete de desinstalación, es una buena opción para programas ocultos y aquellos que PowerShell no identifica.

Comencemos con la primera opción.

1. Método de desinstalación

En esta guía paso a paso, aprenderá los comandos para desinstalar un software de una sola computadora. Siempre puedes usar un bucle for-each Ampliar a una colección o matriz de PC para iterar sobre cada computadora en la matriz y realizar la misma acción.

Paso 1: Obtener la lista de aplicaciones instaladas

Como primer paso, obtenga la lista de aplicaciones instaladas en una computadora. El código de PowerShell para esto es:

Get-WmiObject-Clase Win32_Product | Seleccionar nombre de propiedad de objeto

Ahora te estarás preguntando ¿para qué sirve la lista de aplicaciones instaladas? Después de todo, solo necesita eliminar una aplicación de la computadora. El problema es que necesita saber el nombre exacto de la aplicación porque PowerShell lo leerá y lo mostrará. Por ejemplo, puede usar las palabras "Microsoft Outlook" en su código para desinstalar Outlook de una computadora. ¿Qué pasa si dice "Microsoft Outlook 2019"? Esta discrepancia generará un mensaje de error o el comando simplemente no se ejecutará. Evite confusiones y vea cómo PowerShell lee el nombre de una parte del software y luego usa ese nombre exacto en su código de desinstalación.

Aquí hay un ejemplo, la imagen de abajo muestra cómo Obtener WmiObject muestra la lista de programas instalados.

Interfaz de línea de comandos de PowerShell con el comando Get-WmiObject de PowerShell, que devuelve una lista completa de los programas instalados.

El comando Get-WmiObject de PowerShell devuelve una lista completa de los programas instalados.

Paso 2: reduce la lista

La lista de programas anterior puede parecer abrumadora, incluso en dispositivos con solo unos pocos programas instalados. Puede reducirlo con filtros y expresiones regulares si tiene una idea del nombre de su programa. En el ejemplo anterior, puede pedirle a PowerShell que limite la lista a los programas que contienen la palabra "Outlook" porque es una palabra única. ¡Si usa "Microsoft" puede terminar con una lista más grande! En general, asegúrese de elegir las frases y palabras que mejor le ayuden a encontrar el programa que desea.

$MiPrograma = Get-WmiObject -Class Win32_Product | Where-Object{$_.Name -eq "Outlook"}

Esto reducirá la lista a todas las versiones de Microsoft Outlook instaladas en su sistema. De esta lista, seleccione la versión que desea desinstalar. Si solo tiene una versión instalada, entonces no hay nada que elegir, y mi programa almacena el valor en la variable.

Paso 3: Utilice el método de desinstalación

PowerShell tiene un método integrado llamado Desinstalar(). Simplemente llame a este método en su programa para desinstalarlo. En nuestro ejemplo anterior será

$MiPrograma.desinstalar()

Este comando desinstala su programa. También puede reemplazar la variable $MiPrograma con el nombre real del programa.

Este proceso es la forma más fácil de desinstalar un programa usando PowerShell. Sin embargo, puede haber algunos programas ocultos que el comando Get-WmiObject no enumera.

Para probar esto, abra su Panel de control y mire la lista de Programas. Compárelo con la lista de anuncios de PowerShell y verá que algunos no están incluidos.

2. Utilice el paquete de desinstalación

Use esta opción si PowerShell no incluye su programa. El código para este comando de PowerShell es:

Get-Package -Provider-Programs -IncludeWindowsInstaller -Nombre "BackZilla"

Para que PowerShell todos los programas en el Tablero de conmutadores, utilice un asterisco en lugar del parámetro Nombre. Tenga en cuenta que si tiene varias versiones instaladas, este comando solo desinstalará la última versión.

En el ejemplo anterior será:

Paquete de desinstalación -Nombre BackupZilla 3.0

También puede desinstalar una versión específica o canalizar la salida de Get-Package a Uninstall-Package. Aquí hay un ejemplo.

Get-Package -Name BackupZilla -RequiredVersion 2.0 | paquete de desinstalación

De esta manera, puede desinstalar cualquier programa de un dispositivo, ¡incluso si está oculto!

Comparación de ambos métodos de desinstalación

Entonces, ¿cuál de los dos debería elegir? Cuándo Obtener WmiObject indica un programa que tiene, el método de desinstalación es la opción más fácil. Sin embargo, si necesita crear un script personalizado para eliminar programas en varias computadoras, busque el paquete de desinstalación.

ultimas palabras

Los scripts de PowerShell son útiles para eliminar un programa en varios dispositivos. Con solo unas pocas líneas de código, puede automatizar este proceso y ahorrar tiempo y esfuerzo. Hay dos formas de desinstalar software mediante PowerShell: la Obtener WmiObject y paquete de desinstalación. de los dos que paquete de desinstalación tiene más opciones y ofrece un acceso más amplio a programas normales y ocultos Obtener WmiObject El comando solo puede usar las clases WMI asociadas.

¿Cuál de los dos es mejor? Esto depende del software que desee desinstalar. Si PowerShell Obtener WmiObject detecta, elija esta opción ya que es más fácil. De lo contrario, use paquete de desinstalación.

preguntas frecuentes

¿Qué es Get-WmiObject?

Obtener WmiObject utiliza el Instrumental de administración de Windows (WMI) para obtener información específica de su dispositivo. Sin embargo, solo puede recuperar la información con clases WMI asociadas. Aquí hay unos ejemplos.

Clase Get-WmiObject Win32_Bios - Recupera la BIOS.

Get-WmiObject -Espacio de nombres "raíz" - Obtiene el espacio de nombres raíz.

Get-WmiObject -Class Win32_Service -ComputerName 1.1.1.1 - Muestra los servicios que se ejecutan en una computadora específica.

¿Cuál es la diferencia entre Get-WmiObject y Get-CIMInstance?

Obtener CIMInstance sustituido Obtener WmiObject de PowerShell 3.0. La salida de estas dos clases es la misma en una máquina local, pero Obtener CIMInstance también funciona desde una computadora remota. En general, Microsoft introdujo las clases CIM para aprovechar la administración remota de Windows (WinRM).

¿Qué sucede si un programa ni siquiera existe?

¡Nada en absoluto! PowerShells Obtener WmiObject simplemente no devuelve nada y esto indica que un programa no existe. Si escribe mal el nombre del software, ¡PowerShell tampoco devuelve nada!

¿Puedo usar el número de identificación de un software para desinstalarlo?

sí tu puedes Utilice el número de identificación. Simplemente use esta opción en filtrar parámetros en lugar del nombre.

Get-WmiObject -Class Win32_Product -Filter "Número de identificación = '{33D90MLP-2E35-7 DWR-903T-1V6W78501MQ0}'"

recursos

Comandos básicos de PowerShell Blog de TechGenix

Para comenzar con los conceptos básicos de PowerShell, lea este blog Comandos básicos de PowerShell.

Los beneficios de los scripts TechGenix PowerShell

¿Debería usar secuencias de comandos de PowerShell? Lea este blog para obtener más información sobre el increíble poder de los scripts de PowerShell.

TechGenix explica las diferencias entre PowerShell y PowerShell Core

Lea este blog para obtener más información sobre las diferencias entre PowerShell y PowerShell Core.

documentación de microsoft

Lea la documentación de Microsoft para obtener información sobre los distintos parámetros y opciones del paquete de desinstalación.

La publicación Cómo desinstalar software usando PowerShell apareció primero en TechGenix.

Comentarios