Подтвердить что ты не робот

Как указать список установленных MSI из командной строки?

Недавно мы переключили наши программные пакеты Windows с RPM (cygwin) на MSI (wix). Наличие родной упаковки - очень приятное изменение, и мы намерены придерживаться этого. Однако MSI чувствует себя чересчур сложным для того, что он делает, и, похоже, не предоставляет некоторые базовые способности. Но я, наверное, ошибаюсь.

Есть ли способ перечислить все установленные MSI из командной строки?

4b9b3361

Ответ 1

Mabybe это является хорошей отправной точкой для вас, например, VB Script из 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

Ответ 2

Вы можете использовать PowerShell и Инструментарий управления Windows (WMI). Вот один лайнер:

Get-WmiObject -Class win32_product

Вот помощь для Get-WmiObject cmdlet:

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

Вот пример, где мы выбираем первую установленную программу и форматируем ее как таблицу:

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

Ответ 3

Я не уверен, что это то, что вам нужно, но вы можете запросить список удаления из командной строки с помощью

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