Existen varios métodos para encontrar aplicaciones instaladas en el sistema, pero que yo sepa, ninguno devuelve exactamente la misma lista que el elemento Agregar o quitar programas del panel de control. Algunas de las formas que probé son:
- WMI a través de Win32_Product y Win32Reg_AddRemovePrograms
- Registro, ramas x32 y x64
Por ejemplo, tengo 217 entradas en AR y
gwmi Win32_Product
devuelve 261 artículos.
gp HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*, HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | ? {![string]::IsNullOrWhiteSpace($_.DisplayName) } | select DisplayName
devuelve 119 artículos.
(gwmi Win32Reg_AddRemovePrograms) + (gwmi Win32Reg_AddRemovePrograms64) | sort DisplayName -Unique
devuelve 107 artículos.
Intenté concretarlo con un filtro más complejo que incluía InstallLocation
, etc. InstallSource
, InstallDate
sin éxito.
Respuesta1
Para mí, este es un caso desafortunado deLey de Conway. Windows es un sistema operativo muy complejo con décadas de historia y una gran cantidad de partes móviles. Lo que esto significa es que algo que parece simple, como hacer la pregunta "¿qué está todo instalado en mi computadora?" lamentablemente se hace muy complicado. Lo que complica el "software instalado" es que proviene de varias fuentes diferentes. Hay software de 64 bits y software de 32 bits, software que solo se instala para ciertos usuarios, software que se instala para todos los usuarios, software que se instaló o se le asignó a usted a través de la Política de grupo y más.
Afortunadamente,Monitor de procesos de Sysinternalpuede revelarlos todos. Simplemente enciéndalo, supervise los eventos del registro y luego haga clic en el subprograma del panel de control Agregar o quitar programas y vea qué está haciendo Windows en segundo plano.
Se lee de muchas fuentes diferentes:
HKLM\Software\Installer\Products
HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall
HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\...
HKCU\Software\Microsoft\Windows\CurrentVersion\Installer\Managed\...
HKCU\Software\Microsoft\Installer\Products
HKLM\Software\Microsoft\Windows\CurrentVersion\Group Policy\AppMgmt
HKLM\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\...
¡Y más!
Por un ladoesEs posible ver exactamente qué secuencia de consultas de registro se requiere para reconstruir con precisión lo que ve en "Agregar o quitar programas", que es una "vista" basada en el usuario que ha iniciado sesión actualmente, etc. Por otro lado, creo que podrá rápidamente me doy cuenta de que es unlotede trabajo y que tal vez reconstruir una vista exacta de Agregar o quitar programas tal vez no fuera tan importante para usted en primer lugar. :)