|   |   | 
| 
 | Создание учетной записи в AD средствами 1с | ☑ | ||
|---|---|---|---|---|
| 0
    
        Alex174 21.11.22✎ 13:44 | 
        Всем привет! Есть задача, нужно с помощью 1с, при нажатии кнопки выполнить вот такой сценарий: 
 c:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe -command "c:\Users\sh\Desktop\test.ps1" '8888' 'ООО' 'Отдел технологий' 'Администратор' 'Иванов Иван Иванович' 'Иванов' 'Иван' 'И' 'IvanovII' Последние параметры соберутся из документа\формы, а вот как это инициализировать правильно не подскажете? ЗапуститьПриложение()? Или создать программно bat файл, прописать туда сценарий, сохранить и запустить его? | |||
| 1
    
        Garykom гуру 21.11.22✎ 13:45 | 
        Это будет на клиенте или сервере 1С запускаться?
 А 1С от какого юзера с какими правами работает? | |||
| 2
    
        Garykom гуру 21.11.22✎ 13:45 | 
        КомандаСистемы или ЗапуститьПриложение     | |||
| 3
    
        Alex174 21.11.22✎ 13:46 | 
        (1) Запускаться будет с клиентской машины, а выполняться на сервере. Какие именно права нужны? Это будет отдел кадров, при создании документа ПриемНаРаботу     | |||
| 4
    
        Garykom гуру 21.11.22✎ 13:47 | 
        (3) У вас отдел кадров имеет права админа домена?
 Сервер 1С запускается от учетки с правами админа домена? | |||
| 5
    
        Garykom гуру 21.11.22✎ 13:48 | 
        Имхо правильно сделать http-сервис (почитай про Дженкинс) и просто дергать его через HTTPСоединение из 1С     | |||
| 6
    
        Alex174 21.11.22✎ 13:49 | 
        (4) Вот про это я не подумал..     | |||
| 7
    
        Ivan_495 naïve 21.11.22✎ 13:56 | 
        сначала админ должен создать учетку в ad, а потом данные о ней отправить в 1с .     | |||
| 8
    
        Garykom гуру 21.11.22✎ 14:05 | 
        (6) Все это можно сделать
 Но на практике куча сложностей Например кто это будет поддерживать? | |||
| 9
    
        RomaH naïve 21.11.22✎ 14:11 | 
        (4) а чем плохо сервер 1с как админ домена?     | |||
| 10
    
        Alex174 21.11.22✎ 14:14 | 
        В общем суть просто сэмулировать на серваке выполнение команды из (1). КомандаСистемы работает на клиенте, ЗапуститьПриложение в синтакс-помощнике пишет "При запуске "1С:Предприятия" в пакетном режиме, а также при вызове метода на сервере будет сгенерировано исключение.", т.е на сервере тоже не взлетит. Как быть?     | |||
| 11
    
        RomaH naïve 21.11.22✎ 14:14 | 
        ЗаписьАДО = Новый COMОбъект("ADODB.recordset");
 СоединениеАДО = Новый COMОбъект("ADODB.Connection"); СоединениеАДО.Provider = "ADsDSOObject"; //Подключение к Active Directory СоединениеАДО.Open("LDAP://"+ОтделНовогоСотрудника+",OU=ДКБ,DC=dkb,DC=yar,DC=ru","up","***",0);//"USR1CV8","USR1CV8", 0); //АдресDLAP получает адрес AD'шки. Вторая переменная переходит в необходимое подразделение в АУП. АдресDLAP = "LDAP://dkb.yar.ru"; //Получение необходимого подразделения АдресDLAP = "LDAP://"+ОтделНовогоСотрудника+",OU=ДКБ,DC=dkb,DC=yar,DC=ru"; Группа = ПолучитьCOMОбъект(АдресDLAP); // Создание пользовотеля и заполнение атрибутов. НовыйПользователь = Группа.Create("User" ,"CN="+ФИО); //544 означает, что пользователь был создан без пароля, который необходимо установить при первом входе НовыйПользователь.userAccountControl = 544; НовыйПользователь.sn = Фамилия; НовыйПользователь.givenName = Имя; НовыйПользователь.initials = Инициалы; НовыйПользователь.displayName = ФИО; НовыйПользователь.sAMAccountName = ЛогинПоФИО; НовыйПользователь.userPrincipalName = ЛогинПоФИО + "@dkb.yar.ru"; НовыйПользователь.mailNickname = ЛогинПоФИО; //НовыйПользователь.mail = EMail; //НовыйПользователь.mobile = МобильныйТелефон; // НовыйПользователь.telephoneNumber = ОсновнойТелефон; НовыйПользователь.title = Сотрудник.ТекущаяДолжностьОрганизации.Наименование; НовыйПользователь.company = Сотрудник.Организация.Наименование; НовыйПользователь.department = Сотрудник.ТекущееПодразделениеОрганизации.Наименование; //НовыйПользователь.physicalDeliveryOfficeName = Комната; //Команда SetInfo() устанавливает новые атрибуты созданного сотрудника НовыйПользователь.SetInfo(); | |||
| 12
    
        Gary417 21.11.22✎ 14:21 | 
        (9) плохо что это нарушение ИБ (хотя ларьку на это плевать конечно)
 по правильному, это должен делать отдельный сервис которому атомарно делегированы ввода новых юзеров (5) дженкинс немного не для этого, тут скорее ansible подойдет | |||
| 13
    
        Garykom гуру 21.11.22✎ 14:31 | 
        (12) согласен что jenkins тут слегка овер
 но по сути ТС хочет в DevOps и там уже куча инструментов есть готовых | |||
| 14
    
        Alex174 22.11.22✎ 14:44 | 
        В общем вот тут есть инфа. 
 https://infostart.ru/1c/articles/1266995/?ysclid=laqosw1tv6423214514 | |||
| 15
    
        Alex174 22.11.22✎ 14:45 | 
        И здесь дополнение 
 https://infostart.ru/1c/articles/1495250/?ysclid=larxvjh2b1148781797 | |||
| 16
    
        Garykom гуру 22.11.22✎ 14:51 | 
        (14) (15) Тебя как 1Сника все это не должно волновать совершенно
 Твое дело сказать руководству: "Я тупой 1Сника, в это AD не умею. Дайте мне готовый сервис, я его буду дергать и передавать параметры. Ответ сервиса выведу." | |||
| 17
    
        vde69 22.11.22✎ 15:00 | ||||
| 18
    
        Garykom гуру 22.11.22✎ 15:02 | 
        (17) допустим у меня AD на линуксе и?     | |||
| 19
    
        vde69 22.11.22✎ 15:06 | 
        (18) в сабже >>> c:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe
 ну и до кучи: провайдер ""WinNT" сильно устарел еще 10 лет назад :) но это не мешает его использовать еще 10 лет.... | |||
| 20
    
        Garykom гуру 22.11.22✎ 15:07 | 
        (19) ТС хочет странного
 И неправильно хочет, правильно это из 1С делать файлик и отправлять его куда то А там уже сделается все что надо, другими не 1Сными средствами | |||
| 21
    
        sdf 22.11.22✎ 17:18 | 
        WScript.Shell выполнить Exec "PowerShell.exe -File ХХХ.ps > log"
 и результат потом прочитать красивая реализация была от https://github.com/YPermitin на инфострате: PUBID_1154294-КомандныйИнтерпретаторДля1С (уже нету...) | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |