2010-04-09 4 views
1

Я недавно работал с продуктом Symantec под названием Norton EndPoint. Он состоит из приложения консоли сервера и приложения развертывания, и я хотел бы включить метод их развертывания в будущую версию одного из моих продуктов.Команда RPC для запуска установки программного обеспечения

Приложение для развертывания позволяет выбрать компьютерные рабочие станции под управлением Win2K, WinXP или Win7. Выбор рабочих станций предоставляется из AD (Active Directory) или NT Domain (поиск WINS/DNS NetBIOS). Из списка можно щелкнуть и выбрать, какие рабочие станции развертывать программное обеспечение конечной точки, которое является вирусом Symantech & шпионской защитой.

Затем, выбирая, какие рабочие станции должны получить пакет, программное обеспечение копирует программу setup.exe на каждую рабочую станцию ​​(предположительно по административной общей папке \ pcname \ c $), а затем командует рабочей станции для запуска setup.exe, что приводит к рабочая станция, устанавливающая программное обеспечение.

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

Мое мышление заключается в том, что они используют общий доступ администратора для копирования программного обеспечения на выбранные рабочие станции, а затем выдают вызов RPC для управления рабочей станцией для установки.

Интересно, что рабочие станции делают это без каких-либо зарегистрированных пользователей, которые знают, что происходит до самого конца, где требуется перезагрузка. В этот момент пользователь получает всплывающее окно с просьбой перезагрузить сейчас или позже и т. Д. ... Я подозреваю, что программа setup.exe выталкивает это сообщение.

К вопросу: Я ищу, чтобы узнать механизм, с помощью которого один компьютер на базе Windows может сказать другому, чтобы сделать какое-то действие или запустить какую-либо программу.

Мой язык программирования C/C++

Любые мысли/предложения оценили.

+0

имел точно такой же вопрос после использования инструментов DameWare – topherg

ответ

3

Я также изучал это, так как я тоже хочу удаленное развертывание программного обеспечения. Я выбрал пакет sniff pstools, так как он зарекомендовал себя довольно надежно в таких задачах удаленного администрирования.

Должен признаться, что я определенно передумал этот вызов. Вероятно, вы уже сделали свой пакет sniff и обнаружили то же самое, что у меня есть. Надеюсь, оставив этот пост, мы можем помочь другим разработчикам.

Это как PsTools осуществляет выполнение произвольного кода:

она копирует службы системы исполняемый \\ сервер \ ADMIN $ (вы должны либо уже локального администратора на удаленном компьютере, или предоставить учетные данные). После копирования файла он использует API диспетчера служб, чтобы сделать скопированный файл системной службой и запустить ее.

Очевидно, что эта системная служба теперь может делать все, что захочет, включая привязку к RPC named pipe. В нашем случае системная служба установит msi. Чтобы получить подтверждение успешной установки, вы можете либо выполнить удаленный опрос в разделе реестра, либо функцию rpc. В любом случае вам следует удалить системный сервис, когда вы закончите, и удалить файл (psexec не делает этого, я думаю, они не хотят, чтобы его использовали тайно, и в этом случае уход из службы по крайней мере даст администратор, вероятность того, что кто-то взломал их.) Этот метод не требует предварительной настройки удаленной машины, просто у вас есть админы-админы, а общий доступ к файлам и rpc открыты в брандмауэре.

Я видел демонстрации на C# с использованием WMI, но мне не нравятся эти решения. Совместное использование файлов и RPC, скорее всего, будут открыты в брандмауэрах. Если это не так, совместное использование файлов и удаленное управление MMC удаленного сервера не будут работать. WMI может быть заблокирован и до сих пор оставлен этим функционалом.

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

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

0

Этот вид функциональности также доступен с продуктами LANDesk и Altiris. Вам нужен демон-слушатель на стороне клиента, который будет прослушивать инструкции/подключения с сервера. После подключения происходит любое количество вещей: вы можете передавать файлы, запускать сценарии установки и т. Д., Как правило, прозрачно для всех пользователей этого окна.

Я использовал Twisted Framework (http://twistedmatrix.com), чтобы сделать это с небольшой горстки Linux-машин. Это Python и Linux, а не Windows, но предпосылка одинакова: клиент-слушатель принимает инструкции с сервера и выполняет их. Очень просто.

Эта функциональность также может быть выполнена с помощью скриптов VB/Powershell в домене Windows.

+0

для этого требуется, чтобы клиент получил ранее прослушиватель. Продукт Symantec не требовал установки клиента ранее. Развертывание Symantec, очевидно, использовало функцию Microsoft Windows, которую я предполагаю на данном этапе - это RPC или какой-то другой подход, такой как установка удаленной службы, которая, в свою очередь, использовалась для вызова выполнения программы setup.exe, которая скопировано. – Eric

Смежные вопросы