...

Как удалить программу через powershell Windows

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

date

18.10.2022

user

itpro

directory

PowerShell, Windows 10, Windows 11, Windows Server 2019

comments

комментария 4

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

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

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

wmic product get name,version

удаление программ с помощью wmic через WMI

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

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

список установленных программ в панели управления и в WMI namespace

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

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

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

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

Get-Package - команда powershell выводит список установленных программ

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

список packageproveider в 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 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 удаление программ в Windows 10

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

winget uninstall —name 7zip.7zip

Для удаление MSI приложения Windows нужно указать его GUID:

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

winget uninstall —id «Microsoft.ZuneVideo_8wekyb3d8bbwe»

winget uninstall команда удаления программы

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

Invoke-Command -ComputerName pc2122sd1 -ScriptBlock

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

Предыдущая статьяПредыдущая статья Следующая статья Следующая статья

Uninstalling Programs with PowerShell in Windows 10/11

In this article, we’ll look at how to uninstall software on a local or remote Windows computer using PowerShell. Quite often, the system administrator uses scripts to uninstall Windows applications. You can use several approaches to remove programs from the command prompt or PowerShell scripts.

  • Using WMI to Uninstall Programs in Windows
  • Uninstall Apps on Remote Computer with PowerShell Package Manager Module
  • How to Uninstall App with WinGet Command?

Using WMI to Uninstall Programs in Windows

The most common way to remove installed programs on Windows is to use commands that refer to the WMI namespace. For example, you can query the WMI namespace and get a list of installed programs with the wmic command.

wmic product get name,version

wmic product get name,version - get list of installted appd

To silently uninstall an application from this list, you may use the command below:

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

The command calls an app (vCenter Converter) uninstallation WMI method through the Windows Installer.

Executing (\\COMPName\ROOT\CIMV2:Win32_Product.IdentifyingNumber="",Name="VMware vCenter Converter Standalone",Version="6.2.0.8466193")->Uninstall()

If the program is successfully uninstalled, it will return:

Method execution successful. Out Parameters: instance of __PARAMETERS < ReturnValue = 0; >;

Here are similar PowerShell commands to display and uninstall apps via WMI:

Get-WmiObject Win32_Product | ft name,version,vendor,packagename
(Get-WmiObject Win32_Product -Filter «Name = ‘XXX'»).Uninstall()

In order to remove a program on a remote computer, add the -ComputerName option. For example, to uninstall Microsoft Office on a remote computer, run the command below:

$apps = Get-WmiObject -Class Win32_Product -ComputerName wkmn-man23 |where name -Like «Office 16 Click-to-Run*»
$apps.uninstall()

However, this method of removing applications is not universal enough for all possible cases. If you compare the list of programs returned via the WMI namespace and the list of apps in the Windows Control Panel/ Apps & features list in Settings (use the MS-Settings quick access command: ms-settings:appsfeatures ), you will see that they differ. The wmi command only displayed a list of programs installed through the Windows Installer. The list doesn’t include most user apps (browsers, for example).

full list of instaled programs in windows 10

In addition, UWP programs from the Microsoft Store, and PowerShell modules (via PowerShellGet) are not displayed.

Uninstall Apps on Remote Computer with PowerShell Package Manager Module

In modern Windows 10/11 builds and Windows Server 2022/2019/2016, you can use the built-in PowerShell Package Management cmdlets to install or uninstall apps. Originally, the module was used to install/uninstall PowerShell modules. However, you may use it to uninstall Win32 programs, MSU updates, and apps installed using MSI installers as well.

To display a complete list of installed apps on a local computer, run the command below:

Get-Package - Powershell: Export List of apps

The command returns several classes of programs installed through the different providers (ProviderName). You can display a list of providers on a computer as follows:

list package proveders in windows 10

To show a list of programs installed via a specific provider, run this command:

Get-Package -ProviderName Programs -IncludeWindowsInstaller

Use the Uninstall-Package cmdlet to remove the program:

Get-Package -Name «Notepad++*» | Uninstall-Package

You can remove the installed PowerShell module. For example, to uninstall all VMware.PowerCLI modules:

Get-Package -ProviderName PowerShellGet -Name «VMware.*» | Uninstall-Package

To uninstall a program on a remote computer, use the Invoke-Command cmdlet:

Invoke-Command -ComputerName mun-dc01 -ScriptBlock

You can use this module to uninstall Win32 apps and PS modules only. To remove UWP apps from Microsoft Store, use the Remove-AppxPackage or Remove-AppxProvisionedPackage PowerShell cmdlets (see an example in this article).

How to Uninstall App with WinGet Command?

You can use the new WinGet package manager (it is built into Windows 10 and 11) to install and remove programs on Windows. To get a list of programs on your computer, run:

The command returns a list of programs including those installed using other methods than winget and a list of UWP (APPX) apps.

winget list installed apps

To remove apps installed via WinGet, run the command below:

winget uninstall —name 7zip.7zip

To uninstall an MSI app in Windows, specify its GUID:

To uninstall a UWP app:

winget uninstall —id «Microsoft.ZuneVideo_8wekyb3d8bbwe»

winget uninstall application from cmd

However, winget doesn’t allow you to uninstall programs on a remote computer. To execute winget command on a remote computer, use the PowerShell Remoting features (Invoke-Command and Enter-PSSession cmdlets). For example:

Invoke-Command -ComputerName wkmn-man231 -ScriptBlock

You can use the PowerShell scripts shown here to remotely uninstall programs or run them on domain computers using SCCM or GPO logon scripts.

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

date

08.06.2022

user

itpro

directory

PowerShell, Windows 10

comments

комментариев 10

В состав Windows 10 разработчики включили новый PowerShell модуль с именем PackageManagement. Модуль PackageManagement (ранее назывался OneGet) позволяет из консоли PoSh устанавливать, управлять и удалять приложения и программы из некого внешнего (или локального) репозитория, а также управлять списком подключенных репозиториев. Проще говоря, в Windows 10/ Windows Server 2016 появилась возможность устанавливать программы из командной строки по аналогии с известной командой Linux apt-get install.

Модуль менеджера пакетов PackageManagement позволяет существенно упростить процедуру установки нового ПО. Вся установка по сути сводиться к выполнению одной команды PowerShell, и, самое главное, пользователю не нужно самостоятельно искать в интернете и выкачивать дистрибутивы софта, рискуя скачать устаревшую или зараженную версию. Установка проводится из доверенного источника программ. При обновлении программного обеспечения в репозитории, оно может быть автоматически обновлено на клиентах.

Модуль PackageManagement

Модуль PackageManagement уже встроен в Windows 10, а для его работы требуется PowerShell 5. Поэтому для работы менеджера пакетов в Windows 8.1 нужно сначала установить Windows Management Framework 5.0. Также Microsoft выпустила отдельный модуль для работы менеджера пакетов и на PowerShell версий 3 и 4.

Выведем список доступных командлетов PowerShell в модуле PackageManagement:

Get-Command -Module PackageManagement

В текущей версии модуля (v 1.0.0.1) имеются такие команды:

  • Find-Package — поиск пакета (программы) в доступных репозиториях
  • Get-Package — получить список установленных пакетов
  • Get-PackageProvider — список провайдеров (поставщиков пакетов), доступных на компьютере
  • Get-PackageSource — список доступных источников пакетов
  • Install-Package — установить пакет (программу) на компьютере
  • Register-PackageSource — добавить источник пакетов для провайдера

Командлеты модуля Powershell PackageManagement

Провайдеры пакетов

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

Список провайдеров в модуле PackageManagement

По умолчанию в системе имеются 2 установленных источника пакетов: nuget.org и PSGallery (официальная онлайн галерея скриптов PowerShell от MSFT). Но они предназначены в первую очередь для программистов и системных администраторов.

Примечание. В Nano Server есть специальный еще провайдер NanoServerPackage, о нем в следующей статье.

Чтобы получить доступ к каталогу прикладного ПО, подключим популярный репозитарий ПО – Chocolatey, содержащий на данный момент более 4500 различных программ.

Установим новый провайдер Chocolatey:

Подтвердим установку провайдера, нажав Y.

Установка провайдера chocolatey

Сделаем Chocolatey доверенным источником пакетов, чтобы каждый раз при установке пакета не приходилось подтверждать установку.

Set-PackageSource -Name chocolatey -Trusted

Убедимся, что Chocolatey теперь присутствует среди доступных репозитариев приложений:

Get-PackageSource

Name ProviderName IsTrusted Location
—- ———— ——— ———
PSGallery PowerShellGet False https://www.powershellgallery.com/api/v2/
chocolatey Chocolatey True http://chocolatey.org/api/v2/

Установка приложений из репозитория Chocolatey

Рассмотрим теперь, как установить приложение (пакет) из репозитория Chocolatey.

Список доступных для установки приложения можно получить непосредственно на официальном веб сайте Chocolatey (https://chocolatey.org/packages)

Репозиторий приложений Chocolatey

Также можно найти и установить нужное приложение прямо из консоли PowerShell. Например, для просмотра pdf файлов нам понадобилось установить приложение Adobe Acrobat Reader. Т.к. мы не знаем полного названия приложения, для его установки нам нужно получить имя пакета в каталоге. Выполним поиск в репозитории по ключевому слову ‘adobe’:

Find-Package -Name *adobe* -Source Chocolatey

В консоли появится список всех пакетов по данному ключу. Нам нужен пакет adobereader (нужно использовать именно имя пакета из столбца Name).

Запускаем установку пакета Adobe Reader:

Install-Package -Name adobereader -ProviderName Chocolatey

Установка пакета adobereader из репозитория Chocolatey

Вверху окна PowerShell появится ползунок, свидетельствующий о начале загрузки пакета Adobe Reader. Сразу после окончания загрузки, приложение установится в системе.

acrobat- eader dc в windows 10

Еще один пример. Допустим, нам понадобилось иметь на компьютере набор утилит SysInternals. Чтобы не качать его вручную, найдем пакет SysInternals в репозитарии Chocolatey и установим его.

Find-Package -Name Sysinternals | Install-Package

Т.к. пакет не требует установки, он сохраняется на компьютер и хранится в каталоге C:\Chocolatey\lib\. В нашем примере это каталог C:\Chocolatey\lib\sysinternals.2016.11.18\tools

Установка sysinternals из каталога Chocolatey

Сразу несколько приложений можно установить всего одной командой:

Find-Package -Name firefox, winrar, notepadplusplus, putty, dropbox | Install-Package

Удаление пакета

Удаление приложения на компьютере выполняется также одной командой. К примеру, для удаления Adobe Reader, выполните команду:

Итак, мы рассмотрели новые возможности установки приложений в Windows из командной строки PowerShell. В ближайшем будущем, вероятно, появятся графические надстройки над модулем PackageManagement, позволяющие легко управлять установкой/удалением ПО и простым пользователям без навыков работы с CLI.

Предыдущая статьяПредыдущая статья Следующая статья Следующая статья

При подготовке материала использовались источники:
https://winitpro.ru/index.php/2022/04/12/powershell-udalenie-programm-windows/
https://woshub.com/uninstall-apps-with-powershell-windows/
https://winitpro.ru/index.php/2017/02/14/ustanovka-prilozhenij-s-pomoshhyu-menedzhera-paketov-powershell/

Оцените статью