Uso de PowerShell para desinstalar aplicaciones

Parte de mi Supervisión de informes de información (MIR) (MIR ahora es parte de Informes Enhansoft) implicó la implementación de varias actualizaciones para los clientes de mi laboratorio ConfigMgr. Mi laboratorio es una combinación de sistemas operativos (SO) x86 y x64. Después de implementar todas estas versiones de MIR, me quedé buscando una solución que me permitiera limpiar rápidamente las instalaciones del cliente. En última instancia, solo quería que se instalara la versión final en cada cliente. En esta publicación de blog, mostraré mi solución sobre cómo usé PowerShell para desinstalar aplicaciones.

Desafortunadamente, no había forma de saber qué versiones de MIR se implementaron en qué equipos de prueba. También existía la posibilidad de que varias computadoras de prueba pudieran tener más de una versión de MIR instalada. Necesitaba una forma de desinstalar MIR automáticamente sin tener que desinstalarlo manualmente en cada computadora. Quería un script que detectara todas las versiones de MIR en una computadora y desinstalara cada una, una a la vez.

¡Pensarías que ya existe una solución simple! Alguna vez han desplegado Adobe Reader? Entonces sabría que puede haber varias versiones diferentes de Adobe Reader listado dentro de Agregar o quitar programa (ARP) en una computadora. ¿Por qué no habría una manera fácil de eliminar las versiones anteriores?

Después de buscar en la red por un tiempo, encontré muchos scripts que me ayudarían a desinstalar solo una aplicación a la vez. Incluso había algunos scripts que consultaban Win32_Product y luego desinstale dos o más aplicaciones. Sin embargo, si alguna vez ha leído la publicación del blog de Greg Ramsey Win32_Product es malvado entonces sabrás que esta es una mala idea. ¡Nunca deberías hacer esto! Es por eso que nunca pude usar Win32_Product dentro de mi script debido a los problemas que crea.

Al final, armé un guión que a un alto nivel:

  • Detecta si el script se está ejecutando en modo x84, x64 o WoW32.
  • Lee las claves de registro de desinstalación x86 y x64.
  • Localiza todas las versiones de una aplicación.
  • Recorriendo la lista de entradas ARP, recopila:
    o Nombre MSI / GUID.
    o Desinstalar detalles en cada MSI.
  • Registra cada paso en un archivo de registro.

¿Cómo se ve el guión final? Vea la captura de pantalla a continuación. Tú también puedes descargar es desde el Enhansoft sitio web.

Uso de PowerShell para desinstalar aplicaciones-Final Script

¿Cómo puede implementar este script con ConfigMgr?

Primero, comience por editar el guión. Reemplace el nombre de la aplicación con la que desea desinstalar. En la versión de descarga, actualmente está configurado para: Supervisar * Información * Informes *

Recuerde que el * es un comodín que se utiliza para buscar entradas ARP.

En segundo lugar, cree un paquete y un programa para su línea de comandos. Debería tener un aspecto similar al siguiente:
powershell.exe -ExecutionPolicy bypass -file MIR_Uninstallv9.ps1

En tercer lugar, implemente el paquete y el programa como lo haría con cualquier otro programa.

A continuación, les mostraré lo que hice en una de mis computadoras de prueba. Puede ver en la captura de pantalla a continuación que tenía varias copias de MIR instaladas.

Uso de PowerShell para desinstalar aplicaciones-Versiones MIR

Configuré mi programa para que se implemente silenciosamente en segundo plano. ¡Nada que ver desde la perspectiva del usuario final! Sin embargo, puedo verificar que el Potencia Shell el script se está ejecutando mirando el Administrador de tareas. ¡Tendrás que ser rápido si quieres hacer esto también! La secuencia de comandos solo tarda de unos segundos a unos minutos en ejecutarse, dependiendo de la cantidad de ARP que tenga que eliminar.

Como acotación al margen, también puede ver que el script se ha ejecutado dentro del Execmgr.log en su computadora de prueba.

Uso de PowerShell para desinstalar aplicaciones: MIR desinstalado

Puede ver en la captura de pantalla de arriba que después de unos minutos todos los Supervisión de informes de información Se eliminaron las entradas de ARP. Recuerde, en algunos casos, es posible que desee que su secuencia de comandos también reinicie las computadoras, por lo que si desea hacer esto, agregue a su secuencia de comandos el comando:
reiniciar-computadora-fuerza

Espero que encuentre útil esta publicación de blog. Si tiene alguna pregunta sobre cómo utilicé PowerShell para desinstalar aplicaciones, no dude en ponerse en contacto conmigo. @GarthMJ.

Vea cómo Right Click Tools está cambiando la forma en que se administran los sistemas.

Aumente la productividad de inmediato con nuestra versión limitada y gratuita de la edición Community.

Comience con Right Click Tools hoy:

Compartir este:

Ayuda

  • Este campo es para fines de validación y no debe modificarse.

Contacto

  • Este campo es para fines de validación y no debe modificarse.
es_MXSpanish