IT → Оснастка «Удаленное управление компьютером»

Май 12, 2011

Очень часто использую оснастку "Управление компьютером" (compmgmt.msc) для управления удаленным компьютером. С помощью нее можно запускать/останавливать сервисы, закрывать активные сессии, расшаривать папки, добавлять пользователей в локальные группы, просматривать диспетчер устройств и все это удаленно!


Для того, чтобы запустить её для удаленного управления, необходимо открыть саму оснастку compmgmt.msc, выбрать "Действия -> Подключиться к другому компьютеру..." и ввести адрес компьютера - кажется что не сложно. Но когда приходиться выполнять эти действия по 20 раз в день, начинаешь задумываться о том как оптимизировать этот процесс, чем я и занялся.


Открыв файл compmgmt.msc в блокноте, можно увидеть XML структуру, которая описывает параметры оснастки. Ничего похожего на адрес компьютера в нем не обнаружилось и поэтому было решено сравнить через Total Commander два файла оснастки - стандартной compmgmt.msc и ранее сохраненной compmgmt.msc, настроенной на удаленный компьютер.

Оснастку можно сохранить, если сначала запустить mmc.exe, после чего через нее открыть файл compmgmt.msc.

Самое существенное изменение в файлах было на 498 строчке, где между тэгом <Binary> и </Binary> находился набор символов, похожий на Base64. Раскодировав эту строку был найден адрес компьютера с другим лишним мусором, который был постоянен и не особо мешал. Открыв BDS2006, быстро накидал код программы, запускающий оснастку для удаленного компьютера, адрес которого можно передать аргументом. Немного пришлось помучатся с кодировкой, так как текст адреса должен быть в UTF-16, а Delphi плохо знаком с ней. Также попутно нашел для себя добротный модуль кодирования/декодирования Base64.

UPD
А ларчик просто открывался:
mmc.exe compmgmt.msc /computer=\\192.168.0.1


Скачать mscexec.zip
Исходники на github

Post to Twitter

Комментарии (6)

  1. fcoder
    Июнь 3rd, 2011 at 18:00 #

    О, спасибо! Здорово, что докопался, я в свое время не смог. На работе надо будет попробовать.

  2. GlooK
    Июнь 3rd, 2011 at 18:36 #

    Я эту утилиту прикрутил к другой своей прожке UService. Теперь чтобы удалено запустить оснастку, достаточно найти пользователя и выбрать «Manage» скриншот

  3. fcoder
    Июнь 4th, 2011 at 22:09 #

    Наверное каждый программирующий администратор разрабатывал свой DMWare =)

    Я вот тоже (а у тебя ссылки нельзя публиковать :) )
    http://superjob.ru/albums/photos/505547/

  4. GlooK
    Июнь 4th, 2011 at 23:41 #

    Ссылку добавил, антиспам просто не пропускал :)

    Вот в том то и проблема, что каждый заново разрабатывает велосипед.
    Если бы сразу нашел решение, то не стал бы городить огород.

    У вас интересный продукт получился. Он опенсорс?

  5. fcoder
    Июнь 5th, 2011 at 20:57 #

    Писал исключительно для себя (своего отдела) и под свою организацию (структуру, политики безопасности и т.п.)

    В, общем, на этом проекте я и изучал риббон-панель, динамическое построение элементов в TreeView, PopupMenu, потоки, ADO, icmp, установку службы на удаленной машине и еще что-то)

    Если интересно, исходники могу выслать в понедельник, мне не жалко. Правда там не очень много комментариев и код кривоват)

    Продолжать проект есть куда, но в ближайшее время не собираюсь, т.к. усиленно учу c# и платформу .net

  6. GlooK
    Июнь 6th, 2011 at 17:03 #

    Все равно хочется глянуть :)
    Скинь на почту tdlite mail.ru

Ваш комментарий

Яндекс.Метрика