2012-07-10 19:45:02 +0000 2012-07-10 19:45:02 +0000
31
31

Lista wszystkich zainstalowanych na komputerze programów

Czy jest coś wbudowanego w Windows, co pozwoliłoby mi na wylistowanie wszystkich zainstalowanych programów na komputerze w sposób, który można skopiować/wkleić do arkusza kalkulacyjnego? Wiem, że istnieje oprogramowanie, które może to zrobić, ale nie mogę nic zainstalować. Wolałbym nie używać pliku wsadowego, jeśli to możliwe, ale wyobrażam sobie, że będzie to jedyny sposób. Idealnie byłoby, gdybym mógł wypisać te same informacje, które są wyświetlane w (nierozszerzonym) widoku formularza dodawania/usuwania programów.

Odpowiedzi (8)

41
41
41
2012-07-10 19:58:16 +0000

Odpal konsolę i wpisz:

wmic product get name,version

Trwa to chwilę, ale uzyskasz pełną listę zainstalowanych programów. WMIC jest konsolową wersją Windows Management Instrumentation, dostępną od Windows 2000 i nowszych. Postępując zgodnie z instrukcjami tutaj i tutaj , możesz powiedzieć WMIC, aby wyprowadzał dane w formacie XML, co może być dla Ciebie nieco wygodniejsze. Jednakże wywołanie wmic product get name da Ci listę nazw aplikacji, którą możesz łatwo skopiować i wkleić do edytora tekstu i przekonwertować do formatu arkusza kalkulacyjnego.

Alternatywnie, wpisz:

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

Spowoduje to wypisanie pliku TXT z listą programów. Możesz go potem wkleić do arkusza kalkulacyjnego, jeśli chcesz.

Źródło: http://helpdeskgeek.com/how-to/generate-a-list-of-installed-programs-in-windows/ ](http://helpdeskgeek.com/how-to/generate-a-list-of-installed-programs-in-windows/)


Możesz również użyć pliku csv.xsl, aby sformatować dane wyjściowe do listy wyników w formacie CSV:

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

lub pliku htable.xsl, aby utworzyć tabelę wyników w formacie HTML:

wmic /output:C:\InstallList.htm product get /format:hform.xsl
8
8
8
2012-07-10 19:54:54 +0000

Uruchom wmic product get aby uzyskać listę zainstalowanego oprogramowania, powinna to być dokładnie ta sama lista, co w przypadku dodawania/usuwania programów.

Można podobno uzyskać wyjście w określonym formacie, ale nie próbowałem tego.

(użyj wmic product get /? aby zobaczyć parametry, w tym formatowanie wyjścia, próbowałem to tutaj zamieścić, ale formatowanie nie było do końca poprawne).

5
5
5
2012-07-10 20:13:18 +0000

Jak już wspomnieli inni, możesz uzyskać te informacje za pomocą zapytania WMI dla obiektów Win32_Product. PowerShell zrzuci je nawet do pliku CSV, jeśli chcesz.

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

Jednak powinieneś szukać obiektów Win32_Product . To nie są wszystkie gumdrops i lizaki.

4
4
4
2014-10-09 19:14:03 +0000

WMIC nie będzie działał na serwerze, chyba że wyraźnie zainstalowałeś Management and Monitoring Tools w menu Add/Remove Windows Components .

Innym rozwiązaniem jest przejście do Rejestru i przejrzenie wszystkich Odinstalowanych programów poprzez przejście do:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

Będziesz musiał kliknąć każdy z osobna, aby zobaczyć wartość, więc zamiast tego możesz kliknąć prawym przyciskiem myszy na folderze Uninstall i wybrać Eksport. Upewnij się, że Zakres eksportu jest ustawiony tak, aby zawierał tylko wybraną gałąź:

^(?!"DisplayName").+

Następnie możesz otworzyć plik .reg w Notatniku++, ale otrzymasz wiele dodatkowych informacji na temat każdej aplikacji:

Możesz pozbyć się wszystkich linii, które nie zaczynają się od "DisplayName", dopasowując do następującego regexa :

("DisplayName"="|")

Następnie możesz usunąć albo ciąg "DisplayName" albo " przez dopasowanie do następującego regexa :

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

Następnie możesz usunąć wszelkie duplikaty wierszy poprzez dopasowanie na następujący regex :

Możesz też po prostu posortować wiersze alfabetycznie i usunąć puste.

3
3
3
2013-07-11 10:53:37 +0000

Najprostszym sposobem jaki znalazłem jest uruchomienie piriform’s ccleaner.
To ma przycisk w Narzędzia -> Odinstaluj -> “zapisz do pliku tekstowego”

0
0
0
2017-03-05 15:59:46 +0000

Dwa inne, niewymienione wcześniej rozwiązania bez użycia linii poleceń to:

  1. MyUninstaller - darmowy program firmy NirSoft, który oprócz odinstalowywania potrafi również wyeksportować do HTML obszerną listę wszystkich zainstalowanych programów, zawierającą wiele dodatkowych informacji. Jego zaletą jest to, że jest przenośny. Chociaż nie jest “wbudowany”, można go uruchomić z dysku USB. Możesz go znaleźć tutaj .

  2. Belarc Advisor - program freeware (do użytku osobistego), który wykonuje analizę bezpieczeństwa i kompleksową inwentaryzację sprzętu i oprogramowania komputera. Jest on dostępny tutaj . Niestety, trzeba go zainstalować, więc nie spełnia w pełni potrzeb OP, ale może spełnić potrzeby innych, którzy mają to samo pytanie i są w stanie zainstalować.

0
0
0
2017-07-12 14:57:08 +0000

Wersja zakodowana w c# programy instalowane przez rejestr

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();
        }

    }
}
0
0
0
2016-08-14 20:52:43 +0000

W systemie Windows 7 można użyć skryptu PowerShell:

Otwórz PowerShell, klikając przycisk Start i wpisując w pole wyszukiwania powershell.

Następnie w oknie PowerShell wpisz następujące polecenie:

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

Możesz usunąć dowolne z pól: DisplayName, DisplayVersion, itd. jeśli ich nie potrzebujesz.

Jeśli chcesz zapisać dane wyjściowe do pliku, użyj przekierowania:

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