текущая версия 2.0.0.0

Как это работает?


Предположим что мы загрузили сервер удаленного рабочего стола настроенный для домена rdsrv.org и порта 1234. По умолчанию он будет иметь имя rdsrv.org_1234.exe. Заметьте, что изменение имени не позволит правильно работать ему на компьютере с другим адресом. Имя файла служит напоминанием о параметрах использованных при компиляции.

Исполняемый файл сервера удаленного рабочего стола содержит в себе в качестве ресурсов удаленный клиент и менеджер подключений. Они в свою очередь имеют в своем составе остальные модули необходимые для работы.

rdsrv структура

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

Удаленный рабочий стол производит подключение из браузера по протоколу HTTP (в нашем случае http://rdsrv.org:1234), сервер распаковывает и возвращает исполняемый модуль удаленного клиента (хранится как ресурс в модуле сервера). Пользователь в браузере должен разрешить его загрузку и запуск. При старте, клиент создает на удаленном рабочем столе в папке пользователя «Мои документы/Документы» свою копию rdloader.exe, которую в будущем можно использовать для быстрого подключения, без необходимости запуска браузера.

rcli

Далее удаленный клиент автоматически подключается к серверу удаленных рабочих столов на тот же порт, но распознается сервером и выделяется в отдельный объект. У удаленного клиента запрашивается некоторая базовая информация о компьютере, и соединение переводится в режим ожидания. Список таких подключений поддерживается сервером удаленного рабочего стола, каждое подключение периодически проверяется, чтобы избежать отключения по таймауту.

Чтобы получить доступ к списку удаленных компьютеров, администратор должен из браузера набрать тот же адрес, но с приставкой lman (http://rdsrv.org:1234/lman). В ответ сервер удаленных рабочих столов возвращает исполняемый модуль менеджера подключений, который после запуска автоматически подключается к серверу, запрашивает пароль (по умолчанию 123456, пароль передается зашифрованным, при неправильном наборе пароля ошибка не выдается, появится пустое окно), и отображает список удаленных клиентов, и информацию о них. Среди прочих в колонке User используется следующее сокращение. Перед именем пользователя добавляется "+", если у него есть права администратора на удаленной системе. И знак "-", если включено UAC и пользователь находится в группе администраторов (Windows Vista и выше). Непосредственно из менеджера подключений можно выполнять ряд действий над удаленными клиентами по правой кнопке мыши.

rcli

При двойном щелчке на элементе списка, менеджер подключений распаковывает и запускает клиента (отдельным процессом), которому передает GUID выбранного удаленного клиента (GUID создается удаленным клиентом при каждом запуске). Клиент устанавливает соединение с сервером и через него с удаленным клиентом. После этого можно видеть удаленный рабочий стол и управлять им. Клиентов может быть одновременно открыто любое количество. На этом этапе окно менеджера можно закрыть, т.к. оно никак не влияет на соединение. Менеджеров тоже может быть запущено несколько одновременно, в том числе и на разных компьютерах.

rcli

Пользователь на удаленном рабочем столе информируется о состоянии подключения. Если его компьютер подключен к серверу и может быть доступен для просмотра рабочего стола, в область уведомлений на панели задач выводится синяя звездочка. Если есть кто-то, кто в данный момент наблюдает рабочий стол, звездочка меняет свой цвет на зеленый.

Команды для удаленного рабочего стола вызываются кнопками на панели сверху окна. Каждая кнопка имеет подсказку и объяснение действия команды. Специального хелпа не предусмотрено. Окно просмотра можно уменьшать в размерах, это уменьшает трафик. Сворачивание окна приводит к остановке передачи изображения, трафик падает почти до нуля.

Файлы проекта

  • rdsrv.exe сервер удаленных рабочих столов
  • rdsrv.ini файл настроек сервера удаленных рабочих столов
  • rcli.exe имя удаленного клиента при загрузке
  • rdloader.exe удаленный клиент
  • RDSRVCredProv.dll провайдер удостоверений
  • lman.exe менеджер подключений
  • lcli.exe окно управления удаленным рабочим столом

Наличие каких-либо специальных библиотек или дополнительных компонентов Windows не требуется.


Copyright (C) Sergey Kuzmin support@rdsrv.org