Запуск сеанса RDP с заданным именем пользователя и паролем (управляемые формы)

Есть база данных (управляемые формы), общая для сотрудников IT-отдела, в которой ведется учет парка компьютерной техники на предприятии. Встала задача подключения по RDP прямо из окна с данными о компьютере пользователя.

Само подключение к удаленному рабочему столу в качестве параметров не может принимать логин и пароль — их необходимо вводить вручную. Единственный найденный на просторах инфостарта вариант (//infostart.ru/public/193332/) не подходил по одной простой причине — там обычные формы, а на управляемых формах нет возможности добавления компонента ActiveX. Уточню — нет документированной фирмой 1С возможности.

Решение было найдено — запуск ActiveX через поле HTML документа, размещенного на управляемой форме. Но если с такими компонентами, как WMP или PDF все ровно (они подписаны как безопасные), то с компонентом Microsoft RDP пришлось повозиться. Вся проблема заключается в настройках последних версий IE, в которых запуск неподписанных компонентов ActiveX по умолчанию запрещен, а если разрешить этот запуск — то при каждом запуске IE будет кричать об этом и настойчиво предлагать сбросить настройки на безопасные.

Решение проблемы:

  1. Изменить уровень безопасности для зоны Надежные сайты на Особый (заданный вручную);
  2. Снять галочку Для всех сайтов этой зоны требуется проверка серверов (https:) в списке безопасных сайтов;
  3. Добавить about:blank (именно он выступает в роли сайта при использовании ActiveX компонентов в теле HTML-документа на управляемой форме);
  4. Включить параметр Использование элементов управления ActiveX, не помеченных как безопасные для использования.

Собственно, все это можно доверить REG-файлу, который можно сгенерировать прямо из формы размещенной здесь обработки!

Надеюсь, пример обработки сэкономит вам кучу времени и нервов при решении аналогичной задачи.

P.S. Работоспособность данного метода отлаживалась на Майкрософт Windows 8.1 Профессиональная, Internet Explorer 11, 1С:Предприятие 8.3 (8.3.6.2152)


Обновление от 02.02.2024

1. Исправлена генерация файла реестра (вместо ANSI файл по-умолчанию сохранялся в формате UTF-8, не допустимом для файла импорта реестра), теперь должно экспортироваться без ошибок.

15 Comments

  1. V_V_V

    Пароль на скрине не закрашен…

    Reply
  2. insurgut

    (1) V_V_V, я его уже сменил 🙂

    Reply
  3. andrei.k

    Очень удобная и классная обработина. Прикрутить ее к контроллеру домена и будет вылитая бесплатная mRemoteNG. Было бы вообще здорово из списка активных пользователей подключаться к сеансу пользователя, чтоб его не перекрывать.

    Reply
  4. insurgut

    (3) andrei.k, насколько я понимаю, RDP не позволяет этого делать — стандартно на это только Удаленный помощник способен. Поправьте если ошибаюсь, и напишите какие параметры при подключении необходимо при этом задать. Если же речь идет о терминальном сервере — то там вроде есть свои оснастки для управления сеансами.

    Reply
  5. premierex

    (0) А у меня обработка при попытке подключения вылетает с ошибкой:

    {Форма.Форма.Форма(14)}: Ошибка при получении значения атрибута контекста (contentDocument)

    RDP = ЭлементВК.contentDocument;

    по причине:

    Произошла исключительная ситуация (htmlfile): Отказано в доступе.

    (см. скрин).

    REG файл сгенерировал, импортировал в реестр. Платформа 1С — 8.3.6, ОС — Windows 7 Профессиональная,

    Internet Explorer 11.

    Reply
  6. insurgut

    (5) premier, IE какой версии?

    Reply
  7. premierex

    (6) IE 11.

    Reply
  8. premierex

    (0) И ещё не понял как заполнять поля Сервер и Домен. В стандартном RDP я указываю только IP адрес и порт удалённого компьютера,

    Reply
  9. insurgut

    (8) premier, в качестве сервера можно использовать как имя компьютера (если подключение в локальной сети), так и IP-адрес, если рабочая станция находится за пределами. Домен указывается только в том случае, если компьютер состоит в нем, если это обычная рабочая группа, то домен либо не указывается, либо совпадает с именем компьютера.

    Можете проверить (сделать скриншоты) вот этих настроек браузера:



    Reply
  10. premierex

    (9) вот скрины. Все настройки, вроде бы как и у Вас на скрине.

    RDP ActiveX рабочий. Проверял на управляемых формах с помощью Контейнера ActiveX объектов для управлямых форм.

    Reply
  11. insurgut

    (10) premier, в списке надежных сайтов about:blank присутствует?

    Reply
  12. insurgut

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

    Reply
  13. premierex

    (11) да в списке надежных сайтов about:blank присутствует.

    Reply
  14. insurgut

    (13) premier, поторопился я чуть… не удалось воспроизвести 🙂 Вернее проблему нашел на одной машине, но совершенно другого рода — на ней RDP ни на обычных ни на управляемых формах не работает. На другой же машине — сгенерировал REG-файл. Закрыл 1С. Импортировал REG-файл. Открыл 1С, запустил обработку — все запускается. Но если 1С не перезапускать после импорта REG-файла действительно выходит ошибка отказа в доступе.

    P.S. Только что проверил на Win2008R2. С настройками по-умолчанию она на все сайты ругается… После импорта и перезапуска 1С все заработало сразу.

    Reply
  15. talych

    Нужная вещь! Я в свое время искал такой инструмент. Не нашел и написал свой на обычном Excel

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *