Отримайте список встановлених програм у командному рядку Windows


34

Я одного разу побачив хлопця, який виконує команду, і отримав список усіх встановлених програм на своєму комп’ютері. Як це зробити?

Я хотів би список моїх встановлених на сьогодні програм. Я вважаю, він якось використовував WSH .


Відповіді:


39

Якщо ви використовуєте Windows Vista або Windows 7 і не хочете встановлювати додаткове програмне забезпечення, ви можете:

  1. Відкрийте вікно командного рядка ( Windows+ R, CMD.EXE)
  2. Тип wmic( Enter)
  3. Тип product get name( Enter)

+1 Про ваш апарат не так багато, про що WMI не може вам сказати в наші дні.
GAThrawn

5
тут написано, що Win32_Product не дасть усієї інформації про встановлений програмний забезпечення. Це означає, що він не перелічить усіх програмних засобів. Причина цього в тому, що win32_product запитує базу даних MSI, щоб отримати список. Але буде багато програмних програм, які не матимуть в ньому запису, оскільки вони були встановлені з EXE. У цьому випадку запит на видалення ключа реєстру дає інформацію про ці програмні засоби.
Жалюгідна змінна

1
@MiserableVariable Це це говорить? (Це неправильне посилання?) Як можна запитати видалення реєстру подібним чином? (або, можливо, використовуючи wmicсебе?)
JeromeJ

1
Також працює з Windows 10
Turcia

5
Це тільки я, або це працює дуже повільно?
користувач3083324

27

PsInfo від Microsoft / Sysinternals може перелічити все встановлене програмне забезпечення, якщо ви використовуєте прапор -s під час його запуску. Ви також можете використовувати -c, щоб вивести його як файл CSV, який, наприклад, використовувати в Excel.

C:\> psinfo -s > software.txt
C:\> psinfo -s -c > software.csv

1
також працює unter Win XP на відміну від рішення WMI
Герд Кліма

Не відображається все встановлене програмне забезпечення Windows 2012 R2 x64. Я використовуюPsInfo ver. 1.77
Tomasito

Цей метод дав 933 предметів на моєму ноутбуці, а метод WMI отримав лише 598. Здавалося, що він складається з більшого списку ...
Андрій Адаменко

@djhowell: Я намагаюся виконати команду в Windows 7, але я отримав помилку, " psinfo is not recognized as an internal or external command, operable program or batch file.". І це відбувається навіть у вікні cmd з підвищеними правами.
skm

14

Сценарій PowerShell для їх переліку:

$loc = Get-ChildItem HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall

$names = $loc |foreach-object {Get-ItemProperty $_.PsPath}

foreach ($name in $names)
{
    Write-Host $name.Displayname
}

Не зовсім командний рядок, але для цього я особисто використовую інструмент для видалення CCleaner , і ви можете експортувати список встановленого програмного забезпечення в текстовий файл:

Alt текст


2
Занадто іронічно, що інструменти Windows Powershell тощо займають віки (> 5 хвилин), але CCleaner є миттєвим.
CAD блокується

6

Не зовсім командний рядок, але справжній старий SIW також зробить цю роботу. Виділіть програми , клацніть правою кнопкою миші → Експорт уCSV, HTML, TXT або XML :

Alt текст

SIW є безкоштовним та портативним, а установка не потрібна.


Я завжди знаю, SIW вимагає ліцензії, де ви його отримуєте як безкоштовне?
El Turner

3

Наведене вище рішення CCleaner здається пристойним способом вирішити це, якщо ви не вирішили використовувати командний рядок. Раніше я використовував CCleaner, це гарний інструмент, але не вважайте, що все зареєстровано в аплеті Add / Remove Programs (той самий список). Існує безліч додатків, які використовують установку в стилі xcopy, тобто просто розпакуйте цей архів і запустіть. Вони не відображатимуться у списку.


3

Щоб додати до рішення MicTech - використовуйте wmicта фіксуйте список встановленого програмного забезпечення до файлу:

Відкрийте вікно командного рядка ( Windows+ R, CMD.EXE)

wmic /OUTPUT:my_software.txt product get name

2

Sysinternals psinfo.exe надає найповнішу інформацію з усіх поданих пропозицій, і її можна запустити на будь-якому ПК з Windows з командного рядка безпосередньо з підвищеного CMD-рядка без постійного завантаження:

\\live.sysinternals.com\tools\psinfo.exe -s > %userprofile%\Desktop\_psinfo.txt

Під час запуску цього запиту ви отримаєте запит безпеки, і EULA підкаже перший раз на комп'ютері. Текстовий файл буде збережено на поточному робочому столі.

EULA може бути автоматично прийнято так:

\\live.sysinternals.com\tools\psinfo.exe -s /accepteula > %userprofile%\Desktop\_psinfo.txt

0

Існує портативний додаток під назвою Showmysoft. Він покаже встановлене програмне забезпечення на локальній машині та віддалених машинах та може експортувати в PDF та CSV . Установка не потрібна. Завантажте з http://spidersoft.in/showmysoft/ .

Мінімальна системна вимога - Microsoft .NET Framework 2.0.


0

Зашифрована версія в встановлених програмах C # через реєстр Windows:

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)
                            {
                                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 та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.