Есть необходимость в процессе инсталляции добавить некоторого доменного пользователя в локальную группу.
Делаю это с помощью VBScrip-а вот такого вида:
Set objNetwork = CreateObject("Wscript.Network")
strComputer = objNetwork.ComputerName
strUser = "europe\\maxim_lee"
Set objGroup = GetObject("WinNT://" & strComputer & "/IIS_WPG,group")
Set objUser = GetObject("LDAP://cn=" & strUser & ",dc=" & strComputer)
objGroup.Add(objUser.ADsPath)
В предпоследней строке получаю ошибку A referral was returned from the server. И это понятно — машина не является контроллером домена и перенаправляет выше.
Поиск в MSDN не дал результатов, как сделать так, чтобы оно само искало выше.
Как быть? Как-то определять контроллер домена и указывать его вместо strComputer?
Здравствуйте, Jetteim, Вы писали:
J>Есть необходимость в процессе инсталляции добавить некоторого доменного пользователя в локальную группу.
J>Делаю это с помощью VBScrip-а вот такого вида:
J>J>Set objNetwork = CreateObject("Wscript.Network")
J>strComputer = objNetwork.ComputerName
J>strUser = "europe\\maxim_lee"
J>Set objGroup = GetObject("WinNT://" & strComputer & "/IIS_WPG,group")
J>Set objUser = GetObject("LDAP://cn=" & strUser & ",dc=" & strComputer)
J>objGroup.Add(objUser.ADsPath)
J>
J>В предпоследней строке получаю ошибку A referral was returned from the server. И это понятно — машина не является контроллером домена и перенаправляет выше.
J>Поиск в MSDN не дал результатов, как сделать так, чтобы оно само искало выше.
J>Как быть? Как-то определять контроллер домена и указывать его вместо strComputer?
укажите просто имя домена — винда сама найдет его контроллер
Здравствуйте, ussr, Вы писали:
U>укажите просто имя домена — винда сама найдет его контроллер
Всё не так просто. Если я указываю имя домена — выдаётся та же самая ошибка.
Проблема ещё в том, что все production сервера находятся в одном домене, а те аккаунты, под которыми идёт работа (и запускается скрипт) — в другом.
Причём, когда я на основе примеров из MSDN запустил скрипт, вот такой,
Set objRootDSE = GetObject("GC://rootDSE")
strADsPath = "GC://" & objRootDSE.Get("defaultnamingcontext")
objCommand.CommandText = _
"<"& strADsPath & ">;(objectCategory=user);" & _
"distinguishedName,name;subtree"
Set objRecordSet = objCommand.Execute
While Not objRecordSet.EOF
' if objRecordSet.Fields("Name") = "Maxim_Lee" Then
Wscript.Echo objRecordSet.Fields("Name")
Wscript.Echo "[" & _
objRecordSet.Fields("distinguishedName") & "]"
'End If
objRecordSet.MoveNext
Wend
Этот скрипт вывел пользователей из того самого, production, домена, и только.
Кроме того, когда я через пользовательский интерфейс добавляю пользователя, домен с аккаунтами пользователей не показывается в дереве. Но я спокойно добавляю, указывая имя в виде domain#user