Adaptersoft : Пакетное создание пользователей

27.05.14

Разработка - Инструментарий разработчика

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
СоздатьПользователейПакет.epf
.1229511331 14,42Kb
385
385 Скачать (1 SM) Купить за 1 850 руб.

Может брать список из Екселя. Поля подхватываются по наименованию, диапазон задавать не надо - сам найдет.

В AD пользователи создаются через провайдер LDAP (ADSI).

Если в 1С задавать аутентификацию ОС, то сначала запустите с галкой "Создать в терминале", а потом второй раз с галкой "создать в 1С". Потому что пакетом юзвери в AD создаются медленно и поэтому не сразу находятся.

При повторном запуске пользователи пересоздаются. И в AD и в 1С.

 


Обработка устарела, вернее выросла в конфигурацию ServiceDesk1C

 

 

 

 

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

12000 руб.

02.09.2020    169292    937    403    

905

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта Платформа 1С v8.3 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    12610    99    42    

101

Инструментарий разработчика Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

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

9360 руб.

17.05.2024    26537    90    48    

134

Пакетная печать Печатные формы Инструментарий разработчика Программист Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 руб.

06.10.2023    16829    41    15    

75

SALE! %

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

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

4800 3840 руб.

14.01.2013    190552    1150    0    

918

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

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

15000 руб.

10.11.2023    11396    40    27    

66

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 1С:ERP Управление предприятием 2 Платные (руб)

Разработка Конструктор автоматизированных рабочих мест "Конструктор АРМ" реализована в виде расширения и является универсальным инструментом для создания АРМ любой сложности в пользовательском режиме.

3600 руб.

27.12.2024    778    2    0    

4

Инструментарий разработчика Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    103927    244    100    

306
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. GSoft 2237 17.12.08 14:28 Сейчас в теме
эх.. такую бы на семерке
3. adapter 418 17.12.08 14:34 Сейчас в теме
(1) LDAP думаю можно и на 7.7. поюзать, Ексель тоже. А вот создать юзверей в конфигураторе не выйдет.

(2) это название группы в моем AD. Если у вас все в корне - оставьте пустым
4. Abadonna 3969 17.12.08 14:53 Сейчас в теме
(3) 7.7. поюзать, Ексель тоже. А вот создать юзверей в конфигураторе не выйдет.
В 7.7 юзвери в конфигураторе (вернее, в конфигурации) никогда и не создавались. А для тех, кто знает структуру users.usr, насоздавать юзверей - как два байта отослать ;)
2. Fuego 463 17.12.08 14:29 Сейчас в теме
RostovoblgazService - А это зачем? :)
5. Fuego 463 17.12.08 15:15 Сейчас в теме
Код
Процедура СоздатьПользователя(Имя, Аккаунт, НачальныйПароль)

   ADS_UF_NORMAL_ACCOUNT = 512; 

   Попытка
      DSE = ПолучитьCOMОбъект("LDAP://rootDSE");
      
       мПользователи = ПолучитьCOMОбъект("LDAP://CN=Users," +  DSE.Get("defaultNamingContext"));
                         
       мНовыйПользователь = мПользователи.Create("user", "CN=" + Имя); 
         
       мНовыйПользователь.Put("sAMAccountName", Аккаунт);

       мНовыйПользователь.SetInfo(); 
 
       мНовыйПользователь.SetPassword(НачальныйПароль);
 
       мНовыйПользователь.Put("pwdLastSet", 0);

      мНовыйПользователь.Put("userAccountControl", ADS_UF_NORMAL_ACCOUNT);
      
       мНовыйПользователь.SetInfo();
   Исключение
      Сообщить(ОписаниеОшибки());
   КонецПопытки;
КонецПроцедуры
Показать полностью
6. Fuego 463 17.12.08 15:48 Сейчас в теме
И в догонку ещё одну процедурку:

Код
Процедура СоздатьПользователя_в_1С_с_АутентификациейОС(ИмяУчетнойЗаписи, Аккаунт)
   Пользователь = ПользователиИнформационнойБазы.НайтиПоИмени(ИмяУчетнойЗаписи);
   Если Пользователь <> Неопределено Тогда
      Если Пользователь.АутентификацияОС И Пользователь.ПользовательОС = Аккаунт Тогда
         Сообщить("Пользователь «"+ИмяУчетнойЗаписи+"» уже существует и имеет аутентификацию ОС");
         Возврат;
      КонецЕсли;
   Иначе
      Пользователь = ПользователиИнформационнойБазы.СоздатьПользователя();
   КонецЕсли;
   Пользователь.АутентификацияОС = Истина;
   Пользователь.ПользовательОС = Аккаунт;
   Пользователь.Имя = ИмяУчетнойЗаписи;
   Пользователь.ПолноеИмя = ИмяУчетнойЗаписи;
   Попытка
       Пользователь.Записать();
   Исключение
      Сообщить(ОписаниеОшибки());
   КонецПопытки;
КонецПроцедуры
Показать полностью
7. sound 536 18.12.08 07:37 Сейчас в теме
А чтоб самому не париться с users.usr и "байты не отсылать", можно как вариант
для создания юзверей в 7-ке UsersDef.dll поюзать, так еще прошу будет
8. sound 536 18.12.08 07:52 Сейчас в теме
Извиняюсь, хотел написать "так еще проще будет"

ЗЫ: еще б уж тогда до кучи добавить чтоб у этих же юзеров заодно и почта на exchange прописывалась, чтоб админы ваще не работали :)
9. kgw@list.ru 18.12.08 09:23 Сейчас в теме
Подскажите, а если нет домена тогда как?
10. adapter 418 18.12.08 12:14 Сейчас в теме
через LDAP можно и локальных пользователей создавать. В мануале по ADSI описано. Выложить?
11. Zlodey 47 18.12.08 13:11 Сейчас в теме
В Висте 64 бита не работает, ругается:
{Форма.Форма(218)}: Ошибка при вызове метода контекста (ПолучитьCOMОбъект): Ошибка получения объекта COM: Указанный домен не существует или к нему невозможно подключиться.
objRootLDAP = ПолучитьCOMОбъект("LDAP://rootDSE");

//домен для авторизации ОС
objRootLDAP = ПолучитьCOMОбъект("LDAP://rootDSE"); ---- вот тут
strDC = objRootLDAP.Get("defaultNamingContext"); //получаем имя домена формата LDAP
Домен = СтрЗаменить(strDC, ",DC=ru", "\");
Домен = СтрЗаменить(Домен, "DC=", "\\");
12. adapter 418 18.12.08 14:48 Сейчас в теме
видимо дело не в Висте, а в том что у вас домена нет
13. BaronDevil 27.01.09 10:56 Сейчас в теме
Выложите пожалуйста обработку с учетом того что нет домена. Большое спасибо)
14. Jacki 12.01.10 17:00 Сейчас в теме
а можно поподробнее объяснить следующий момент:
// для работы в AD от имени другого пользователя, не текущего
//Set objContainer = objRootLDAP.OpenDSObject("LDAP://" + strOU + strDC, "admin", "пароль", 0)

не понял как это использовать :oops:
если просто вставлять в код
strOU = "Admins";
strDC = "DC=test,DC=lan";
objRootLDAP = ПолучитьCOMОбъект("LDAP://" + strDC);
Set objContainer = objRootLDAP.OpenDSObject("LDAP://" + strOU + strDC, "admin", "123", 0);

то выдаётся сообщение об ошибке "Неопознанный оператор SET <<?>>objContainer"
если без SET:
strOU = "Admins";
strDC = "DC=test,DC=lan";
objRootLDAP = ПолучитьCOMОбъект("LDAP://" + strDC);
objContainer = objRootLDAP.OpenDSObject("LDAP://" + strOU + strDC, "admin", "123", 0);

то ругается "Метод объекта не обнаружен (OpenDSObject)"
Заранее спасибо!
15. adapter 418 12.01.10 23:34 Сейчас в теме
я конечно структуры ваших доменов не знаю, но думаю что вы напутали в этой строчке:
strDC = "DC=test,DC=lan";

посмотрите как вам возвращается ваш домен по умолчанию в
objRootLDAP = ПолучитьCOMОбъект("LDAP://rootDSE")
16. Jacki 13.01.10 00:41 Сейчас в теме
objRootLDAP = ПолучитьCOMОбъект("LDAP://rootDSE");
strDC = objRootLDAP.Get("defaultNamingContext");

strDC = "DC=test,DC=lan"
сам домен имеет вид test.lan
17. Jacki 15.01.10 11:58 Сейчас в теме
разобрался, чтобы получить доступ от имени другого пользователя
SuperUser = "admin";
SuperUserPWD = "123";
strOU = "OU=Admins,";
objRootLDAP = ПолучитьCOMОбъект("LDAP://rootDSE"); 
strDC = objRootLDAP.Get("defaultNamingContext");
DS = ПолучитьCOMОбъект("LDAP:");		
objContainer = DS.OpenDSObject("LDAP://" + strOU + strDC, SuperUser, SuperUserPwd, 0);
Показать

ещё раз спасибо за обработку и помощь! ;)
18. adapter 418 04.08.10 11:38 Сейчас в теме
обработка устарела. с конца 2008 года (когда я ее выкладывал) уже много воды утекло. переписал прилично, так что список изменений уже и весь не воспроизведу. Теперь обработка на 8.2 и в составе конфигурации ServiceDesk1С. На демке этот модуль кажется открыт - смотрите, колупайте кому надо.

На вскидку:
- может работать без домена (кто то просил)
- определяет права и группы из АД. Можно по умолчанию настроить для каждой базы или потом докинуть прав существующим пользователям AD
- расширенный поиск по АД - (по логину, части ФИО и пр.)
- все переписано под библиотеку универсальных запросов к AD (в составе конфы)
- может интегрироваться с любым сервисом, в том числе и не 1С. Процесс автоматизирован

Ну и впринципе сама обработка практических задач решает мало. Надо базу, чтоб хранила настройки, созданные учетки, управляла ими и пр. Ну собсно потому и ServiceDesk.

А обработка - просто пример кода, "кирпичик"
19. Jacki 03.09.10 14:15 Сейчас в теме
(18) При попытке создать пользователя спотыкаюсь на установке пароля для пользователя
{Обработка.СозданиеПользователей.Форма.Форма.Форма(417)}: Ошибка при вызове метода контекста (SetPassword)
objUser.SetPassword(strPWD);
по причине:
Произошла исключительная ситуация (0x80072030)

учётка админа под которой создаётся учётная запись все необходимые права имеет, без пароля всё остальное создаётся на ура
пароль соответствует политике безопасности
objUser.userAccountControl = 65536;
objUser.pwdLastSet = 0;
strPWD = "7EdfmR!";
objUser.SetPassword(strPWD);

как думаете - в чём могут быть грабли?

P.S.: на 8.1 то же самое возвращает такую ошибку
{Форма.Форма(392)}: Ошибка при вызове метода контекста (SetPassword): Произошла исключительная ситуация (Active Directory): Один или более входных параметров неправильны

objUser.SetPassword(strPWD);
по причине:
Произошла исключительная ситуация (Active Directory): Один или более входных параметров неправильны
20. Jacki 03.09.10 17:04 Сейчас в теме
После многочисленных прогонов открылся интересный нюанс - с вероятностью 1/15 - 1/20 пароль таки задаётся...
Определённо проблемы на контроллере домена.
21. Massimo 1 22.12.11 12:17 Сейчас в теме
Спасибо за обработку, пригадилась
22. Гость 20.02.12 10:25
Спасибо за обработку, пригодилась
Оставьте свое сообщение