2008-10-13 14 views
12

हमने हाल ही में हमारे विंडोज सॉफ्टवेयर पैकेज आरपीएम (साइगविन) से एमएसआई (विक्स) में स्विच किया है। एक देशी पैकेजिंग होने का एक बहुत स्वागत है और हम इसके साथ रहना चाहते हैं। हालांकि, एमएसआई जो कुछ करता है उसके लिए अत्यधिक जटिल महसूस करता है और कुछ बुनियादी क्षमताओं को प्रदान नहीं करता है। लेकिन मैं शायद गलत हूँ। मैं कमांड लाइन से स्थापित एमएसआई कैसे सूचीबद्ध करूं?

क्या कमांड लाइन से सभी स्थापित एमएसआई सूचीबद्ध करने का कोई तरीका है?

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 

उत्तर

11

Mabybe this आप के लिए एक अच्छा प्रारंभिक बिंदु उदाहरण वीबी स्क्रिप्ट MSDN से है :

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

मैं कमांड लाइन से उपयोग करने के लिए कुछ पसंद करता, लेकिन यह करेगा। धन्यवाद। – bltxd

+1

आगे बढ़ें और फिर कमांड लाइन से स्क्रिप्ट का उपयोग करें। इसे चलाने के लिए cscript.exe का उपयोग करें, और फ़ाइल करने के लिए आउटपुट न करें, लेकिन stdout (जैसे: WScript.Echo objSoftware.Caption और vbtab और objSoftware.Version)। अब सभी एफएसओ सामान की जरूरत नहीं है। – Tomalak

5

मुझे यकीन है कि नहीं कर रहा हूँ अगर यह तुम क्या जरूरत है, लेकिन आप के साथ कमांड लाइन से स्थापना रद्द करें सूची क्वेरी कर सकते हैं:

+0

उत्कृष्ट: हालांकि, एक छोटा टाइपो है। इसे पढ़ना चाहिए: 'एचकेएलएम' नहीं 'एचएलकेएम' (HKEY_LOCAL_MACHINE)। – Martin

10

आप PowerShell और Windows Management Instrumentation (WMI) उपयोग कर सकते हैं।

Get-WmiObject -Class win32_product 

यहाँ Get-WmiObjectcmdlet के लिए मदद है:

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 
+0

यहां समान उत्तर देखें: http://stackoverflow.com/questions/29937568/how-can-i-find-the-product-guid-of-an-installed-msi-setup/29937569 –

संबंधित मुद्दे