Подключение по RDP из 1С с автоматическим вводом пароля

25.03.24

Администрирование - Удаленное управление

Как дать доступ сотруднику к удаленному рабочему столу (RDP), но при этом не давать пароль доступа?

Скачать исходный код

Наименование Файл Версия Размер
Подключение по RDP из 1С с автоматическим вводом пароля. Расширение и Внешняя компонента.
.zip 2,92Mb
5
.zip 2,92Mb 5 Скачать

На первый взгляд задача не очень сложная. Запуск из 1С другого приложения возможен, надо просто передать в параметрах запуска путь к файлу с настроенным подключением. Создать файл подключения *.rdp, добавить в него сохраненный пароль и запустить. Но на деле начинаются появляться нюансы.

Немного погуглив нашел несколько статей, из которых стало понятно, что пароль шифруется с помощью функции CryptProtectData из библиотеки crypt32.dll и записывается в соответствующий параметр файла *.rdp. Нашлись и инструменты для выполнения этой задачи.

Примерный код запуска из 1С выглядит так:

ЗапуститьПриложение(СтрокаКоманды, [ТекущийКаталог], [ДождатьсяЗавершения], [КодВозврата])

Ок. Вроде работает.

Оказалось есть проблема при подключении к серверам где политиками безопасности запрещено подключение с сохраненным паролем. Если запустить приложение mstsc.exe с параметром запуска указывающим на файл *.rdp с сохраненным паролем, то все равно появится запрос на ввод пароля.

Что делать? (Вопрос риторический).

Внешнюю компоненту. Которая сделает все за вас :)

И так, ТЗ. 

Создать внешнюю компоненту 1С, для выполнения следующих задач: 

1. Запуск подключения по RDP.

2. Не предоставлять пользователю пароль подключения.

3. Автоматический ввод пароля при появлении окна запроса.

4. Подавление дополнительных окон запросов. (выяснилось в процессе).

5. Выполнение кодирования/декодирования строки с паролем для сохранения в базе данных.

Задача есть, приступаем к выполнению ...

 

(some time passed)

ВК.

Имеет следующие методы:

ПодключитьУРС(usr, psw, srv, gwrdp, dmn, plg) (ConnectRD(usr, psw, srv, gwrdp, dmn, plg)) - Запуск RDP подключения.

Параметры запуска:

usr - Имя пользователя. Обязательный параметр.

psw - Пароль (зашифрованный методом Кодировать ). Обязательный параметр.

srv - адрес сервера. Обязательный параметр.

gwrdp - адрес шлюза RDP.

dmn - Домен пользователя.

plg - набор коллекции (функция RD Connection Broker Load Balancing, которая позволяет при подключении пользователя к ферме перенаправить его на наименее загруженный сервер фермы. Строка в формате: "tsv://MS Terminal Services Plugin.1.Development". Параметр в файле: loadbalanceinfo:s:)

 

Кодировать (Encode) - Шифрование строки с паролем. Для сохранения в 1С.

 

Декодировать (Decode) - Обратный процесс шифрования. В работе не используется. Но можно восстановить зашифрованный пароль

ПолучитьОшибку(GetLastError) - Получение номера и описания последней возникшей ошибки.

 

Приступаем к реализации в 1С.

Добавим универсальности в наш "проект". Создадим расширение конфигурации, в котором реализуем весь функционал.

На выходе получили расширение со следующими объектами

Общий макет - RDPClient_Макет, в который загрузили нашу внешнюю компоненту.

Справочник - RDPClient_Клиенты, в нем будем хранить настройки подключений. Справочник привязали к справочнику контрагентов.

 

 

Тут надо бы внести некоторую ясность. Пароль не сохраняется в безе в открытом виде. А вместо пароля сохраняется его Шифр, подготовленный компонентой. При подключении в компоненту передается Шифр. Таким образом пользователь не видит реального пароля.

 

И сама обработка подключения - RDPClient_Connect.

 

 

Теперь немного о процессе подключения, который был реализован в компоненте.

Запуская процесс подключения, компонента подготавливает RDP файл во временной папке и запускает процесс MSTSC.EXE с параметром указывающим на путь к файлу и удаляет файл после запуска. Если сервер принимает подключения с сохраненным паролем, то процесс без запросов продолжается. Если же сервер попросит ввести пароль, то компонента сама введет его в окно и продолжит запуск соединения. 

 

Вот, пожалуй, и все. За предоставленное расширение прошу строго не судить, делалось только для примера использования.

Тестировалось на ERP и УНФ. При установке расширения, возможно, потребуется указать соответствие справочника Контрагенты. Думаю, заработает и в других конфигурациях, где есть справочник Контрагенты.

Проверено на следующих конфигурациях и релизах:

  • 1С:ERP Управление предприятием 2, релизы 2.5.11.56

RDP Расширение конфигурации Внешняя компонента

См. также

Менеджер авторизации пользователей для 1С: ITILIUM

Информационная безопасность Роли и права Пароли Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Обработка "Менеджер авторизации пользователей" разработана для управления авторизацией пользователей в информационной базе на платформе 1С: ITILIUM. Этот инструмент предоставляет широкий набор функций, обеспечивающих безопасность доступа к данным и управление правами пользователей.

5 стартмани

17.04.2024    309    0    flappy27    0    

2

Диспетчер служб удаленных рабочих столов из 1С для Windows 2019

Удаленное управление Платформа 1С v8.3 Управляемые формы 1С:Бухгалтерия 3.0 Россия Абонемент ($m)

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

1 стартмани

22.12.2023    4145    18    Струнин    4    

22

Сохранение учетных данных от Webkassa, Розница для Казахстана, ред 2.3

Пароли Платформа 1С v8.3 1С:Розница 2 Розничная и сетевая торговля (FMCG) Казахстан Абонемент ($m)

Расширение позволяет сохранить данные о логине и пароле для сервиса Webkassa.kz и при каждом входе в РМК не вводить эти данные, что позволяет сократить время при входе в РМК для кассиров.

1 стартмани

12.12.2023    348    1    anuar_medeup    0    

0

Теневое подключение к RDP сессии пользователя на Windows Server 2022

Удаленное управление Россия Абонемент ($m)

Маленькая программка для реализации подключения к сессиям пользователя на сервере.

2 стартмани

05.10.2023    1774    9    AActor    1    

7

Хранение логов Ammy Admin

Удаленное управление Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Внешняя обработка считывает историю сеансов Ammyy Admin и хранит в базе 1С. Получает отчет за любой период с группировками по рабочим местам, организациям и операторам.

4 стартмани

03.10.2023    668    0    Uran    0    

2

Организация удаленного доступа RDP на сервер без выделенного IP адреса

Удаленное управление Абонемент ($m)

Настройка RDP подключения на сервер без выделенного IP адреса через сервис NGROK.

1 стартмани

19.09.2023    4357    AlexVogel    10    

11

Сохранение учетных данных для WebKassa для Казахстана

Пароли Платформа 1С v8.3 Конфигурации 1cv8 Казахстан Абонемент ($m)

Расширение для запоминания в базе логина пароля для авторизации на сервисе WebKassa.

1 стартмани

28.08.2023    637    2    BadMadJohn    0    

2

Массовая генерация и замена паролей пользователей

Пароли Платформа 1С v8.3 Конфигурации 1cv8 1С:Бухгалтерия 3.0 Абонемент ($m)

ДОБАВЛЕНА ГЕНЕРАЦИЯ ПАРОЛЯ! Запускаем обработку, смотрим на список пользователей и делаем свое дело, выделяем нужных или всех сразу и назначаем пароль. Особенно помогает, когда ну очень большая организация. ДОБАВЛЕНА ГЕНЕРАЦИЯ ПАРОЛЯ!

1 стартмани

28.08.2023    757    2    Maxiko    3    

4
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. webester 26 27.03.24 09:44 Сейчас в теме
Автоматический ввод пароля при появлении окна запроса.

В этот момент первая мысль должна быть: autoit
Оставьте свое сообщение