gifts2017

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

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

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

Само подключение к удаленному рабочему столу в качестве параметров не может принимать логин и пароль - их необходимо вводить вручную. Единственный найденный на просторах инфостарта вариант (http://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
45
.epf 1.2 7,41Kb 45 Скачать

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение

Комментарии

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

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

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

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

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