Роботы, плагины и скрипты к чату MyChat. Разработка альтернативных клиентов и различных утилит. Технические вопросы по программированию, замечания и предложения по развитию API
Аватара пользователя
Энгель Виталий
Всем привет!

Ручки оч сильно чесались хоть как-то решить сию проблему, да простит меня Алексей :)

В общем, по результатам общения с разработчиками (вот здесь), вариант решения задачи с автоматизированным поддержанием инфы о пользователях оказался простым - подождать и всё будет.

А я-то уже был на низком старте, сбавлять обороты не хотелось и, честно говоря, была шальная мысль решить вопрос хоть и временно, но весьма кардинально - немного расширить функционал 3го пункта, предварительно стопая сервис МС, производя обновление инфы напрямую в базу, после чего заводить сервис снова. Естественно, ночью, когда никто из пользователей ничего не узнает :) попробовал, всё ок, но стало жалко...как-то неправильно это, хотя и свободы действий сей вариант предоставлял на порядок больше.

Пошел иным путём, который и предлагаю сообществу для ознакомления, вдруг кому и пригодится в чем-то аналогичном. Суть его заключается в следующем: если из скрипта MSL (того, что запускается на самом сервере МС) нельзя подключиться к Active Directory и взять оттуда необходимые данные, будем брать оттуда, откуда можем брать - из CSV-файла, в который предварительно выгружаем данные. В моем случае источником исходных данных служила 1С:ЗУП, но аналогичным образом можно формировать файл и из AD любым удобным для Вас инструментом - от VBScript с OLE-подключением к AD до PowerShell с его возможностями (тотже WMI для примера). В общем, дел на полчасика вместе с погуглить. Этот CSV-файлик сформировали регламентным заданием/планировщиком, выполнили скрипт (например, поместив его в ежедневные). Профит!

Собственно, скрипт для импорта во вложении. Для сличения пользователей между МС и AD используется ФИО (изменить на что-то иное проблем особых не составит). Скрипт заточен под следующий порядок полей CSV-файле:
Подразделение;ФИО;День Рождения;Должность;Личный телефон;Рабочий мобильный телефон;Внутренний Телефон;EMail

На моем сервере скрипт выполняется примерно 7.5секунд, что меня вполне устраивает :)

* Костыль? Возможно. Но он работает.
* Криво написан? Наверняка. Но несколько сотен запусков отрабатывает без проблем.
* Некомментирован? Да...но подпилить под свои нужды будет несложно
* Сырой? Да! И это не финальная версия, для меня по крайней мере. Есть в планах расширить список полей и присылать на почту сводный отчет по отработке импорта - какие ошибки были в процессе, сколько заняло времени и т.п.
Вложения
(3.72 КБ) Скачиваний: 121
Аватара пользователя
Энгель Виталий
[updated] 16.11.2019
с утра на свежую голову заметил, что поле "Custom_1" не отображается в инфе о пользователе.
Изменил это поле на неиспользуемое у нас "About" и заменил им предустановленное в шаблоне настроек поле подразделения, которое стандартной функцией mSetUserAttribute с параметром WORK_DIVDEPT ну никак не хотело устанавливать пользователю подразделение. Да, собственно, и не должно было, т.к. его в справке о функции и нет вовсе. Но надежда теплилась, что составители документации о нем просто забыли :)
Вложения
(3.42 КБ) Скачиваний: 127
Аватара пользователя
tfosn
как по мне то надо переместить в раздел скрипты + код не файлом прикрепить а текстом в тегах кода
Аватара пользователя
Алексей Пикуров
Перенёс в тему в раздел скриптов.