2008-10-13 8 views
12

Niedawno zmieniłyśmy nasze pakiety oprogramowania Windows z RPM (cygwin) na MSI (wix). Posiadanie rodzimego opakowania jest bardzo pożądaną zmianą i zamierzamy się z tym uporać. Jednak MSI czuje się zbyt skomplikowany w tym, co robi i nie wydaje się dostarczać podstawowych umiejętności. Ale prawdopodobnie się mylę. Jak wyświetlić zainstalowany pakiet MSI z wiersza poleceń?

Czy istnieje sposób na wyświetlenie wszystkich zainstalowanych MSI z wiersza poleceń?

Odpowiedz

11

Mabybe this jest dobrym punktem wyjścia dla was przykładem VB Script z 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

Wolałbym użyć czegoś z linii poleceń, ale to zrobi. Dzięki. – bltxd

+1

Śmiało i użyj skryptu z wiersza poleceń, a następnie. Użyj cscript.exe, aby go uruchomić i nie wypakowuj do pliku, ale do stdout (na przykład: WScript.Echo objSoftware.Caption & vbtab & objSoftware.Version). Wszystkie rzeczy FSO nie są już wtedy potrzebne. – Tomalak

5

Nie jestem pewien, czy to, co trzeba, ale można wyszukać listę deinstalacji z poziomu wiersza poleceń z :

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

Doskonałe: jest jednak mała literówka. Powinien on brzmieć: "HKLM", a nie "HLKM" (HKEY_LOCAL_MACHINE). – Martin

10

można użyć PowerShell i Windows Management Instrumentation (WMI). Oto jeden liner:

Get-WmiObject -Class win32_product 

Oto pomoc dla Get-WmiObjectcmdlet:

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

Oto przykład, gdzie wybrać pierwszy zainstalowany program i formatować je w postaci tabeli:

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

Zobacz podobną odpowiedź tutaj: http://stackoverflow.com/questions/29937568/how-can-i-find-the-product-guid-an-installed-msi-setup/29937569 –

Powiązane problemy