В этой инструкции мы покажем несколько способов получить список установленных программ в Windows 10, Windows 8 или Windows 7 с помощью командной строки. Эта методика построения списка программ в системе может пригодиться перед переустановкой системы, когда нужно найти нежелательное ПО или при выполнении инвентаризации установленного ПО на компьютерах организации.
Рассмотрим два способа: первый подразумевает использование командной строки и утилиты wmic, второй — PowerShell.
Вывод списка программ с помощью утилиты командной строки WMIC
Список установленных в системе программ может быть получен с помощью утилиты командной строки WMIC, через которую можно обратиться и опросить пространство имен WMI. Запустите командную строку с правами администратора и выполните команду:
wmic product get name,version
После небольшого ожидания, на экран консоли будет выведен список названий и версия установленных в системе программ.
Этот список можно экспортировать в текстовый файл с помощью команды:
wmic product get name,version /format:csv > c:TempPrograms_%Computername%.csv
После окончания выполнения команды перейдите в каталог C:Temp и найдите csv файл, имя которого начинается с Programs_[имя_ПК]. В данном файле в csv-формате помимо названия и версии ПО, также будет содержаться имя ПК (удобно для дальнейшего анализа).
Вывод списка программ через Windows PowerShell
Список установленных программ также может быть получен с помощью PowerShell. Идея метода в том, что список установленных программ, который мы видим в списке Programs and Features Панели Управления, строится на основе данных, хранящихся в ветке реестра HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionUninstall
Наша задача – вывести содержимое данной ветки реестра. Итак, запустите консоль Powershell и выполните команду:
Get-ItemProperty HKLM:SoftwareMicrosoftWindowsCurrentVersionUninstall* | Select-Object DisplayName, DisplayVersion, Publisher, Size, InstallDate | Format-Table -AutoSize
Как вы видите, в результирующем списке содержится имя программы, версия, разработчик и дата установки.
Совет. Для 32-битных приложений на x64 версиях Windows, также нужно брать данные из ветки HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftWindowsCurrentVersionUninstall
Экспортировать полученный список в csv файл можно так:
Get-ItemProperty HKLM:SoftwareWow6432NodeMicrosoftWindowsCurrentVersionUninstall* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table -AutoSize > c:temp installed-software.txt
Рассмотренный выше способ позволяет вывести данные только о классический Windows приложениях. Чтобы вывести список установленных Metro приложений, воспользуйтесь командой:
Get-AppxPackage | Select Name, PackageFullName |Format-Table -AutoSize > c:tempinstalled_metro_apps.txt
Чтобы получить список установленного ПО на удаленном компьютере (к примеру, с именем wks_name11), воспользуемся командлетом Invoke-command:
Invoke-command -computer wks_name11 {Get-ItemProperty HKLM:SoftwareWow6432NodeMicrosoftWindowsCurrentVersionUninstall* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table -AutoSize }
Чтобы сравнить списки установленного ПО, полученные с двух разных компьютеров и найти отсутствующие приложения, можно воспользоваться такой командой:
Compare-Object –ReferenceObject (Get-Content C:tempinstalled-software.txt) –DifferenceObject (Get-Content C:tempinstalled-software2.txt)
В нашем примере в двух сравниваемых списках имеются различия в двух программах.
Другой способ вывести список установленных программ – воспользоваться командлетом Get-WmiObject, также позволяющего обращаться с пространству WMI:
Get-WmiObject -Class Win32_Product | Select-Object -Property Name