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

Опубликовал Анянов Михаил (insurgut) в раздел Программирование - Практика программирования

Есть база данных (управляемые формы), общая для сотрудников 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.2016

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

Скачать файлы

Наименование Файл Версия Размер
Запуск сеанса RDP
.epf 7,41Kb
02.02.16
49
.epf 1.2 7,41Kb 49 Скачать

См. также

Комментарии
1. VVV Vit (V_V_V) 29.01.16 15:12 Сейчас в теме
Пароль на скрине не закрашен...
kuzyara; TreeDogNight; +2 Ответить 1
2. Анянов Михаил (insurgut) 158 29.01.16 17:02 Сейчас в теме
3. Андрей К. (andrei.k) 03.02.16 11:49 Сейчас в теме
Очень удобная и классная обработина. Прикрутить ее к контроллеру домена и будет вылитая бесплатная mRemoteNG. Было бы вообще здорово из списка активных пользователей подключаться к сеансу пользователя, чтоб его не перекрывать.
4. Анянов Михаил (insurgut) 158 03.02.16 12:02 Сейчас в теме
(3) andrei.k, насколько я понимаю, RDP не позволяет этого делать - стандартно на это только Удаленный помощник способен. Поправьте если ошибаюсь, и напишите какие параметры при подключении необходимо при этом задать. Если же речь идет о терминальном сервере - то там вроде есть свои оснастки для управления сеансами.
5. Максим *** (premier) 131 03.02.16 12:37 Сейчас в теме
(0) А у меня обработка при попытке подключения вылетает с ошибкой:
{Форма.Форма.Форма(14)}: Ошибка при получении значения атрибута контекста (contentDocument)
RDP = ЭлементВК.contentDocument;
по причине:
Произошла исключительная ситуация (htmlfile): Отказано в доступе.
(см. скрин).

REG файл сгенерировал, импортировал в реестр. Платформа 1С - 8.3.6, ОС - Windows 7 Профессиональная,
Internet Explorer 11.
Прикрепленные файлы:
6. Анянов Михаил (insurgut) 158 03.02.16 12:43 Сейчас в теме
7. Максим *** (premier) 131 03.02.16 12:45 Сейчас в теме
8. Максим *** (premier) 131 03.02.16 12:52 Сейчас в теме
(0) И ещё не понял как заполнять поля Сервер и Домен. В стандартном RDP я указываю только IP адрес и порт удалённого компьютера,
9. Анянов Михаил (insurgut) 158 03.02.16 12:59 Сейчас в теме
(8) premier, в качестве сервера можно использовать как имя компьютера (если подключение в локальной сети), так и IP-адрес, если рабочая станция находится за пределами. Домен указывается только в том случае, если компьютер состоит в нем, если это обычная рабочая группа, то домен либо не указывается, либо совпадает с именем компьютера.

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

10. Максим *** (premier) 131 03.02.16 13:14 Сейчас в теме
(9) insurgut, вот скрины. Все настройки, вроде бы как и у Вас на скрине.
RDP ActiveX рабочий. Проверял на управляемых формах с помощью Контейнера ActiveX объектов для управлямых форм.
Прикрепленные файлы:
11. Анянов Михаил (insurgut) 158 03.02.16 13:16 Сейчас в теме
(10) premier, в списке надежных сайтов about:blank присутствует?
12. Анянов Михаил (insurgut) 158 03.02.16 13:20 Сейчас в теме
(10) premier, так, ситуацию воспроизвел, постараюсь сегодня разобраться.
13. Максим *** (premier) 131 03.02.16 13:28 Сейчас в теме
(11) insurgut, да в списке надежных сайтов about:blank присутствует.
14. Анянов Михаил (insurgut) 158 03.02.16 17:48 Сейчас в теме
(13) premier, поторопился я чуть... не удалось воспроизвести :) Вернее проблему нашел на одной машине, но совершенно другого рода - на ней RDP ни на обычных ни на управляемых формах не работает. На другой же машине - сгенерировал REG-файл. Закрыл 1С. Импортировал REG-файл. Открыл 1С, запустил обработку - все запускается. Но если 1С не перезапускать после импорта REG-файла действительно выходит ошибка отказа в доступе.

P.S. Только что проверил на Win2008R2. С настройками по-умолчанию она на все сайты ругается... После импорта и перезапуска 1С все заработало сразу.
15. Талыч Sha (talych) 16 04.02.16 09:42 Сейчас в теме
Нужная вещь! Я в свое время искал такой инструмент. Не нашел и написал свой на обычном Excel