पीसी पर सभी स्थापित सॉफ्टवेयर की सूची बनाएं


30

क्या विंडोज में कुछ भी बनाया गया है जो मुझे एक ऐसे कंप्यूटर पर सभी स्थापित सॉफ़्टवेयर को एक फैशन में सूचीबद्ध करने की अनुमति देगा जो एक स्प्रेडशीट में कॉपी / पेस्ट किया जा सकता है? मुझे पता है कि ऐसा सॉफ्टवेयर है जो ऐसा कर सकता है, लेकिन मैं कुछ भी स्थापित नहीं कर सकता। यदि संभव हो तो मैं एक बैच फ़ाइल का उपयोग नहीं करना चाहूंगा, लेकिन मुझे लगता है कि यह एकमात्र तरीका होने जा रहा है। आदर्श रूप में, मैं उसी जानकारी को आउटपुट करने में सक्षम होऊंगा, जिसे प्रोग्राम जोड़ें / निकालें दृश्य के (अन-विस्तारित) दृश्य पर दिखाया गया है।


आप संभवतः Windows इंस्टालर डेटाबेस को क्वेरी करने के लिए एक बैच फ़ाइल लिख सकते हैं, लेकिन वह सब कुछ नहीं पकड़ सकता है।

मैंने एक ऐप लिखा है जो इस जानकारी के लिए रजिस्ट्री पर सवाल उठाता है, और जबकि ऐप इसे आपके इच्छित प्रारूप में नहीं डालता है, कोड के हिस्से को कॉपी किया जा सकता है और आसानी से इसे करने के लिए संशोधित किया जा सकता है, यहां स्रोत का लिंक दिया गया है: pulsarsoftware.org/Projects/ProcessManager.html
MaQleod

1
विन्डोज़ पॉवरशेल में, आप कोशिश कर सकते हैं Get-WmiObject -Class Win32_Product:। अधिक जानकारी के लिए यहां देखें ।
ऋषिमहाराज

जवाबों:


40

अपने कंसोल को फायर करें और टाइप करें:

wmic product get name,version

इसमें कुछ समय लगता है, लेकिन आपको इंस्टॉल किए गए कार्यक्रमों की पूरी सूची मिल जाएगी। WMIC विंडोज मैनेजमेंट इंस्ट्रूमेंटेशन का कंसोल वर्जन है, जो विंडोज 2000 और उसके बाद से उपलब्ध है। यहां और यहां दिए गए निर्देशों के बाद , आप WMIC को XML प्रारूप में आउटपुट करने के लिए कह सकते हैं, जो आपके लिए थोड़ा अधिक सुविधाजनक हो सकता है। हालाँकि, सिर्फ कॉल wmic product get nameकरने से आपको एप्लिकेशन नामों की एक सूची मिल जाएगी, जिसे आप आसानी से एक टेक्स्ट एडिटर में पेस्ट कॉपी कर सकते हैं और स्प्रैडशीट प्रारूप में बदल सकते हैं।

वैकल्पिक रूप से, दर्ज करें:

wmic /output:C:\InstallList.txt product get name,version

यह कार्यक्रमों की सूची के साथ एक TXT फ़ाइल का उत्पादन करेगा। आप चाहें तो इसे एक स्प्रेडशीट में पेस्ट कर सकते हैं।

स्रोत: http://helpdeskgeek.com/how-to/generate-a-list-of-installed-programs-in-windows/


परिणाम के CSV सूची में आउटपुट स्वरूपित करने के लिए आप csv.xsl फ़ाइल का उपयोग कर सकते हैं:

wmic /output:C:\InstallList.csv product get /format:csv.xsl

या परिणामों की HTML तालिका बनाने के लिए htable.xsl फ़ाइल:

wmic /output:C:\InstallList.htm product get /format:hform.xsl

2
यदि आप अंत में InstallList.txt जोड़ते हैं, तो आपको आउटपुट वाली एक टेक्स्ट फ़ाइल मिलेगी। वर्तमान निर्देशिका जहाँ आप हैं, वहाँ फ़ाइल बनाई जाएगी। इसके अलावा, आप संस्करण के बाद InstallDate जोड़ सकते हैं। यह वह तारीख दिखाएगा जिस दिन उत्पाद स्थापित किया गया था। यह किसी भी निर्माण स्थापित कार्यक्रमों को क्रमबद्ध करने के लिए आसान है। आपको इस पाठ फ़ाइल को एक्सेल में खोलने में सक्षम होना चाहिए और ज़रूरत पड़ने पर चीजों को थोड़ा छाँटना चाहिए।
जॉन डायर

8
अफसोस की बात है कि यह कार्यक्रम और सुविधाओं में दिखाए गए समान सूची उत्पन्न नहीं करता है: ऐसे कई अनुप्रयोग हैं जो पूर्व और कुछ में दिखाई नहीं देते हैं लेकिन बाद में मौजूद नहीं होते हैं। कुछ आइटम जो wmicलिस्टिंग में दिखाई नहीं देते हैं : मेरे स्थापित स्टीम गेम, नोटपैड ++, विंमरगे, Google के म्यूजिक मैनेजर । आइटम जो प्रोग्राम और फीचर्स में दिखाई नहीं देते हैं: जावा ऑटो अपडेटर, CAPICOM के लिए सुरक्षा अद्यतन (KB931906) । मैंने इसे एक प्रशासक सीएमडी से चलाने की कोशिश की लेकिन उत्पन्न लिस्टिंग समान थी।
चुइम

1
StackOverflow थोड़े पर यह सवाल बताता है कि क्यों: stackoverflow.com/questions/673233/…
Chuim

मैंने इसी तरह की कमांड का इस्तेमाल किया है लेकिन इसने कुछ s / w नाम नहीं दिया है। उदाहरण। प्रोप्रो, क्लिंक, इत्यादि को कैसे और किस तरह शामिल करना है?
सत्य प्रकाश

1
आप मिल रहे हैं Invalid Class 0x80041010 Errorतो आप पर जा सकते हैं Add/Remove Windows Componentsऔर जाँचManagement and Monitoring Tools
KyleMit

8

wmic product getइंस्टॉल किए गए सॉफ़्टवेयर की एक सूची प्राप्त करने के लिए चलाएँ , यह बिल्कुल उसी तरह की सूची होनी चाहिए जैसे कि प्रोग्राम जोड़ें / निकालें।

आप इसे एक विशिष्ट प्रारूप में आउटपुट के लिए प्राप्त कर सकते हैं, लेकिन मैंने इसकी कोशिश नहीं की है।

( wmic product get /?आउटपुट स्वरूपण सहित मापदंडों को देखने के लिए उपयोग करें, मैंने इसे यहां शामिल करने की कोशिश की, लेकिन स्वरूपण बिल्कुल सही नहीं था।)


हा - मैंने आपको वैसे भी उत्थान किया क्योंकि आपने XML में विशेष रूप से इसे बनाने के लिए लिंक पाया और इसमें शामिल किया था। बहुत बढ़िया। :)
मार्क एलेन

मुझे जो आउटपुट मिल रहा है, वह बिल्कुल वैसा नहीं है, जैसा कि प्रोग्राम्स लिस्ट में जोड़ें / निकालें। कोई विचार क्यों?
जोएल बी

यह सभी घटक भागों को शामिल करने के लिए लगता है।
मार्क एलन

क्या किसी भी उपयोगकर्ता द्वारा सॉफ़्टवेयर स्थापित करने का कोई तरीका है। संभवतः उपयोगकर्ता से संबंधित समस्या सूची में आने वाले सभी सॉफ़्टवेयरों के कारण नहीं है। हालांकि मैं केवल इस मशीन का उपयोग करता हूं।
सत्य प्रकाश

5

जैसा कि अन्य ने उल्लेख किया है, आप यह जानकारी Win32_Product ऑब्जेक्ट के लिए WMI क्वेरी के साथ प्राप्त कर सकते हैं। यदि आप चाहें, तो PowerShell इसे आपके लिए CSV फ़ाइल में भी डंप कर देगा।

Get-WmiObject -Class "Win32_Product" | Export-CSV (Join-Path $home "Win32_Product.csv")

हालाँकि, आपको Win32_Product समस्याओं के लिए खोज करनी चाहिए । यह सभी गमड्रॉप्स और लॉलीपॉप नहीं हैं।


मैं हमेशा चीजों के लिए एक वैकल्पिक दृष्टिकोण का आनंद लेता हूं, खासकर जब इसमें पॉवर्सशेल शामिल होता है।
अल्बानियाई

यहाँ एक और PowerShell कमांड चाल है: Get-ItemProperty HKLM: \ Software \ Wow6432Node \ Microsoft \ Windows \ CurrentVersion \ Uninstall * | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | फ़ॉर्मेट-टेबल -आटोसेज़ आप आउटपुट को बचाने के लिए "> outputfile" जोड़ सकते हैं। यहाँ और देखें: howtogeek.com/165293/… या यहाँ: theitbros.com/…
yosh m

@ Yoshm के कमांड को आज़माने वाले किसी और के लिए ध्यान दें, आपको अनइंस्टॉल और * के बीच एक और \ _ की आवश्यकता है। कमांड होनी चाहिए:Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table
स्टीफनवेड

4

WMIC सर्वर पर तब तक काम नहीं करेगा जब तक कि आपने मेनू में स्पष्ट रूप से स्थापित नहीं Management and Monitoring Toolsकिया हैAdd/Remove Windows Components

एक अन्य समाधान रजिस्ट्री में जाना है और सभी अनइंस्टॉल करने योग्य कार्यक्रमों को देखना है:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

मूल्य देखने के लिए आपको व्यक्तिगत रूप से प्रत्येक पर क्लिक करना होगा, इसलिए इसके बजाय, आप Uninstallफ़ोल्डर पर राइट क्लिक कर सकते हैं और निर्यात का चयन कर सकते हैं । सुनिश्चित करें कि निर्यात सीमा केवल चयनित शाखा को शामिल करने के लिए निर्धारित है :

चयनित शाखा

तब आप .regनोटपैड ++ में फ़ाइल खोल सकते हैं , लेकिन आपको प्रत्येक एप्लिकेशन पर बहुत सारी अतिरिक्त जानकारी प्राप्त होगी:

.reg

आप उन सभी पंक्तियों से छुटकारा पा सकते हैं जो निम्नलिखित रेगेक्स के साथ "DisplayName" मेल खाने से शुरू नहीं होती हैं :

^(?!"DisplayName").+

तो आप या तो स्ट्रिंग "DisplayName" या निम्नलिखित regex" पर मेल द्वारा निकाल सकते हैं :

("DisplayName"="|")

तो आप निम्नलिखित regex पर मेल करके किसी भी डुप्लिकेट लाइनों को हटा सकते हैं :

^(.*)(\r?\n\1)+$

या आप बस वर्णानुक्रम में लाइनों को सॉर्ट कर सकते हैं और फिर रिक्त लोगों को हटा सकते हैं


3

मैंने जो सबसे आसान तरीका पाया, वह है पीरिफॉर्म का क्लींजर।
इसमें टूल्स पर बटन है -> अनइंस्टॉल -> "टेक्स्ट फाइल में सेव करें"


1
ओपी ने एक अंतर्निहित समाधान के लिए कहा क्योंकि वह कुछ भी स्थापित नहीं कर सकता है (ठीक है, CCleaner पोर्टेबल है, लेकिन यह बात नहीं है)। और आउटपुट को कॉपी और पेस्ट का समर्थन करना चाहिए
nixda

1
मुझे ओपी द्वारा लगाई गई सीमा समझ में आती है, लेकिन इस विधि ने वास्तव में प्रोग्राम्स और फीचर्स के अनुसार पूरी सूची तैयार की है (जैसा कि मुख्य उत्तर पर मेरी टिप्पणी है, wmicउस लक्ष्य को हासिल नहीं किया है)।
चुइम

0

विंडोज 7 पर आप पॉवरशेल स्क्रिप्ट का उपयोग कर सकते हैं:

Startबटन पर क्लिक करके और powershellखोज क्षेत्र में टाइप करके PowerShell खोलें ।

फिर PowerShell विंडो में निम्न कमांड दर्ज करें:

Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table –AutoSize

यदि आपको उनकी आवश्यकता नहीं है, तो आप किसी भी फ़ील्ड को हटा सकते हैं: DisplayName, DisplayVersion, आदि।

यदि आप किसी फ़ाइल में आउटपुट सहेजना चाहते हैं, तो पुनर्निर्देशन का उपयोग करें:

Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table –AutoSize > C:\temp\AllInstalledPrograms.txt

0

पहले उल्लेख नहीं किए गए दो अन्य गैर-कमांड-लाइन समाधान हैं:

  1. MyUninstaller - NirSoft से एक फ्रीवेयर प्रोग्राम, जो कि अनइंस्टॉल करने के अलावा, HTML को सभी स्थापित सॉफ़्टवेयर की एक व्यापक सूची में भी निर्यात कर सकता है जिसमें बहुत सारी अतिरिक्त जानकारी शामिल है। इसमें पोर्टेबल होने का फायदा है। हालांकि यह "बिल्ट-इन" नहीं है, आप इसे यूएसबी ड्राइव से चला सकते हैं। आप इसे यहाँ पा सकते हैं ।

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


0

रजिस्ट्री के माध्यम से सी # स्थापित कार्यक्रमों में एन्कोडेड संस्करण

using Microsoft.Win32;
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;


namespace SoftwareInventory
{
    class Program
    {
        static void Main(string[] args)
        {
            //!!!!! Must be launched with a domain administrator user!!!!!
            Console.ForegroundColor = ConsoleColor.Green;
            StringBuilder sbOutFile = new StringBuilder();
            Console.WriteLine("DisplayName;IdentifyingNumber");
            sbOutFile.AppendLine("Machine;DisplayName;Version");

            //Retrieve machine name from the file :File_In/collectionMachines.txt
            //string[] lines = new string[] { "NameMachine" };
            string[] lines = File.ReadAllLines(@"File_In/collectionMachines.txt");
            foreach (var machine in lines)
            {
                //Retrieve the list of installed programs for each extrapolated machine name
                var registry_key = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
                using (Microsoft.Win32.RegistryKey key = RegistryKey.OpenRemoteBaseKey(RegistryHive.LocalMachine, machine).OpenSubKey(registry_key))
                {
                    foreach (string subkey_name in key.GetSubKeyNames())
                    {
                        using (RegistryKey subkey = key.OpenSubKey(subkey_name))
                        {
                            //Console.WriteLine(subkey.GetValue("DisplayName"));
                            //Console.WriteLine(subkey.GetValue("IdentifyingNumber"));
                            if (subkey.GetValue("DisplayName") != null && subkey.GetValue("DisplayName").ToString().Contains("Visual Studio"))
                            {
                                Console.WriteLine(string.Format("{0};{1};{2}", machine, subkey.GetValue("DisplayName"), subkey.GetValue("Version")));
                                sbOutFile.AppendLine(string.Format("{0};{1};{2}", machine, subkey.GetValue("DisplayName"), subkey.GetValue("Version")));
                            }
                        }
                    }
                }
            }
            //CSV file creation
            var fileOutName = string.Format(@"File_Out\{0}_{1}.csv", "Software_Inventory", DateTime.Now.ToString("yyyy_MM_dd_HH_mmssfff"));
            using (var file = new System.IO.StreamWriter(fileOutName))
            {

                file.WriteLine(sbOutFile.ToString());
            }
            //Press enter to continue 
            Console.WriteLine("Press enter to continue !");
            Console.ReadLine();
        }


    }
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.