Есть ли что-то встроенное в Windows, что позволило бы мне перечислить все установленное программное обеспечение на компьютере таким образом, чтобы его можно было скопировать / вставить в электронную таблицу? Я знаю, что есть программное обеспечение, которое может сделать это, но я не могу ничего установить. Я бы предпочел не использовать командный файл, если это возможно, но я думаю, что это будет единственный способ. В идеале я мог бы вывести ту же информацию, что и в (не развернутом) виде формы «Установка и удаление программ».
8 ответов
Запустите консоль и введите:
wmic product get name,version
Это займет некоторое время, но вы получите полный список установленных программ. WMIC - это консольная версия инструментария управления Windows, доступная в Windows 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.xsl для форматирования вывода в список результатов CSV:
wmic /output:C:\InstallList.csv product get /format:csv.xsl
или файл htable.xsl для создания HTML-таблицы результатов:
wmic /output:C:\InstallList.htm product get /format:hform.xsl
Запустите wmic product get
чтобы получить список установленного программного обеспечения, он должен быть точно таким же, как и для добавления / удаления программ.
Возможно, вы можете получить его для вывода в определенном формате, но я не пробовал.
(Используйте wmic product get /?
чтобы увидеть параметры, включая форматирование вывода, я попытался включить его здесь, но форматирование было не совсем правильным.)
Как уже упоминали другие, вы можете получить эту информацию с помощью запроса WMI для объектов Win32_Product. PowerShell даже выгрузит его в файл CSV для вас, если хотите.
Get-WmiObject -Class "Win32_Product" | Export-CSV (Join-Path $home "Win32_Product.csv")
Тем не менее, вы должны искать проблемы Win32_Product. Это не все леденцы и леденцы на палочке.
WMIC не будет работать на сервере, если вы не установили явно Management and Monitoring Tools
в меню « Add/Remove Windows Components
.
Другое решение состоит в том, чтобы перейти в Реестр и просмотреть все неинсталлируемые программы , перейдя по ссылке:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
Вам нужно будет щелкнуть каждый из них по отдельности, чтобы увидеть значение, поэтому вместо этого вы можете щелкнуть правой кнопкой мыши папку « Uninstall
» и выбрать « Экспорт». Убедитесь, что диапазон экспорта настроен на включение только выбранной ветви:
Затем вы можете открыть файл .reg
в notepad++, но вы получите много дополнительной информации о каждом приложении:
Вы можете избавиться от всех строк, которые не начинаются с "DisplayName"
, сопоставив следующее регулярное выражение:
^(?!"DisplayName").+
Затем вы можете удалить либо строку "DisplayName"
либо "
путем сопоставления со следующим регулярным выражением:
("DisplayName"="|")
Затем вы можете удалить любые дубликаты строк , сопоставив их по следующему регулярному выражению:
^(.*)(\r?\n\1)+$
Или вы можете просто отсортировать строки по алфавиту, а затем удалить пустые
Самый простой способ, который я нашел, - запустить программу очистки Piriform.
Это кнопка в Инструменты -> Удалить -> "Сохранить в текстовый файл"
Закодированная версия в c # установленных программ через реестр
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();
}
}
}
В Windows 7 вы можете использовать скрипт PowerShell:
Откройте PowerShell, нажав кнопку « Start
и введя 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
Два других решения, не связанных с командной строкой, которые ранее не упоминались:
MyUninstaller - бесплатная программа от NirSoft, которая, помимо удаления, может также экспортировать в HTML полный список всего установленного программного обеспечения, который включает в себя много дополнительной информации. Преимущество в том, что он портативный. Пока он не «встроенный», вы можете запустить его с USB-накопителя. Вы можете найти это здесь.
Belarc Advisor - бесплатная (для личного пользования) программа, которая выполняет анализ безопасности и проводит полную инвентаризацию аппаратного и программного обеспечения вашего компьютера. Это доступно здесь. К сожалению, вы должны установить его, чтобы он не полностью соответствовал потребностям OP, но может удовлетворить потребности других пользователей, имеющих такой же вопрос и способных установить.