Как вывести список установленных программ в Windows 10
27.07.2020
itpro
Windows 10, Windows 7, Windows 8
комментариев 7
В этой инструкции мы покажем несколько способов получить список установленных программ в Windows 10, Windows 8 или Windows 7 с помощью командной строки. Эта методика построения списка программ в системе может пригодиться перед переустановкой системы, когда нужно найти нежелательное ПО или при выполнении инвентаризации установленного ПО на компьютерах организации.
Рассмотрим два способа: первый подразумевает использование командной строки и утилиты wmic, второй — 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
Чтобы сравнить списки установленного ПО, полученные с двух разных компьютеров и найти отсутствующие приложения, можно воспользоваться такой командой:
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
Предыдущая статья Следующая статья
Удаление программ в Windows с помощью PowerShell
18.10.2022
itpro
PowerShell, Windows 10, Windows 11, Windows Server 2019
комментария 4
В этой статье мы рассмотрим, как в Windows удалить установленные программы на локальном и удаленном компьютере с помощью PowerShell. Довольно часто в скриптах и сценариях автоматизации приходится использовать различные блоки кода для удаления установленных программ Windows. Для удаления программ из командной строки или скриптами PowerShell можно использовать несколько подходов.
Удаление установленных программ с помощью WMI
Чаще всего для удаления установленных программ в Windows используют команды, обращающиеся к пространству имен WMI. Например, с помощью утилиты wmic можно вывести список установленных программ:
wmic product get name,version
Для тихого удаления программы из этого списка можно использовать такую команду:
wmic product where name=”VMware vCenter Converter Standalone” call uninstall /nointeractive
Команда вызовет WMI метод удаления программы VMware vCenter Converter Standalone через Windows Installer.
Executing (\\COMPName\ROOT\CIMV2:Win32_Product.IdentifyingNumber="",Name="VMware vCenter Converter Standalone",Version="6.2.0.8466193")->Uninstall()
Если удаление программы выполнено успешно, она вернет:
Method execution successful. Out Parameters: instance of __PARAMETERS ReturnValue = 0; >;
Аналогичные PowerShell команды для вывода и удаления программ через WMI:
Get-WmiObject Win32_Product | ft name,version,vendor,packagename
(Get-WmiObject Win32_Product -Filter “Name = ‘XXX'”).Uninstall()
Чтобы удалить программу на удаленном компьютере, нужно добавить параметр –ComputerName. Например, чтобы удалить Microsoft Office на удаленном компьютере, выполните:
$apps = Get-WmiObject -Class Win32_Product -ComputerName wks-pc11s22 |where name -Like “Office 16 Click-to-Run*”
$apps.uninstall()
Однако, такой способ удаления программы не будет универсальным. Если вы сравните список программ, который возвращается через WMI namespace и список программ в панели управления Windows 10 (команда ms-settings:appsfeatures ), вы увидите, что они отличаются. Команда вывела список программ, установленных через Windows Installer. В списке нет большинства пользовательских программ (например, браузеров).
Также не выводятся UWP программы из Microsoft Store, установленные модули PowerShell (через PowerShellGet) и т.д.
Удалить программу на удаленном компьютере с помощью PowerShell модуля Package Manager
В современных версиях Windows 10/11 и Windows Server 2022/2019/2016 для установки и удаления программ можно использовать командлеты из модуля PowerShell Package Management. Изначально модуль использовался для установки/удаления PowerShell модулей. Однако вы можете использовать его и для удаления Win32 программ, MSU обновлений, программ установленных помощью MSI установщиков.
Чтобы вывести полный список установленных программ на локальном компьютере, выполните команду:
Команда вернет несколько классов программ, установленных через разные провайдеры (ProviderName). Полный список доступных провайдеров на компьютере можно вывести так:
Чтобы вывести список программ, установленных с помощью определенного провайдера, выполните:
Get-Package -ProviderName Programs -IncludeWindowsInstaller
Для удаления программы нужно использовать командлет Uninstall-Package:
Get-Package -Name “Notepad++*” | Uninstall-Package
Можно удалить установленный PowerShell модуль. Например, чтобы удалить все модули VMware.PowerCLI:
Get-Package -ProviderName PowerShellGet -Name “VMware.*” | Uninstall-Package
Для удаления программы на удаленном компьютер, воспользуйтесь командлетом Invoke-Command:
Invoke-Command -ComputerName Msk-Ser01 -ScriptBlock
WinRM PowerShell Remoting можно включить на компьютерах с помощью GPO (ссылка).
Данный модуль можно использовать только для удаления программ Win32 и модулей. Для удаления UWP программ Microsoft Store нужно использовать PowerShell командлеты Remove-AppxPackage и Remove-AppxProvisionedPackage (см. Пример в статье).
Используем менеджер пакетов WinGet для удаления установленных программ
Для установки и удаления программ в Windows можно использовать новый менеджер пакетов winget (встроен в современные версии Windows 10 и 11). Чтобы вывести список программ на компьютере, выполните:
Команда вернет список программ, в том числе установленных не через winget, а также список UWP приложений.
Для удаления программ, установленной через WinGet нужно выполнить команду:
winget uninstall –name 7zip.7zip
Для удаление MSI приложения Windows нужно указать его GUID:
Для удаления UWP приложения:
winget uninstall –id “Microsoft.ZuneVideo_8wekyb3d8bbwe”
Однако, winget не позволяет удалить программы на удаленном компьютере. Для запуска команд winget на удаленном компьютере нужно использовать возможности PowerShell Remoting (командлеты Invoke-Command и Enter-PSSession). Например:
Invoke-Command -ComputerName pc2122sd1 -ScriptBlock
Вы можете использовать рассмотренные здесь PowerShell скрипты для удаленного удаления программ, или в сценариях запуска команд на компьютерах в сети через SCCM или logon скрипты GPO.
Предыдущая статья Следующая статья
Удаленное удаление программ при помощи WMI
Здравствуйте, уважаемые читатели! Некоторые из вас возможно задавались вопросом как удалить программу на удаленном компьютере. Рядовому пользователю это скорей всего не нужно, а системному администратору какой-нибудь локальной сети это может понадобиться.
Для удаления и установки ПО на удаленных компьютерах существует множество различных решений и программных средств. В этой статье мы рассмотрим решение данного вопроса на основе встроенных средств windows.
Удалять программы на удаленных машинах нам поможет Windows Management Instrumentation или проще говоря WMI. В переводе на русский это инструментарий управления Windows.
Как запустить wmi
Запуск wmi выполняется из командной строки. Открыть командную строку можно из “Пуск -> Все программы -> Стандартные -> Командная строка” , либо просто нажимаете клавиши “WIN + R” , откроется окно “Выполнить” в котором в поле “открыть” набираете “cmd” и нажимаете “OK” .
В открывшемся окне командной строки набираем команду wmic и нажимаем “Enter” :
Таким образом мы запустили консольную утилиту для взаимодействия со структурой WMI на локальном или удаленном компьютере. Теперь с помощью язык запросов WMI Query Language (WQL) можно выполнять различные команды WMI.
Для примера получим весь список установленного ПО на удаленном компьютере. Для этого выполняем следующий запрос:
/node: product get name
Где вместо подставляем имя удаленной и локальной машины, с которой необходимо получить список установленных программ. Имя компьютера лучше заключить в кавычки. Жмем “Enter” , ждем некоторое время на сбор информации и получаем примерно следующую картину:
Как удалить программу с помощью WMI?
Удалить программу можно с помощью следующего запроса:
Где вместо вставляем имя компьютера с которого будет удаляться программа, а вместо имя удаляемой программы как в полученном списке ПО.
Например, нам необходимо удалить «Microsoft Office Professional Plus 2010». Тогда запрос будет выглядеть примерно так:
/node: product where name=”Microsoft Office Professional Plus 2010″ call uninstall
Нажимаем «Enter» и на запрос предложения удаления программы отвечаем Y:
wmic:root\cli>/node:”tep-ws000010″ product where name=”Microsoft Office Professional Plus 2010″ call uninstall
Execute (\\TEP-WS000010\ROOT\CIMV2:Win32_Product.IdentifyingNumber=””,Name=”Microsoft Office Professional Plus 2010″,Version=”14.0.4763.1000″) ->Uninstall () (Y/N/?)? Y
После попытки удаления будет выведено сообщение о результатах. В случае успешного удаления сообщение будет такого вида:
Method execution successful.
Out Parameters:
instance of __PARAMETERS
ReturnValue = 0;
>;
На этом все! До встречи в следующих выпусках!
При подготовке материала использовались источники:
https://winitpro.ru/index.php/2016/03/07/kak-vyvesti-spisok-ustanovlennyx-programm-v-windows-10/
https://winitpro.ru/index.php/2022/04/12/powershell-udalenie-programm-windows/
https://webcodius.ru/windows/udalennoe-udalenie-programm-pri-pomoshhi-wmi.html