Несколько доменов AD - и запуск регламентных заданий.

1. user766128 1 25.09.18 13:33 Сейчас в теме
Возник такой вопрос:
Есть самописная база 8.3 УФ, есть сервер приложений, на котором крутятся серверы 8.1, 8.2, 8.3 - службы запущены из под пользователей домена DomainMain: usr1c83@DomainMain.local, usr1c82@DomainMain.local и т.д.

В самописной базе каждый день должно выполнятся регламентное задание, которое выполняет определенный скрипт на VBS, и получается данные из AD (имена пользователей, статусы активности, телефоны и прочее).

В домене DomainMain.local все отрабатывает нормально, скрипт возвращает данные, они обрабатываются в 1с, и все шуршит без вопросов.

Теперь понадобилось завести еще один домен, пусть будет DomainSecond.local, а также развернуть еще одну такую же самописную базу, но которая, уже, в свою очередь должна брать данные из AD нового домена DomainSecond.local.

Но такая связка работать не хочет. Насколько я понимаю, не хочет работать, потому что пользователи usr1c83@DomainMain.local, usr1c82@DomainMain.local из под которых запущена служба Ragent, являются пользователями домена DomainMain.local и соответственно ничего не знают про домен DomainSecond.local

Вопрос в том, что не получается подружить пользователей usr1c83@DomainMain.local с новым доменом.
Может подскажете, как эту проблему можно решить.

Сами домены вроде как настроены на доверительные отношения, во всяком случае, админы так говорят, и в самих оснастках видно оба домена...

Ну или может какое-то другое решение есть?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. VmvLer 25.09.18 13:45 Сейчас в теме
LDAP поднимать через com или скриптами в 1С
3. user766128 1 27.09.18 12:52 Сейчас в теме
Обнаружилось следующее; так как MSscriptcontrol.scriptcontrol не работает в x64 ОС (У нас Win 2012 R2), то в свое время было установлено com+ приложение, которое и обрабатывало скрипт.
Установлено оно было по мануалу из http://osergey.ru/ru/call-32-bit-com-objects-to-side-64-bi/#more-508

Там в свойствах приложения, на закладке "Удостоверние" был указан запуск приложения от пользователя из домена DomainMain
Что-то типа DomainMain\scheduler и соответственно его доменный пароль.
С такой настройкой - в базе, рег. задание которой подключается к домену DomainMain - все выполняется нормально, при этом в базе, в которой рег. задание которой подключается к домену DomainSecond - скрипт ничего не возвращает.

Если же поменять этого пользователя удостоверения на DomainSecond\scheduler (пользователь заведен в домен, является админом домена, еще в какие-то группы добавлен), то все отрабатывает с точностью до наоборот. Теперь данные из домена DomainSecond - вытащить получается, а из домена DomainMain нет....
С админами пробовали по всякому права назначать обоим доменным пользователям (scheduler), пароли одинаковые, даже пробовали интерактивно заходить из под scheduler-а одного домена на контроллер другого.
А обертка для MSscriptcontrol все равно только в одну сторону работает.
Пробовал, не указывать домен, пробовал из под локального пользователя сервака, пробовал в настройках удостоверения указывать все возможные переключатели системной учетной записи - нивкакую :(

Сам скрипт такой (выдернут из конфы ITIL):
Скрипт.Language="vbscript";
Скрипт.AddCode("
|Function GetUSERS()
| On Error Resume Next
|
| Set objRoot = GetObject(""LDAP://"+СокрЛП(Объект.ИмяДомена) +"/RootDSE"")
//| Set objRoot = GetObject(""LDAP://RootDSE"")
| strDNSDomain = objRoot.Get(""DefaultNamingContext"")
| Set adoCommand = CreateObject(""ADODB.Command"")
| Set adoConnection = CreateObject(""ADODB.Connection"")
| adoConnection.Provider = ""ADsDSOObject""
| adoConnection.Open ""Active Directory Provider""
| adoCommand.ActiveConnection = adoConnection
| strBase = ""<LDAP://"" & strDNSDomain & "">""
| strFilter = ""(&(objectCategory=person)(objectClass=user))""
| strAttributes = ""Name,sAMAccountName,title,department,mail,telephoneNumber,mobile,HomePhone,streetAddress,company,UserAccountControl,distinguishedName""
| strQuery = strBase & "";"" & strFilter & "";"" & strAttributes
| adoCommand.CommandText = strQuery
| adoCommand.Properties(""Page Size"") = 100
| adoCommand.Properties(""Timeout"") = 607
| adoCommand.Properties(""Cache Results"") = False
| Set objRS = adoCommand.Execute
| While not objRS.EOF
| strName = objRS.Fields(""Name"").Value
| strsAMAccountName = objRS.Fields(""sAMAccountName"").Value
| strTitle = objRS.Fields(""title"").Value
| strDepartment = objRS.Fields(""department"").Value
| strMail = objRS.Fields(""mail"").Value
| strTelephoneNumber = objRS.Fields(""telephoneNumber"").Value
| strmobile = objRS.Fields(""mobile"").Value
| strHomePhone = objRS.Fields(""HomePhone"").Value
| straddress = objRS.Fields(""streetAddress"").Value
| strcompany = objRS.Fields(""company"").Value
| strEnUser = objRS.Fields(""UserAccountControl"").Value
| strPath = objRS.Fields(""distinguishedName"").Value
| strList = strList & strName & "";"" & strsAMAccountName & "";"" & strTitle & "";"" & strDepartment & "";"" & strMail & "";"" & strTelephoneNumber & "";"" & strmobile & "";"" & strHomePhone & "";"" & straddress & "";"" & strcompany & "";"" & strEnUser & "";"" & strPath & "";"" & vbCrLf
|
| objRS.MoveNext
| Wend
| GetUSERS = strList
| End Function
|");

ТекстСКРИПТ = СокрЛП(Скрипт.Run("GetUSERS"));

Особой надеждын конечно нет, но может есть какой-нить хинт?)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот