tags:

views:

1471

answers:

2

We recently switched our Windows software packages from RPM (cygwin) to MSI (wix). Having a native packaging is a much welcome change and we intend to stick with it. However, MSI feels overly complicated for what it does and doesn't seem to provide some basic abilities. But I'm probably mistaken.

Is there a way to list all installed MSI from the command line ?

+6  A: 

Mabybe this is a good starting point for you example VB Script from 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
Node
I would have prefered something to use from the command line, but this will do. Thanks.
bltxd
Tomalak
A: 

I'm not sure if this is what you need but you can query the uninstall list from the command line with:

REG QUERY HLKM\Software\Microsoft\Windows\CurrentVersion\Uninstall
Ferruccio