PDA

Показать полную графическую версию : [решено] Удаление программ по сети, не отображающиеся по команде WMIC


DJ Mogarych
08-01-2015, 10:46
Добрый день, коллеги!

Есть ли у вас опыт удаления программ удалённо?

Я для таких целей пользуюсь командой
wmic /node:"%COMP%" product where name="%PROGRAM%" call uninstall /nointeractive

или, если нужно удалить все программы какого-либо производителя:
wmic /node:"%COMP%" product where vendor="%VENDOR%" call uninstall /nointeractive

Но дело в том, что не все программы, установленные на компьютере, WMIC видит. Например, у пользователя установлен mTorrent, MediaGet и ещё какая-нибудь гадость, но через WMIC их удалить не удаётся, так как в его списке их нет, хотя в "Установке и удалении программ" эти программы есть.

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

Petya V4sechkin
08-01-2015, 16:48
DJ Mogarych, к каждой такой программе нужен индивидуальный подход (в зависимости от типа инсталлера).

Для uTorrent нашлась тема (https://social.technet.microsoft.com/Forums/en-US/e06046fd-18a9-4a2d-9f11-29aa96148551/uninstall-utorrent-33-version-silently-from-sccm-2012-sp1) - там пример скрипта.
При отсутствии SCCM (и аналогичных средств) скрипт можно выполнить удаленно с помощью PsExec.

Vadikan
09-01-2015, 02:13
хотя в "Установке и удалении программ" эти программы есть. »
Тогда они есть тут
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
там же и команда на удаление.

Да, есть программы, которые ставятся в профиль, как раз mTorrent из их числа. Их параметры в пользовательском разделе
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall
И там указан конкретный профиль пользователя.
там пример скрипта »
Там в коде %userprofile%, т.е. он сработает только при запуске от имени юзера, который установил программу.

Petya V4sechkin
09-01-2015, 08:36
там же и команда на удаление
Да, но в любом случае понадобятся дополнительные опции для "тихого" удаления.

DJ Mogarych, у части программ в справке есть раздел типа Command Line Options, например у того же uTorrent там описан параметр /S.

Vadikan
09-01-2015, 10:59
но в любом случае понадобятся дополнительные опции для "тихого" удаления. »
Согласен, но эта тема в принципе раскрыта на сайте (http://www.oszone.net/2766) и в форуме (http://forum.oszone.net/forum-61.html) :)

у того же uTorrent там описан параметр /S »
При этом в реестре указано uTorrent.exe /UNINSTALL, т.е. команда будет
uTorrent.exe /UNINSTALL /S

Vadikan
13-01-2015, 13:57
Пост в блоге по мотивам вопроса: Удаление программ из консоли и простой пример мониторинга реестра (http://www.outsidethebox.ms/17408/)

http://www.outsidethebox.ms/blog/wp-content/uploads/blog-images/registry-monitoring-01_mini.png (http://www.outsidethebox.ms/17408/)

:)

DJ Mogarych
13-01-2015, 21:29
Сердечное спасибо за столь полезную и обстоятельную статью!

Vadikan
13-01-2015, 22:11
DJ Mogarych, пожалуйста. Просто я подумал, что в теме остались нераскрытыми два момента:
1. Почему wmic не все показывает
2. Как найти остальное (а не где оно находится)

DJ Mogarych
22-01-2015, 16:53
Есть и ещё один момент: как инициировать удаление с другого компьютера, да ещё и так, чтобы это было незаметно для пользователя.

Я так понимаю, что "тихое" удаление может быть просто не реализовано разработчиком.
Например, такая гадость, как MediaGet. Можно запустить процесс удаления из командной строки, но сразу же последует вопрос - "вы действительно хотите удалить?". Что только не пробовал - /S, /silent, /q, /qn - всё равно появляется окно подтверждения. Что там за инсталятор - также выяснить не удалось.

Chinaski
22-01-2015, 17:08
DJ Mogarych, Мне еще встречались такие ключи /verysilent, /passive

DJ Mogarych
04-02-2015, 00:48
Решил проблему довольно тупым, но действенным способом:
1) С помощью команды tasklist вывел список процессов на удалённой машине;
2) Выгрузил ненужные процессы командой taskkill;
3) Нашёл места базирования файлов программ и удалил эти файлы;
4) Подчистил реестр.




© OSzone.net 2001-2012