|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
15.3 ADSI. Применение провайдера LDAP для подключения к службам каталогов Провайдер LDAP в скриптах ADSI в VBScript, варианты подключения, применение утилиты ADSIEdit для получения информации об отличительном имени (Distinguished Name) объекта Active Directory Провайдер LDAP используется в практической работе чаще всего. Он позволяет подключаться как к службе каталогов Active Directory, так и к другим LDAP-совместимым службам каталогов. Синтаксис строки подключения при применении этого провайдера может выглядеть следующим образом: LDAP://имя_хоста:номер_порта/отличительное_имя_объекта При этом все части строки подключения, которые идут после LDAP://, являются необязательными. Приведем несколько примеров. Если мы не укажем ничего, кроме имени провайдера, мы получим ссылку на корневой объект пространства имен провайдера LDAP: Dim x Set x = GetObject("LDAP:") Если будет указано только имя сервера, мы подключимся к службе каталогов на этом сервере. При этом будет использован порт по умолчанию (389): Dim x Set x = GetObject("LDAP://london3") Самый полный вариант подключения (с указанием имени сервера, номера порта и отличительного имени) выглядит следующим образом: Dim x Set x = GetObject _ ("LDAP://london3:389/CN=Alexander Ivanov,OU=HQ,DC=nwtraders1,DC=msft") Wscript.Echo x.FullName Конечно, имя сервера и номер порта можно не указывать. В этом случае программные модули ADSI автоматически найдут контроллер домена для указанного вами домена и произведут к нему подключение с параметрами по умолчанию. При этом используются те же механизмы с применением записей SRV на сервере DNS или локального широковещания, что и при входе клиентского компьютера в сеть. Пример строки подключения без указания имени сервера (такой вариант называется привязкой без сервера - serverless binding) может выглядеть так: Dim x Set x = GetObject _ ("LDAP://CN=Alexander Ivanov,OU=HQ,DC=nwtraders1,DC=msft") Debug.Print x.FullName Для подключения к конкретному объекту в домене можно даже не указывать имя домена, к которому производится подключение. Специальный объект RootDSE автоматически вернет имя того домена, к которому принадлежит данный компьютер: Set oRootDSE = GetObject("LDAP://RootDSE") Set oMyDomain = GetObject _ ("LDAP://" & oRootDSE.Get("defaultNamingContext")) Wscript.Echo oMyDomain.Name Если ваша текущая запись не обладает правами на выполнение необходимых операций в Active Directory, то можно воспользоваться специальным методом OpenDSObject() корневого объекта провайдера для указания другой учетной записи: Set oMyDS = GetObject("LDAP:") Set oMyObj = oMyDS.OpenDSObject _ ("LDAP://DC=nwtraders1, DC=msft", "Администратор", "P@ssw0rd", _ ADS_SECURE_AUTHENTICATION + ADS_SERVER_BIND) Wscript.Echo oMyObj.Name Чаще всего используется для подключения используется метод с указанием только отличительного имени необходимого объекта в службе каталогов вида Set x = GetObject _ ("LDAP://CN=Alexander Ivanov,OU=HQ,DC=nwtraders1,DC=msft") Отметим, что если вы не уверены, как выглядит отличительное имя того или иного объекта, можно посмотреть это имя на графическом экране утилиты ADSIEdit (см. рис. ADSI1). Эта утилита поставляется вместе с дистрибутивами Windows Server 2000 и Windows Server 2003 в составе Support Tools.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
Получить учебные материалы по этому курсу
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||