Удаление программ в Windows с помощью PowerShell
15.04.2022
itpro
PowerShell, Windows 10, Windows 11, Windows Server 2019
комментария 3
В этой статье мы рассмотрим, как в Windows удалить установленные программы на локальном и удаленном компьютере с помощью PowerShell. Довольно часто в скриптах и сценариях автоматизации приходится использовать различные блоки кода для удаления установленных программ Windows. Для удаления программ из командной строки или скриптами PowerShell можно использовать несколько подходов.
Удаление установленных программ с помощью WMI
Чаще всего для удаления установленных программ в Windows используют команды, обращающиеся к пространству имен WMI. Например, с помощью утилиты wmic можно вывести список установленных программ:
wmic product get name,version
Для тихого удаления программы из этого списка можно использовать такую команду:
wmic product where name=»VMware vCenter Converter Standalone» call uninstall /nointeractive
Команда вызовет WMI метод удаления программы через Windows Installer.
Если удаление программы выполнено успешно, она вернет:
Аналогичные 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. В списке нет большинства пользовательских программ (например, браузеров).
Также не выводятся UWP программы из Microsoft Store, установленные модули PowerShell (через PowerShellGet) и т.д.
Удалить программу на удаленном компьютере с помощью PowerShell модуля Package Manager
В современных версиях Windows 10/11 и Windows Server 2022/2019/2016 для установки и удаления программ можно использовать командлеты из модуля PowerShell Package Management. Изначально модуль использовался для установки/удаления PowerShell модулей. Однако вы можете использовать его и для удаления Win32 программ, MSU обновлений, программ установленных помощью MSI установщиков.
Чтобы вывести полный список установленных программ на локальном компьютере, выполните команду:
Команда вернет несколько классов программ, установленных через разные провайдеры (ProviderName). Полный список доступных провайдеров на компьютере можно вывести так:
- 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 Msk-Ser01 -ScriptBlock
Данный модуль можно использовать только для удаления программ Win32 и модулей. Для удаления UWP программ Microsoft Store нужно использовать PowerShell командлеты Remove-AppxPackage и Remove-AppxProvisionedPackage (см. Пример в статье).
Используем менеджер пакетов WinGet для удаления установленных программ
Для установки и удаления программ в Windows можно использовать новый менеджер пакетов winget (встроен в современные версии Windows 10 и 11). Чтобы вывести список программ на компьютере, выполните:
Команда вернет список программ, в том числе установленных не через winget, а также список UWP приложений.
Для удаления программ, установленной через WinGet нужно выполнить команду:
winget uninstall —name 7zip.7zip
Для удаление MSI приложения Windows нужно указать его GUID:
Для удаления UWP приложения:
winget uninstall —id «Microsoft.ZuneVideo_8wekyb3d8bbwe»
Однако, winget не позволяет удалить программы на удаленном компьютере. Для запуска команд winget на удаленном компьютере нужно использовать возможности PowerShell Remoting (командлеты Invoke-Command и Enter-PSSession). Например:
Invoke-Command -ComputerName pc2122sd1 -ScriptBlock
Вы можете использовать рассмотренные здесь PowerShell скрипты для удаленного удаления программ, или в сценариях запуска команд на компьютерах в сети через SCCM или logon скрипты GPO.
Удаленная деинсталляция программ в локальной сети
Довольно часто в работе системного администратора требуется деинсталлировать ту или иную программу на удаленном компьютере незаметно для пользователя. Как решить эту задачу?
1. Узнаем в реестре код приложения по пути:
2. Создаем командный файл:
где указываем полученный ранее код
3. Запускаем командный файл на удаленном компьютере.
Здесь возможны варианты.
Если вы используете в локальной сети Kaspersky Admin Kit или Kaspersky Security Center, то можно с помощью данного инструмента:
— Выбрать «Хранилища» и создать инсталляционный пакет;
— Выбрать «Задачи для набора компьютеров» и создать задачу удаленной установки этого инсталляционного пакета;
— Запустить созданную задачу для выбранных компьютеров.
Другой вариант с помощью утилиты PSExec от Sysinternals:
Эта команда скопирует файл командный файл на удаленный компьютер и запустит его с правами, которые вы указали.
Удаленное администрирование. Установка и удаление программ
Иногда удаленному выполнению команд может препятствовать антивирус или встроенный брандмауэр, в зависимости от настроек безопасности вашей сети. При необходимости отключаем их.
Отключить антивирус удаленно на примере KAV
Отключение встроенного брандмауэра для всех профилей (только локально)
Для удаленного отключения брандмауэра должен быть доступен Сервер RPC. Доступ к которому блокирует включенный брандмауэр Такая рекурсия.
Поэтому, как всегда, пойдем обходным путем:
Команда на включение брандмауэра, соответственно, будет state on
Удаление программы
Установка программы
Тихая установка с предварительным копированием программы на удаленный хост
Установка с сетевого ресурса
Так же возможна установка по списку компьютеров используя «@», как показано в основной заметке по Psexec.
Получить список программ
Получать список установленных в системе программ лучше из реестра, нежели средствами WMI. Этот метод работает намного быстрее, чем при использовании
Get-WmiObject -Class Win32_Product
Из-за того что в системе могут быть установлены как 64, так и 32 битные приложения, необходимо получать значения обеих веток. Можно поместить весь список в одну переменную.
Так же читайте как в тихом режиме деинсталлировать любую программу по ее GUID
Одна мысль про “Удаленное администрирование. Установка и удаление программ”
Management Remote PC, и установка и удаление программ без написания скриптов. использует WMI, для пользователя все просто, выводит список программ, хочешь удаляй, хочешь устанавливай… и не только.
Как удалить приложения с компьютеров в домене
365 CASH — лучший и быстрый биткоин обменник! Более 10.000 отзывов.
Хостинг Fozzy — недорогой и быстрый хостинг на SSD дисках проверенный годами.
В этой статье я расскажу как устанавливать программы на пользовательские компьютеры с помощью групповых политик. Рассмотрим такой процесс как установка программ через домен Windows Server.
Итак, этот материал рассчитан на людей, которые уже умеют установить и настроить домен на Windows Server (этот материал является продолжением статьи).
Групповые политики используются для централизованного управления пользователями домена. Они позволяют управлять настройками операционной системы клиентских машин. Администратор домена может контролировать, настраивать различные компоненты операционных систем компьютеров, входящих в состав домена.
Групповые политики применяются при настройках системы безопасности. Настройки безопасности могут распространяться на определенные группы пользователей или конкретного пользователя. Политика безопасности позволяет конфигурировать большое количество субъектов безопасности по одним параметрам.
Управление установкой и удалением программ может осуществляться при помощи групповых политик. Главный плюс в том, что если нужно установить программу на 100 компьютеров, не нужно делать это вручную, используя групповые политики можно выполнить установки на всех компьютерах централизованно.
Подготовка к установке программ
Создайте каталог для хранения установочных файлов (например, C:\Install). Установочные файлы программ должны быть в формате установочных пакетов Microsoft (расширение — msi). Для примера я установлю архиватор 7z.
Откройте общий доступ к созданному каталогу при помощи вкладки «Доступ» свойств каталога.
Запустите «Active Directory –> пользователи и компьютеры» (Пуск –> Администрирование –> Active Directory –> пользователи и компьютеры.
В домене создайте новое подразделение, для установки программы, в моем случае это Install подразделение.
Переместите в созданное подразделение доступный компьютер из подразделения «Computers».
Создайте новую групповую политику для созданного подразделения.
Свяжите подразделение с политикой, нажмите правой кнопкой на созданное подразделение и выберите «Связать существующий объект групповой политики…», затем выберите созданный ранее объект в списке и нажмите «ОК».
Установка программ через домен
Откройте созданную групповую политику. Создание заданий на установку программного обеспечения на компьютерах, входящих в домен, осуществляется в разделе Конфигурация компьютера –> Конфигурация
программ –> Установка программ. В контекстном меню раздела Установка программ выберите «Создать» и укажите полный сетевой путь к месту расположения установочного файла – C\Install. В появившемся окне выберите «Назначенный» метод развёртывания.
Программа будет установлена на клиентскую машину после перезагрузки.
Обновление программного обеспечения при помощи групповых политик
Скачайте последнюю версию программы и скопируйте ее в папку с общим доступом. Процедура обновления программного обеспечения с помощью групповых политик аналогична процедуре установки программ. Но, на этапе выбора метода развертывания нужно выбрать метод развертывания.
Нажмите «ОК», после чего перейдите на вкладку «Обновления», выберите приложение которые нужно обновить и нажмите «ОК».
Для применения изменённых параметров групповой политики клиентские компьютеры перезагрузятся дважды.
Удаление программного обеспечения при помощи групповых политик
Существует два варианта удаления заданий на установку программного обеспечения:
- Первый вариант позволяет удалить не только задание, но и программу, установленную на рабочие станции.
- Второй вариант удаляет только задание.
Нажмите правой кнопкой на программу и выберите «Все задачи» -> «Удалить».
После чего выберите один из вариантов удаления.
Обучаю HTML, CSS, PHP. Создаю и продвигаю сайты, скрипты и программы. Занимаюсь информационной безопасностью. Рассмотрю различные виды сотрудничества.
2 комментариев к записи “ Установка программ через домен Windows Server ”
Добрый день,
Спасибо за статью !
а есть политика которая при установке на сервере программы, пример: 1С, MSSQL SERVER не дублировал на других пользователей ?
Здравствуйте. Не совсем понял ваш вопрос. Пользователи 1С хранятся в БД 1С. Ну а в групповых политиках так: каких пользователей добавите, к тем пользователям политика и применяется.