![]() |
![]() |
![]() |
|
Учетная запись | ☑ | ||
---|---|---|---|---|
0
Grigory_2012
14.11.12
✎
09:23
|
Форме документа вставил кнопку, при нажатии на ее ФИО, должность, подразделение, эл.адрес экспортируется в Active Directiry, но столкнулся с проблемой. Администратор сети расшарил мои права, но если зайти под другой учетной записью на компьютер и нажать на кнопку выдаст ошибку (... нет доступа). Можно ли как то прописать, чтоб работала под любой учетной записью.
--------------------------------------------- Функция ПолучитьLDAPОбъект(Путь,Пользователь="",Пароль="") ....... КонецФункции --------------------------------------------- Процедура ДействияФормыДействие7(Кнопка) Перем Пользователь,Пароль,Домен,Стр,Контроллер,Отбор,Подразделение,Группа, промш; Домен="alfa.ru"; ТекстЗапроса="<LDAP://"+Контроллер; Корень=ПолучитьLDAPОбъект("LDAP://RootDSE",Пользователь,Пароль); Провайдер="Provider=ADSDSOObject;"; ТекстЗапроса=ТекстЗапроса+Корень.Get("defaultNamingContext")+">"; Маска="Rabotnik"; Отбор=";(&(objectClass=organizationalUnit)(name=" + Маска + "));AdsPath;subTree"; ТекстЗапросаОтбор=ТекстЗапроса+Отбор; Соединение = Новый COMОбъект("ADODB.Connection"); Соединение.Open(Провайдер); Записи=Соединение.Execute(ТекстЗапросаОтбор); Пока Записи.EOF=0 Цикл Сообщить(Записи.Fields(0).Value); Подразделение=ПолучитьLDAPОбъект(Записи.Fields(0).Value,Пользователь,Пароль); Сообщить(Подразделение.AdsPath); Прервать; Записи.MoveNext(); КонецЦикла; Если ПустаяСтрока(Подразделение)=Истина Тогда Возврат; КонецЕсли; Маска="Синтаксис"; Отбор=";(&(objectClass=Group)(sAMAccountName=" + Маска + "));AdsPath;subTree"; ТекстЗапросаОтбор=ТекстЗапроса+Отбор; Записи=Соединение.Execute(ТекстЗапросаОтбор); Пока Записи.EOF=0 Цикл Группа=ПолучитьLDAPОбъект(Записи.Fields(0).Value,Пользователь,Пароль); Сообщить(Группа.AdsPath); Прервать; Записи.MoveNext(); КонецЦикла; Рус=Новый Массив; Лат=Новый Массив; Рус.Добавить("А"); Лат.Добавить("a"); Рус.Добавить("Б"); Лат.Добавить("b"); Рус.Добавить("В"); Лат.Добавить("v"); Рус.Добавить("Г"); Лат.Добавить("g"); Рус.Добавить("Д"); Лат.Добавить("d"); Рус.Добавить("Е"); Лат.Добавить("e"); Рус.Добавить("Ё"); Лат.Добавить("yo"); Рус.Добавить("Ж"); Лат.Добавить("zh"); Рус.Добавить("З"); Лат.Добавить("z"); Рус.Добавить("И"); Лат.Добавить("i"); Рус.Добавить("Й"); Лат.Добавить("j"); Рус.Добавить("К"); Лат.Добавить("k"); Рус.Добавить("Л"); Лат.Добавить("l"); Рус.Добавить("М"); Лат.Добавить("m"); Рус.Добавить("Н"); Лат.Добавить("n"); Рус.Добавить("О"); Лат.Добавить("o"); Рус.Добавить("П"); Лат.Добавить("p"); Рус.Добавить("Р"); Лат.Добавить("r"); Рус.Добавить("С"); Лат.Добавить("s"); Рус.Добавить("Т"); Лат.Добавить("t"); Рус.Добавить("У"); Лат.Добавить("u"); Рус.Добавить("Ф"); Лат.Добавить("f"); Рус.Добавить("Х"); Лат.Добавить("h"); Рус.Добавить("Ц"); Лат.Добавить("ts"); Рус.Добавить("Ч"); Лат.Добавить("ch"); Рус.Добавить("Ш"); Лат.Добавить("sh"); Рус.Добавить("Щ"); Лат.Добавить("sch"); Рус.Добавить("Ы"); Лат.Добавить("y"); Рус.Добавить("Ъ"); Лат.Добавить(""); Рус.Добавить("Ь"); Лат.Добавить(""); Рус.Добавить("Э"); Лат.Добавить("e"); Рус.Добавить("Ю"); Лат.Добавить("yu"); Рус.Добавить("Я"); Лат.Добавить("ya"); Рус.Добавить("а"); Лат.Добавить("a"); Рус.Добавить("б"); Лат.Добавить("b"); Рус.Добавить("в"); Лат.Добавить("v"); Рус.Добавить("г"); Лат.Добавить("g"); Рус.Добавить("д"); Лат.Добавить("d"); Рус.Добавить("е"); Лат.Добавить("e"); Рус.Добавить("ё"); Лат.Добавить("yo"); Рус.Добавить("ж"); Лат.Добавить("zh"); Рус.Добавить("з"); Лат.Добавить("z"); Рус.Добавить("и"); Лат.Добавить("i"); Рус.Добавить("й"); Лат.Добавить("j"); Рус.Добавить("к"); Лат.Добавить("k"); Рус.Добавить("л"); Лат.Добавить("l"); Рус.Добавить("м"); Лат.Добавить("m"); Рус.Добавить("н"); Лат.Добавить("n"); Рус.Добавить("о"); Лат.Добавить("o"); Рус.Добавить("п"); Лат.Добавить("p"); Рус.Добавить("р"); Лат.Добавить("r"); Рус.Добавить("с"); Лат.Добавить("s"); Рус.Добавить("т"); Лат.Добавить("t"); Рус.Добавить("у"); Лат.Добавить("u"); Рус.Добавить("ф"); Лат.Добавить("f"); Рус.Добавить("х"); Лат.Добавить("h"); Рус.Добавить("ц"); Лат.Добавить("ts"); Рус.Добавить("ч"); Лат.Добавить("ch"); Рус.Добавить("ш"); Лат.Добавить("sh"); Рус.Добавить("щ"); Лат.Добавить("sch"); Рус.Добавить("ы"); Лат.Добавить("y"); Рус.Добавить("ъ"); Лат.Добавить(""); Рус.Добавить("ь"); Лат.Добавить(""); Рус.Добавить("э"); Лат.Добавить("e"); Рус.Добавить("ю"); Лат.Добавить("yu"); Рус.Добавить("я"); Лат.Добавить("ya"); ФамилииЭЛ=ADФамилияЭлектронное; Для н=1 по СтрДлина(ADФамилияЭлектронное) Цикл Сим=Сред(ADФамилияЭлектронное,н,1); Инд=Рус.Найти(Сим); Если Инд<>Неопределено Тогда Сим=Лат[Инд]; КонецЕсли; ФамилииЭЛ=Сред(ФамилииЭЛ +Сим, 2, 10); Конеццикла; ИмяЭл=ADИмяЭлектронное; Для н=1 по СтрДлина(ADИмяЭлектронное) Цикл Сим=Сред(ADИмяЭлектронное,н,1); Инд=Рус.Найти(Сим); Если Инд<>Неопределено Тогда Сим=Лат[Инд]; КонецЕсли; ИмяЭл=Сред(ИмяЭл +Сим, 2, 10); Конеццикла; Им=ADИмя; Отчетсва =ADОтчество; Организации=ADОрганизация; Фамилии=ADФамилия; Долж=ADДолжность.Наименование; Отделы=ADОтдел.Наименование; Гор=ADГород.Наименование; Имя=ADПолноеНаименование; ПолноеИмя=Имя; ОтображаемоеИмя=ПолноеИмя; ИмяПринципала=СтрЗаменить(ФамилииЭЛ," ","_")+"@"+Домен; ИмяПредВиндуз2000=СтрЗаменить(ФамилииЭЛ," ","_"); //--< Отбор=";(&(objectClass=User)(sAMAccountName=" + ИмяПредВиндуз2000 + "));AdsPath;subTree"; ТекстЗапросаОтбор=ТекстЗапроса+Отбор; Записи=Соединение.Execute(ТекстЗапросаОтбор); Если Записи.RecordCount> 0 Тогда Пользователь = Подразделение.Create("User", "CN="+Имя); Пользователь.Put("Department", Отделы); Пользователь.Put("sAMAccountName", ИмяЭл+"."+ФамилииЭЛ); Пользователь.Put("displayName", ОтображаемоеИмя); Пользователь.Put("name", ПолноеИмя); Пользователь.Put("givenName",ПолноеИмя); Пользователь.Put("title", Долж); Пользователь.Put("userPrincipalName", ИмяЭл+"."+ИмяПринципала); Пользователь.Put("company", Организации); Пользователь.Put("sn",Фамилии); Пользователь.Put("givenName",Им+ " " + Отчетсва); Пользователь.Put("l",Гор); Пользователь.SetInfo(); Иначе Пользователь = Подразделение.Create("User", "CN="+Имя); Пользователь.Put("Department", Отделы); Пользователь.Put("sAMAccountName", ФамилииЭЛ); Пользователь.Put("displayName", ОтображаемоеИмя); Пользователь.Put("name", ПолноеИмя); Пользователь.Put("givenName",ПолноеИмя); Пользователь.Put("title", Долж); Пользователь.Put("userPrincipalName", ИмяПринципала); Пользователь.Put("company", Организации); Пользователь.Put("sn",Фамилии); Пользователь.Put("givenName",Им+ " " + Отчетсва); Пользователь.Put("l",Гор); Пользователь.SetInfo(); КонецЕсли; КонецПроцедуры |
|||
1
Spieluhr
14.11.12
✎
09:35
|
если база серверная - то можно попробовать использовать пользователя под которым стартует служба сервера + фоновое задание (оно будет запускаться на сервере)
|
|||
2
Лефмихалыч
14.11.12
✎
09:39
|
(0) ты говоришь о том, чтобы дать КАЖДОМУ пользователю право изменять ВСЕ учетные записи домена. Ты хорошо подумал?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |