
В этой статье мы рассмотрим, как удалять программы на локальном или удаленном компьютере 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-метод удаления приложений через установщик 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
- Программы
- 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}
Этот модуль можно использовать только для удаления приложений 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 Remoting (команды Invoke-Command и Enter-PSSession). Например:
Invoke-Command -ComputerName wkmn-man231 -ScriptBlock {winget uninstall --name 7zip.7zip}
Сценарии PowerShell, показанные здесь, можно использовать для удаленного удаления программ или их запуска на компьютерах домена с помощью сценариев входа в SCCM или GPO.