Удаленное администрирование. Установка и удаление программ

В этой заметке разберем команды для удаленной установки и удаления программ, используя средства wmi и psexec

Предисловие

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

Отключить антивирус удаленно на примере KAV

psexec \\ComputerName "C:\Program Files (x86)\Kaspersky Lab\Kaspersky Endpoint Security 10 for Windows SP2\avp.com" exit /login=KLAdmin /password=<Pass>

Отключение встроенного брандмауэра для всех профилей (только локально)

powershell -command "Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False"

Для удаленного отключения брандмауэра должен быть доступен Сервер RPC. Доступ к которому блокирует включенный брандмауэр 😂🤣 Такая рекурсия.

Поэтому, как всегда, пойдем обходным путем:

psexec \\CompName netsh -c advfirewall set allprofiles state off

Команда на включение брандмауэра, соответственно, будет state on

Удаление программы
# Находим процесс по имени программы в имени пути к ней
wmic /node:CompName process where "ExecutablePath like '%7-zip%'" get Description /format:list

# Завершаем нужный процесс
wmic /node:CompName process where "ExecutablePath like '%7-zip%'" delete

# Ищем имя нужной программы в полном списке
wmic /node:CompName product get name

# Просмотр сведений по конкретной установке программы
wmic /node:CompName product where "name like '%7-zip%'" list brief

# Выполняем удаленную деинсталляцию пакета
wmic /node:CompName product where "name like '%7-zip%'" call uninstall /nointeractive
Данный способ работает только с MSI пакетами
Установка программы

Тихая установка с предварительным копированием программы на удаленный хост

copy "C:\Distr\7z1900-x64.msi" "\\CompName\C$\Share\7z1900-x64.msi"
psexec \\CompName cmd /c "msiexec.exe /i C:\7z1900-x64.msi /quiet /norestart"

Установка с сетевого ресурса

psexec \\CompName -s cmd /c "msiexec /i \\CompName\Share\7z1900-x64.msi /quiet /norestart"
Административные шары, такие как «C$»,
для подобной команды не функционируют.
Необходимо создать сетевую папку вручную

Так же возможна установка по списку компьютеров используя «@», как показано в основной заметке по Psexec.

Получить список программ

Получать список  установленных в системе программ лучше из реестра, нежели средствами WMI. Этот метод работает намного быстрее, чем при использовании
Get-WmiObject -Class Win32_Product

Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Select DisplayName | Sort DisplayName
Get-ItemProperty HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select DisplayName | Sort DisplayName

Из-за того что в системе могут быть установлены как 64, так и 32 битные приложения, необходимо получать значения обеих веток. Можно поместить весь список в одну переменную.

 

Так же читайте как в тихом режиме деинсталлировать любую программу по ее GUID

Одна мысль про “Удаленное администрирование. Установка и удаление программ”

  1. Management Remote PC, и установка и удаление программ без написания скриптов. использует WMI, для пользователя все просто, выводит список программ, хочешь удаляй, хочешь устанавливай… и не только.

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

Ваш адрес email не будет опубликован.