...

Команды для удаления программ Виндовс повер шелл

Удаление программ в 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.

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

Установка приложений с помощью менеджера пакетов 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://winitpro.ru/index.php/2017/02/14/ustanovka-prilozhenij-s-pomoshhyu-menedzhera-paketov-powershell/

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