Удаление программ с помощью PowerShell в Windows 10/11

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

Использование WMI для удаления программ в Windows

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

wmic product get name,version

wmic product get name,version - получение списка установленных appdwmic product get name,version - получить список установленных appd

Чтобы беззвучно удалить приложение из этого списка, можно воспользоваться командой ниже:

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. В этот список не входит большинство пользовательских приложений (например, браузеры).

полный список установленных программ в windows 10полный список установленных программ в windows 10

Кроме того, не отображаются программы UWP из Microsoft Store и модули PowerShell (через PowerShellGet).

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

В современных сборках Windows 10/11 и Windows Server 2022/2019/2016 можно использовать встроенный модуль PowerShell Управление пакетами Команды для установки или удаления приложений. Изначально модуль использовался для установки/удаления модулей PowerShell. Однако вы можете использовать его и для удаления программ Win32, обновлений MSU и приложений, установленных с помощью инсталляторов MSI.

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

Get-Package

Get-Package - Powershell: Экспорт списка приложенийGet-Package - Powershell: Экспорт списка приложений

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

Get-PackageProvider

  • Программы
  • Msi
  • Msu
  • PowerShellGet
  • NuGet

список доказателей пакетов в windows 10список доказателей пакетов в windows 10

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

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 Remoting на компьютерах домена с помощью GPO.

Этот модуль можно использовать только для удаления приложений Win32 и модулей PS. Чтобы удалить UWP-приложения из Microsoft Store, воспользуйтесь модулем Remove-AppxPackage или Remove-AppxProvisionedPackage Команды PowerShell (см. пример в этой статье).

Как удалить приложение с помощью команды WinGet?

Вы можете использовать новую WinGet менеджер пакетов (он встроен в Windows 10 и 11) для установки и удаления программ в Windows. Чтобы получить список программ на вашем компьютере, выполните команду:

winget list

Команда возвращает список программ, включая те, которые были установлены другими методами, а не с помощью winget, а также список приложений UWP (APPX).

winget list installed appsсписок установленных приложений winget

Чтобы удалить приложения, установленные с помощью 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 удалить приложение из cmdwinget удаление приложения из cmd

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

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

Сценарии PowerShell, показанные здесь, можно использовать для удаленного удаления программ или их запуска на компьютерах домена с помощью сценариев входа в SCCM или GPO.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *