2008-10-13 18 views
12

Recientemente cambiamos nuestros paquetes de software de Windows de RPM (cygwin) a MSI (wix). Tener un embalaje nativo es un cambio muy bienvenido y tenemos la intención de seguir con él. Sin embargo, MSI se siente demasiado complicado para lo que hace y no parece proporcionar algunas habilidades básicas. Pero probablemente estoy equivocado. ¿Cómo puedo listar MSI instalado desde la línea de comando?

¿Hay alguna manera de listar todos los MSI instalados desde la línea de comandos?

Respuesta

11

Mabybe this es un buen punto de partida para que ejemplo VB Script de MSDN:

strComputer = "." 

Set objWMIService = GetObject("winmgmts:" & _ 
    "{impersonationLevel=impersonate}!\\" & _ 
    strComputer & _ 
    "\root\cimv2") 

Set colSoftware = objWMIService.ExecQuery _ 
    ("SELECT * FROM Win32_Product") 

If colSoftware.Count > 0 Then 

    Set objFSO = CreateObject("Scripting.FileSystemObject") 
    Set objTextFile = objFSO.CreateTextFile(_ 
     "c:\SoftwareList.txt", True) 

    For Each objSoftware in colSoftware 
     objTextFile.WriteLine objSoftware.Caption & vbtab & _ 
     objSoftware.Version 
    Next 

    objTextFile.Close 

Else 
    WScript.Echo "Cannot retrieve software from this computer." 

End If 
+1

Hubiera preferido algo que utilizar desde la línea de comandos, pero esto servirá. Gracias. – bltxd

+1

Siga adelante y use el script desde la línea de comando, entonces. Use cscript.exe para ejecutarlo y no lo muestre en el archivo, sino en stdout (como lo hace: WScript.Echo objSoftware.Caption & vbtab & objSoftware.Version). Ya no se necesitan todas las cosas del FSO. – Tomalak

5

No estoy seguro de si esto es lo que necesita, pero se puede consultar la lista de desinstalación desde la línea de comandos con :

REG QUERY HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall 
+0

Excelente: Sin embargo, hay un pequeño error tipográfico. Debería leer: 'HKLM' no 'HLKM' (HKEY_LOCAL_MACHINE). – Martin

10

Es posible utilizar PowerShell y Windows Management Instrumentation (WMI). Aquí es un chiste:

Get-WmiObject -Class win32_product 

aquí es ayuda para el Get-WmiObjectcmdlet:

http://technet.microsoft.com/en-us/library/dd315295.aspx

Aquí está una muestra donde seleccionamos el primer programa se instala y formato como una tabla:

PS C:\Users\knut> Get-WmiObject -Class win32_product | 
>> select -First 1 | ft Name, Version, Vendor -AutoSize 
>> 

Name    Version Vendor 
----    ------- ------ 
AWS SDK for .NET 1.2.0200 Amazon Web Services Developer Relations 
+0

Ver respuesta similar aquí: http://stackoverflow.com/questions/29937568/how-can-i-find-the-product-guid-of-an-installed-msi-setup/29937569 –

Cuestiones relacionadas