2008-10-13 21 views
12

Son zamanlarda Windows yazılım paketlerimizi RPM'den (cygwin) MSI'ya (wix) geçirdik. Yerli bir pakete sahip olmak çok hoş bir değişikliktir ve onunla uğraşmayı düşünüyoruz. Ancak, MSI yaptığı şey için aşırı karmaşık hissediyor ve bazı temel yetenekleri sağlamak için görünmüyor. Ama muhtemelen yanıldım. Yüklü MSI'yi komut satırından nasıl listelerim?

komut satırından tüm yüklü MSI listelemek için bir yolu var mı? Bu ne ihtiyaç vardır ama komut satırından kaldırma listesini sorgulamak eğer

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 

cevap

11

Mabybe this MSDN'den sizin için iyi bir başlangıç ​​noktası örnek VB Script :

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

Komut satırından kullanacağım bir şeyi tercih ederdim, ancak bunu yapar. Teşekkürler. – bltxd

+1

Devam edin ve komut dosyasını komut satırından kullanın, sonra. Çalıştırmak için cscript.exe kullanın ve dosyaya değil stdout'a (örneğin: WScript.Echo objSoftware.Caption & vbtab & objSoftware.Version) çıktı vermeyin. Artık tüm FSO şeylerine gerek yok. – Tomalak

5

emin değilim:

+0

Mükemmel: Ancak, küçük bir yazım hatası var. Okumak gerekir: 'HKLM' değil 'HLKM' (HKEY_LOCAL_MACHINE). – Martin

10

Sen PowerShell ve Windows Management Instrumentation (WMI) kullanabilir.

İşte
Get-WmiObject -Class win32_product 

Get-WmiObjectcmdlet için bir yardımcı: Burada

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

biz ilk yüklü programı seçin ve bir tablo olarak biçimlendirmek örnek olduğunu: Burada bir tek kılıftır

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

Benzer bağlantıya bakın: http://stackoverflow.com/questions/29937568/how-can-i-find-the-product-guid-of-an-installed-msi-setup/29937569 –

İlgili konular