У цій інструкції ми покажемо кілька способів отримати список встановлених програм в Windows 10, Windows 8 або Windows 7 за допомогою командного рядка. Ця методика побудови списку програм в системі може стати в нагоді перед перевстановлення системи, коли потрібно знайти небажане ПО або при виконанні інвентаризації встановленого ПО на комп'ютерах організації.
Розглянемо два способи: перший передбачає використання командного рядка і утиліти wmic, другий - PowerShell.
зміст:
- Виведення списку програм за допомогою утиліти командного рядка WMIC
- Виведення списку програм через Windows PowerShell
Виведення списку програм за допомогою утиліти командного рядка WMIC
Список встановлених в системі програм може бути отриманий за допомогою утиліти командного рядка WMIC, через яку можна звернутися і опитати простір імен WMI. Запустіть командний рядок з правами адміністратора і виконайте команду:
wmic product get name, version
Після невеликого очікування, на екран консолі буде виведений список назв і версія встановлених в системі програм.
Цей список можна експортувати в текстовий файл за допомогою команди:
wmic product get name, version / format: csv> c: \ Temp \ Programs_% Computername% .csv
Після закінчення виконання команди перейдіть в каталог C: \ Temp і знайдіть csv файл, ім'я якого починається з Programs_ [імя_ПК]. В даному файлі в csv-форматі крім назви і версії ПЗ, також міститиметься ім'я ПК (зручно для подальшого аналізу).
Виведення списку програм через Windows PowerShell
Список встановлених програм також може бути отриманий за допомогою PowerShell. Ідея методу в тому, що список встановлених програм, який ми бачимо в списку Programs and Features Панелі Управління, будується на основі даних, що зберігаються в гілці реєстру HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstall
Наше завдання - вивести вміст їх грона реєстру. Отже, запустіть консоль Powershell і виконайте команду:
Get-ItemProperty HKLM: \ Software \ Microsoft \ Windows \ CurrentVersion \ Uninstall \ * | Select-Object DisplayName, DisplayVersion, Publisher, Size, InstallDate | Format-Table -AutoSize
Як ви бачите, в результуючому списку міститься ім'я програми, версія, розробник і дата установки.
Порада. Для 32-бітних додатків на x64 версіях Windows, також потрібно брати дані з гілки HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Windows \ CurrentVersion \ UninstallЕкспортувати отриманий список в csv файл можна так:
Get-ItemProperty HKLM: \ Software \ Wow6432Node \ Microsoft \ Windows \ CurrentVersion \ Uninstall \ * | 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: \ temp \ installed_metro_apps.txt
Щоб отримати список встановленого ПЗ на віддаленому комп'ютері (наприклад, з ім'ям wks_name11), скористаємося Командлети Invoke-command:
Invoke-command -computer wks_name11 Get-ItemProperty HKLM: \ Software \ Wow6432Node \ Microsoft \ Windows \ CurrentVersion \ Uninstall \ * | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table -AutoSize
Щоб порівняти списки встановленого ПО, отримані з двох різних комп'ютерів і знайти відсутні додатки, можна скористатися такою командою:
Compare-Object -ReferenceObject (Get-Content C: \ temp \ installed-software.txt) -DifferenceObject (Get-Content C: \ temp \ installed-software2.txt)
У нашому прикладі в двох порівнюваних списках є відмінності в двох програмах.
Інший спосіб вивести список встановлених програм - скористатися Командлети Get-WmiObject, також дозволяє звертатися з простору WMI:
Get-WmiObject -Class Win32_Product | Select-Object -Property Name