Добавление доменного пользователя в локальную группу
От: Jetteim http://jetteim.tk
Дата: 10.08.05 08:50
Оценка:
Есть необходимость в процессе инсталляции добавить некоторого доменного пользователя в локальную группу.
Делаю это с помощью 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?
Maxim S. Lee AKA Jetteim
http://jetteim.tk
Re: Добавление доменного пользователя в локальную группу
От: ussr  
Дата: 10.08.05 09:58
Оценка:
Здравствуйте, 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?


укажите просто имя домена — винда сама найдет его контроллер
Re[2]: Добавление доменного пользователя в локальную группу
От: Jetteim http://jetteim.tk
Дата: 10.08.05 10:39
Оценка:
Здравствуйте, 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
Maxim S. Lee AKA Jetteim
http://jetteim.tk
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.