Академия Специальных Курсов по Компьютерным Технологиям
    Главная страница Послать письмо
 
AskIt.ru  
   
   
   
   
   
   
 
 
  Главная / Заказные курсы / Программирование для администраторов
 
 

Получить учебные материалы по этому курсу


<-- Назад Читать дальше -->

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.

 

   
   
   
   
   
   
   
   
   
   
 
<-- Назад Читать дальше -->

Получить учебные материалы по этому курсу


 

 
© 2004-2016, Академия Специальных Курсов
по Информационным Технологиям
.
Все права защищены.

Разработка NevaStudio
г. Санкт-Петербург, Васильевский остров,
20-я линия, д. 7
Офис 101, 2-й этаж
Телефон: 8(812)922-47-60
E-mail: info@askit.ru