33

Однажды я увидел, как парень запустил команду и получил список всех установленных приложений на своем компьютере. Как мне это сделать?

Я хотел бы список моих установленных приложений. Я считаю, что он использовал WSH как-то.

9 ответов9

39

Если вы используете Windows Vista или Windows 7 и не хотите устанавливать дополнительное программное обеспечение, вы можете:

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

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

C:\> psinfo -s > software.txt
C:\> psinfo -s -c > software.csv
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 , вы можете экспортировать список установленного программного обеспечения в текстовый файл:

альтернативный текст

6

Не совсем командная строка, но верный старый SIW также сделает эту работу. выделите Приложения, щелкните правой кнопкой мыши> Экспорт в> CSV, HTML, TXT или XML

альтернативный текст

SIW бесплатное и портативное, установка не требуется.

3

Представленное выше решение CCleaner кажется неплохим решением, если только вы не решили использовать командную строку. Я использовал CCleaner раньше, это хороший инструмент, но не думайте, что все зарегистрировано в апплете «Установка и удаление программ» (тот же список). Существует множество приложений, использующих установку в стиле xcopy, т.е. просто разархивируйте этот архив и запустите. Те не будут отображаться в списке.

3

Чтобы добавить решение Питера Мортенсена - используйте wmic и запишите список установленных программ в файл:

Откройте окно командной строки (Windows + R, CMD.EXE)

wmic /OUTPUT:my_software.txt product get name
2

Sysinternals psinfo.exe предоставляет наиболее полную информацию из всех приведенных предложений, и его можно запустить на любом ПК с Windows из строки cmd напрямую из командной строки 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();
        }
    }
}

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .