Уже по наличию этой статьи очевидно что DW - далеко не самое дружелюбное приложение для удалённого администрирования. Зато одно из самых старых. Отсутствие программных закладок в нём проверенно временем. Обойти лицензию (осуждаю) - всего пару кликов. Его функционал просто огромен, а системные требования ниже плинтуса.
Довольно много организаций всё ещё используют его и их можно понять.

Чтобы было проще, договоримся об условных обозначениях:
Клиент - компьютер пользователя, которым удалённо управляет администратор.
Оператор - компьютер администратора, с которого удалённо управляют другими компьютерами.
MRC - та часть DameWare, которая устанавливается на оператора.
Agent - та часть DameWare, которая устанавливается на клиенты.

Что именно будем ускорять

Дело в том, что по умолчанию в DameWare заданы не совсем оптимальные настройки. При первом взгляде на DameWare может быть не очевидно, что и где можно покрутить, и ещё менее очевидно - что именно эти настройки делают. Об этом я и расскажу.

Как работает DameWare Mini Remote Control

От оператора к клиенту передаются события ввода с клавиатуры и мыши, а в ответ клиент отправляет изображение. События ввода не нуждаются в ускорении и разбирать их я не буду. Передача изображения имеет 2 режима:

Mirror Driver - при установке Agent создаётся виртуальная видеокарта. Её даже можно увидеть в Диспетчере устройств. Теперь инструкции рисования отправляются одновременно на 2 видеокарты: физическую и виртуальную. В обычном состоянии данные, входящие на виртуальную видеокарту уходят в пустоту. При использовании DameWare, Agent захватывает данные, входящие на виртуальную видеокарту, и в сыром виде отправляет их MRC, который в свою очередь рендерит изображение силами процессора оператора и отображает результат в своём окне. То есть между клиентом и оператором не передаётся готовая картинка, которую можно было бы сразу отобразить на мониторе. Поскольку это поток сырых данных, частотой кадров и областями обновления управлять нельзя. Mirror Driver работает только при прямом подключении. К объектам Remote Host List его не применить.
Это позволяет без проблем непрерывно видеть изображение. В том числе Winlogon (экран блокировки и вход в систему), UAC (запрос прав администратора), всякие оверлеи антивирусов и даже некоторые плееры с DRM-защитой, чего нельзя увидеть при захвате экрана.

В контексте DameWare по сравнению с захватом экрана это работает быстрее, снижает нагрузку на процессор клиента, но повышает нагрузку на процессор оператора, при правильных настройках снижает нагрузку на сеть, сохраняя плавность трансляции. На 32-битных системах Mirror Driver может просто не работать или даже при установке вызвать перезагрузку, синий экран, глухое зависание и подобные проблемы. Могут возникнут проблемы с отображением сложных графических приложений вроде средств 3D-моделирования и игр.

Захват экрана - этот режим используется когда Mirror Driver не установлен на клиенте или его использование отключено в настройках MRC. В этом режиме Agent делает почти то же самое, что и любое приложение для записи экрана (OBS, Bandicam) - программно получает изображение с экрана. Затем готовое изображение отправляется MRC, который просто отображает его в своём окне.

В контексте DameWare по сравнению с Mirror Driver это работает медленнее, повышает нагрузку процессор клиента. При смене первоэкранных событий вроде UAC | Winlogon | Экран безопасности | Рабочий стол, захват экрана перезапускается, изображение пропадает на несколько секунд. У Mirror Driver такого нет. Но зато более гибко управляется: можно выбрать частоту кадров, количество блоков, на которые делится экран, использовать адаптивный битрейт. Это будет работать даже если установка Mirror Driver невозможна. Да и сам Agent можно не устанавливать. Достаточно положить в любую папку и запустить от имени администратора - таким способом я и запустил Agent на Windows XP на скриншоте в начале, хотя установщик сообщает что Agent не поддерживается на этой системе.

О настройках

Настройки можно задавать только для объектов Saved Host List. Чтобы задавать настройки для объектов Remote Host List, Active Directory Computers и других списков, их придётся добавить в Saved Host List простым перетаскиванием.

Можно задать настройки для конкретного хоста.
В окне Remote Connect выбираем его в Saved Host List и вверху этого окна кнопка Settings.


Можно задать настройки для хостов по умолчанию. Они будут применяться к хостам, которые создаются в Saved Host List путём ввода адреса или кнопки New. После изменения настроек будет предложено применить их ко всем существующим хостам, к папке внутри Saved Host List, если вы создавали такие, или выбрать отдельные хосты.
В главном окне View > Default Host Properties


Настройки захвата экрана

Они применяются к захвату экрана если Mirror Driver не используется и полностью игнорируются если Mirror Driver используется.
Разумеется Port Number к захвату экрана не относится.

Настройки Mirror Driver
Они применяются к Mirror Driver если он используется и полностью игнорируются если не используется.

Попытка использования Mirror Driver
Именно попытка. Если параметр включён, но Mirror Driver окажется недоступен, всё ровно будет использоваться режим захвата экрана. При подключении к объектам Remote Host List всегда будет использоваться захват экрана.

Настройки Mirror Driver

Их всего 3. Все на одной, представленной выше вкладке.

Display Settings - глубина цветности виртуальной видеокарты. Это не влияет на физическую видеокарту и изображение на мониторе клиента. Меньше цветов - меньше данных передавать по сети, меньше нагрузки на процессор чтобы рендерить изображение, но и само изображение хуже. Я считаю оптимальным вариантом 16 Bit. Если уж совсем экономить можно и 8 Bit, это ещё быстрее, но смотреть на такое сложно.

Скрытый текст

Compression Level - уровень сжатия данных, входящих на виртуальную видеокарту, сжатие применяется на клиенте перед отправкой оператору. Этот параметр обязателен. Без него я сделал скриншот из самого начала статьи. В корпоративной сети такое явно неприемлемо. Чем больше сжатие тем больше задержка и нагрузка на процессоры клиента и оператора. На относительно современных процессорах на сжатии 9 я не замечаю ни нагрузку ни задержку.

Delay Between Screen Update - это время на которое нужно отсрочить возобновление трансляции после изменений на экране. Когда изображение статичное, трансляция останавливается. Когда происходят изменения - возобновляется. Если этот параметр задан, при изменениях на экране трансляция возобновляется не сразу а через указанное время. Эта функция для какой-то экстремальной экономии трафика. Стоит оставить 0.

Настройки захвата экрана

Вкладка Display Options

Здесь лишь глубина цветности. Изображение, полученное путём захвата обрабатывается силами процессора клиента - меняется глубина цветности, и только после этого отправляется оператору. Как выглядит низкая частота я уже показывал в абзаце про Mirror Driver. Оптимальным вариантом так же остаётся 16Bit. Использование любого варианта кроме Remote Default Display немного повышает задержку и нагрузку на процессор клиента, зато снижает нагрузку на сеть и повышает плавность трансляции.

Вкладка Remote Options

Не всё на ней относится к захвату экрана. На картинке выше я отметил что именно.

Compression Level - уровень сжатия изображения перед передачей. Речь про сжатие без потерь. Повышает задержку и нагрузку на процессоры клиента и оператора, но снижает нагрузку на сеть и повышает плавность трансляции. На относительно современных процессорах на сжатии 9 я не замечаю ни нагрузку ни задержку.

Scan Blocks (Scan Lines / Blocks) - количество одинаковых горизонтальных линий, на которые делится экран. Линии сверху вниз поочерёдно проверяются на наличие изменений после предыдущей проверки. Если внутри линии произошли изменения, актуальная версия этой линии отправляется оператору и заменяется в окне MRC. После чего эта же линия проверяется снова. Если она не изменилась - проверяется следующая линия. Перетаскивание окон, анимации, и тем более видео могут временно парализовать трансляцию, постоянно вызывая обновление одной и той же линии. Эта функция тоже смахивает на какую-то экстремальную экономию трафика. Я всегда выбираю 1 - то есть весь экран это одна большая линия.

Скрытый текст

Delay Between Scan Block Update - время, через которое нужно снова проверить изменённую линию. Если она не изменилась - проверяется следующая. Теоретическая частота кадров получается по формуле:
X = Scan Blocks (Scan Lines / Blocks)
Y = Delay Between Scan Block Update
FPS = Частота кадров
1000 / (Y * X) = FPS

Use Slow Link Optimization - оптимизация для медленного соединения. При медленном соединении немного улучшает ситуацию. При нормальном соединении почти не имеет смысла. Разве что немного снижает нагрузку на сеть. Что именно делает эта оптимизация я не смог понять. Wireshark не помог.

Use Adaptive Streaming - автоматически выбирает битрейт, количество полос, на которые делится экран, и интервал между их проверкой. Это значительно повышает плавность и уменьшает задержку. Повышает колебание нагрузки на сеть - то есть по сравнению с отсутствием данной опции нагрузка при динамичных сценах станет ещё больше, а при статичных - ещё меньше.

Итог

Вот собственно и всё. Держа в голове все эти параметры можно использовать DameWare более эффективно.

Нет плохих приложений, всеми можно научиться пользоваться. Порой это совсем не просто.

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


  1. Thomas_Hanniball
    03.12.2024 21:48

    Картинка с тян очень ламповая. Вызывает чувство ностальгии по ушедшей юности.


    1. IASIVAn Автор
      03.12.2024 21:48

      Соглашусь. Обои в сочетании с Windows XP - что-то такое в этом есть. DameWare и значок отсутствия интернета будто придают картине завершённость.


  1. TerAnYu
    03.12.2024 21:48

    Жаль, что за столько лет они не сделали работающий аналог прокси для подключения.
    Когда в организации можно только один порт через NAT пробросить для подключения ко всем устройствам или где-то в интернете прокси, к которому все устройства подключаются и уже MRC мог к любому из них подключаться.
    Даже обращение в техподдержку это не сподвигло к этому, хотя и отвечали, что идея хорошая :(


    1. IASIVAn Автор
      03.12.2024 21:48

      А как же DameWare Central Server? Может быть я не так тебя понял, но при использовании его, Agent постоянно обращается к серверу и с этого сервера компы с установленным Agent доступны если на них просто есть интернет. Хоть мобильный, хоть WI-FI в кафешке. В моей организации это используют.


      1. TerAnYu
        03.12.2024 21:48

        По крайней мере схема была такая:
        MRC - в офисе, Agent - в интернете (в другой стране и без VPN), вот из офиса уже невозможно было подключиться к такому агенту.

        В 2017 году, работа этого сервера была какая-то не такая и, честно говоря, я больше его не трогал.