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

 

 

 

 

См. также

SALE! 15%

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

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    159906    876    399    

862

SALE! 15%

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

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

8400 7140 руб.

20.08.2024    7968    59    24    

70

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

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

9360 руб.

17.05.2024    23570    68    45    

117

SALE! 15%

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

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

10000 8500 руб.

10.11.2023    10499    36    25    

61

SALE! 15%

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

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

22200 19980 руб.

06.10.2023    15471    35    7    

70

SALE! 35%

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

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

4800 3120 руб.

14.01.2013    188126    1140    0    

912

SALE! 15%

Инструментарий разработчика Программист 8.3.14 1С:Конвертация данных Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

15000 12750 руб.

07.10.2021    17341    6    32    

42

Инструментарий разработчика Программист Платные (руб)

Менеджер конфигураций 1С — альтернативный стартер информационных баз 1С:Предприятие.

1800 руб.

21.02.2023    7738    8    35    

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

(2) это название группы в моем AD. Если у вас все в корне - оставьте пустым
4. Abadonna 3968 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
Спасибо за обработку, пригодилась
Оставьте свое сообщение