Explorando las Aplicaciones Instaladas en Windows con PowerShell y WMI

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 entornos de administración de sistemas, especialmente en Windows, es común necesitar un inventario de las aplicaciones instaladas en un equipo. Esto puede ser útil para tareas de auditoría, mantenimiento, control de licencias o migraciones. En este artículo explicaremos varios comandos de PowerShell y herramientas WMI que permiten listar software instalado, tanto de sistemas de 32 como de 64 bits.

1. gwmi Win32_Product

Este comando utiliza WMI (Windows Management Instrumentation) para obtener una lista de productos instalados:

gwmi Win32_Product

Explicación:

  • gwmi es un alias de Get-WmiObject.
  • Win32_Product es una clase WMI que representa los productos instalados a través del instalador de Windows (MSI).

Advertencia: Ejecutar este comando puede desencadenar una reconfiguración de cada paquete MSI instalado, lo que puede hacer que algunos programas se reparen o reinstalen parcialmente. Por ello, no se recomienda usarlo en producción para auditorías pasivas.

2. Lectura del Registro: gp y filtros personalizados

gp HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*, HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | ? {![string]::IsNullOrWhiteSpace($_.DisplayName) } | select DisplayName

Explicación:

  • gp es un alias de Get-ItemProperty.
  • Se accede a dos rutas del registro: una para software de 64 bits y otra para 32 bits (Wow6432Node).
  • Se filtra para eliminar entradas vacías usando Where-Object (? es su alias).
  • Se selecciona solo el campo DisplayName.

Ventaja: Método no intrusivo, ideal para inventario.

3. Get-WmiObject -Class Win32_Product | Select-Object -Property Name

Get-WmiObject -Class Win32_Product | Select-Object -Property Name

Explicación:

  • Similar al primer comando, pero filtrando y mostrando solo el nombre del producto.
  • Mismo riesgo de reconfiguración al invocar Win32_Product.

4. wmic product get name,version

wmic product get name,version

Explicación:

  • Ejecutado en la consola CMD (no PowerShell).
  • Muestra productos MSI instalados con su nombre y versión.
  • También puede provocar reparaciones, como Win32_Product.

Nota: WMIC ha sido desaprobado en versiones recientes de Windows. Puede no estar disponible.

5. Listado detallado desde el Registro (software de 32 bits)

Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | 
Select-Object DisplayName, DisplayVersion, Publisher, InstallDate |
Format-Table –AutoSize

Explicación:

  • Se accede a la rama del registro para software de 32 bits.
  • Se extrae el nombre, versión, editor y fecha de instalación.
  • Format-Table -AutoSize mejora la visualización en consola.

6. Listado detallado desde el Registro (software de 64 bits)

Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | 
Select-Object DisplayName, DisplayVersion, Publisher, InstallDate |
Format-Table –AutoSize

Explicación:

  • Igual que el anterior, pero para software de 64 bits.

Conclusión

Cada uno de estos métodos tiene ventajas y limitaciones. Para tareas de auditoría o recolección de información sin alterar el sistema, lo más recomendable es acceder al Registro de Windows (métodos 2, 5 y 6). Evita Win32_Product y wmic si no estás seguro del impacto que puedan causar.

Recomendación final:
Si necesitas integrar esta información en scripts automatizados o herramientas de monitoreo, usa siempre el acceso al Registro para evitar impactos indeseados sobre el sistema.

Binario 0
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.