Icono del sitio Binario 0

Desinstalación de aplicaciones en Windows usando el GUID del producto (Product Code)

Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero

Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero

En sistemas Windows, muchas aplicaciones instaladas mediante archivos .msi quedan registradas en el sistema con un identificador único llamado Product Code GUID. Este identificador permite realizar acciones como la desinstalación silenciosa desde línea de comandos o scripts, sin depender de rutas fijas o interfaces gráficas.

Este artículo técnico detalla cómo identificar el GUID de una aplicación y cómo usarlo para desinstalarla de forma automatizada y controlada.

¿Qué es el Product Code GUID?

El GUID (Globally Unique Identifier) es un identificador único que asigna Windows Installer a cada paquete .msi instalado. Se utiliza para gestionar tareas como:

Ejemplo de GUID:

{23170F69-40C1-2702-0920-000001000000}

Paso 1: Identificar el GUID de una aplicación instalada

Opción A: PowerShell con Win32_Product

Get-WmiObject -Class Win32_Product | 
Where-Object { $_.Name -like "*NombreDeLaApp*" } |
Select-Object Name, IdentifyingNumber

IdentifyingNumber es el GUID.

Nota: Win32_Product puede desencadenar una reconfiguración de los paquetes MSI instalados. No es ideal para producción.

Opción B: Consultar el Registro de Windows (recomendado)

Get-ItemProperty "HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*" |
Where-Object { $_.DisplayName -like "*NombreDeLaApp*" } |
Select DisplayName, DisplayVersion, UninstallString

Para sistemas de 64 bits que tienen instaladores de 32 bits:

Get-ItemProperty "HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*" |
Where-Object { $_.DisplayName -like "*NombreDeLaApp*" }

Busca si el valor UninstallString contiene:

msiexec /x {GUID}

Paso 2: Desinstalar usando el GUID

Una vez identificado el GUID de la aplicación, puedes desinstalarla con el siguiente comando:

msiexec /x {GUID} /qn

Parámetros útiles:

Ejemplo:

msiexec /x {23170F69-40C1-2702-0920-000001000000} /qn /norestart

Automatización por script

Puedes automatizar esta operación para múltiples aplicaciones:

$apps = @(
"{GUID-UNO}",
"{GUID-DOS}",
"{GUID-TRES}"
)

foreach ($guid in $apps) {
Start-Process "msiexec.exe" -ArgumentList "/x $guid /qn /norestart" -Wait
}

Casos de uso

Recomendaciones

Validación tras la desinstalación

Después de ejecutar el comando, valida que la aplicación ha sido correctamente eliminada:

Get-ItemProperty "HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*" |
Where-Object { $_.DisplayName -like "*NombreDeLaApp*" }

Herramientas complementarias

Salir de la versión móvil