Блог

В этой статье мы рассмотрим, как в Windows удалить установленные приложения на локальном и удаленном компьютере с помощью PowerShell. Довольно часто в скриптах и сценариях автоматизации приходится использовать различные блоки кода для удаления установленных приложения Windows. Для удаления приложения из командной строки или скриптами PowerShell можно использовать несколько подходов.

Приобрести Windows 10-11 можно у нас в каталоге:

Windows 11 — от 1199 ₽

Windows 10 — от 1110 ₽

Удаление установленных приложений с помощью WMI

Чаще всего для удаления установленных приложений в Windows используют команды, обращающиеся к пространству имен WMI. Например, с помощью утилиты wmic можно вывести список установленных приложений:

wmic product get name,version

Для тихого удаления приложения из этого списка можно использовать такую команду:

wmic product where name="VMware vCenter Converter Standalone" call uninstall /nointeractive

Команда вызовет WMI метод удаления приложения через Windows Installer.

Аналогичные команды в 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, отличается от списка приложений в панели управления Windows. Через WMI видны только приложения, установленные через Windows Installer, но не пользовательские приложения Microsoft Store.

Удаление приложения на удаленном компьютере с помощью PowerShell модуля Package Manager

В современных версиях Windows 10/11 и Windows Server можно использовать командлеты из модуля Package Management для удаления приложений. Чтобы вывести полный список установленных приложений, выполните команду:

Get-Package

Команда вернет несколько классов приложений, установленных через разные провайдеры (ProviderName). Полный список доступных провайдеров можно вывести так:

Get-PackageProvider

— Programs
— Msi
— Msu
— PowerShellGet
— NuGet

Чтобы вывести список приложений, установленных с помощью определенного провайдера:

Get-Package -ProviderName Programs -IncludeWindowsInstaller

Для удаления приложения используйте командлет Uninstall-Package:

Get-Package -Name "Notepad++*" | Uninstall-Package

Для удаления приложения на удаленном компьютере с помощью Invoke-Command:

Invoke-Command -ComputerName Msk-Ser01 -ScriptBlock { Get-Package -Name "Notepad++*" | Uninstall-Package }

Использование менеджера пакетов WinGet для удаления установленных приложений

Менеджер пакетов WinGet позволяет устанавливать и удалять приложения в Windows 10/11. Чтобы вывести список приложений на компьютере, выполните:

winget list

Команда вернет список приложений, в том числе установленных не через winget, а также список UWP приложений.

Для удаления приложения выполните команду:

winget uninstall --name 7zip.7zip

Для удаления приложения MSI с указанием GUID:

winget uninstall --id "{332C1E78-1D2F-4A64-B718-68095DC6254B}"

Для удаления приложения UWP:

winget uninstall --id "Microsoft.ZuneVideo_8wekyb3d8bbwe"

Однако, winget не позволяет удалить приложения на удаленном компьютере. Для запуска команд winget на удаленном компьютере нужно использовать возможности PowerShell Remoting (командлеты Invoke-Command и Enter-PSSession). Например:

Invoke-Command -ComputerName pc2122sd1 -ScriptBlock {winget uninstall --name 7zip.7zip}

Эти команды и скрипты могут быть использованы для автоматизации удаления приложений, как на локальных, так и на удаленных компьютерах.

Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии