Удаление программ с помощью PowerShell в Windows 10/11
В этой статье мы рассмотрим, как удалить программное обеспечение на локальном или удаленном компьютере Windows с помощью PowerShell. Довольно часто системный администратор использует скрипты для удаления приложений Windows. Вы можете использовать несколько подходов для удаления программ из командной строки или сценариев PowerShell.
Использование WMI для удаления программ в Windows
Самый распространенный способ удаления установленных программ в Windows — использование команд, ссылающихся на пространство имен WMI. Например, вы можете запросить пространство имен WMI и получить список установленных программ с помощью команды wmic.
wmic product get name,versionЧтобы незаметно удалить приложение из этого списка, вы можете использовать команду ниже:
wmic product where name="VMware vCenter Converter Standalone" call uninstall /nointeractiveКоманда вызывает метод WMI удаления приложения (vCenter Converter) через установщик Windows.
Executing (\\COMPName\ROOT\CIMV2:Win32_Product.IdentifyingNumber="{PROGRAM_GUID}",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 wkmn-man23 |where name -Like "Office 16 Click-to-Run*"
$apps.uninstall()Однако этот способ удаления приложений не является достаточно универсальным для всех возможных случаев. Если вы сравните список программ, возвращаемый через пространство имен WMI, и список приложений в панели управления Windows/списке приложений и функций в настройках (используйте команду быстрого доступа MS-Settings:
ms-settings:appsfeatures), вы увидите, что они различаются. Команда wmi отображала только список программ, установленных через установщик Windows. В список не вошли большинство пользовательских приложений (например, браузеров).
Кроме того, не отображаются программы UWP из Microsoft Store и модули PowerShell (через PowerShellGet).
Удаление приложений на удаленном компьютере с помощью модуля диспетчера пакетов PowerShell
В современных сборках Windows 10/11 и Windows Server 2022/2019/2016 вы можете использовать встроенные командлеты PowerShell Управление пакетами для установки и удаления приложений. Первоначально модуль использовался для установки/удаления модулей PowerShell. Однако вы можете использовать его для удаления программ Win32, обновлений MSU и приложений, установленных с помощью установщиков MSI.
Чтобы отобразить полный список установленных приложений на локальном компьютере, выполните команду ниже:
Get-Package
Команда возвращает несколько классов программ, установленных через разных поставщиков (ProviderName). Отобразить список провайдеров на компьютере можно следующим образом:
Get-PackageProvider- Programs
- Msi
- Msu
- PowerShellGet
- NuGet
Чтобы отобразить список программ, установленных через определенного провайдера, выполните следующую команду:
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 mun-dc01 -ScriptBlock { Get-Package -Name "Notepad++*" | Uninstall-Package}Вы можете включить удаленное взаимодействие WinRM PowerShell на компьютерах домена через объект групповой политики.
Вы можете использовать этот модуль только для удаления приложений Win32 и модулей PS. Чтобы удалить приложения UWP из Microsoft Store, используйте
Remove-AppxPackageили
Remove-AppxProvisionedPackageКомандлеты PowerShell (см. пример в этой статье).
Как удалить приложение с помощью команды WinGet?
Вы можете использовать новый менеджер пакетов WinGet (он встроен в Windows 10 и 11) для установки и удаления программ в Windows. Чтобы получить список программ на вашем компьютере, запустите:
winget listКоманда возвращает список программ, включая те, которые были установлены не с помощью winget, а также список приложений UWP (APPX).
Чтобы удалить приложения, установленные через WinGet, выполните команду ниже:
winget uninstall --name 7zip.7zipЧтобы удалить приложение MSI в Windows, укажите его GUID:
winget uninstall --id "{332C1E78-1D2F-4A64-B718-68095DC6254B}"Чтобы удалить приложение UWP:
winget uninstall --id "Microsoft.ZuneVideo_8wekyb3d8bbwe"Однако winget не позволяет удалять программы на удаленном компьютере. Чтобы выполнить команду winget на удаленном компьютере, используйте функции удаленного взаимодействия PowerShell (командлеты Invoke-Command и Enter-PSSession). Например:
Invoke-Command -ComputerName wkmn-man231 -ScriptBlock {winget uninstall --name 7zip.7zip}Вы можете использовать показанные здесь сценарии PowerShell для удаленного удаления программ или запуска их на компьютерах домена с помощью сценариев входа SCCM или GPO.





