|
Создание учетной записи в 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
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С (уже нету...) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |