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

25.03.24

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

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

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

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

На первый взгляд задача не очень сложная. Запуск из 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С

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

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

1 стартмани

15.05.2024    433    2    Лев    1    

1

Перенос пользователей ИБ со значениями разделителей через файл

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

Обработка предназначена для переноса пользователей между разными базами 1С. Позволяет выгрузить выбранных (или всех) пользователей базы-источника со всеми настройками, включая разделение данных, в файл. И с помощью этой же обработки загрузить выгруженных пользователей из файла в базу-приёмник. Может быть полезна тем, кто хочет перенести пользователей между базами, у которых включено разделение данных.

1 стартмани

02.05.2024    407    3    METAL    2    

4

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

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

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

5 стартмани

17.04.2024    404    1    flappy27    0    

3

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

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

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

1 стартмани

22.12.2023    4252    18    Струнин    4    

24

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

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

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

1 стартмани

12.12.2023    414    2    anuar_medeup    0    

0

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

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

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

2 стартмани

05.10.2023    1952    10    AActor    1    

7

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

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

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

4 стартмани

03.10.2023    719    0    Uran    0    

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

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