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

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


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

15.4 ADSI. Применение провайдера WinNT

Провайдер (поставщик) WinNT в скриптах ADSI в VBScript, подключение к домену и к локальному компьютеру, ограничения при работе с провайдером WinNT

Провайдер WinNT можно использовать не только для подключения к базе данных Active Directory, но и к домену Windows NT 4.0, и для работы с локальными учетными записями пользователей на компьютерах Windows (база данных SAM, Security Account Management). Однако отметим, что при подключении к Active Directory средствами этого провайдера вам доступны не все свойства объектов каталога (в основном только те, которые поддерживались в Windows NT), поэтому при работе с доменами Windows 2000 и Windows 2003 рекомендуется применять провайдер LDAP.

Синтаксис строки подключения при применении провайдера LDAP в самом полном варианте может выглядеть следующим образом:

WinNT://имя_домена/имя_объекта,класс_объекта

или

WinNT://имя_сервера/имя_объекта,класс_объекта

Последний вариант можно использовать как для подключения к домену с указанием требуемого контроллера данного домена, так и для подключения к базе данных локальных учетных записей данного компьютера (не обязательно контроллера домена или даже сервера, этот способ может использоваться и для подключения к рабочей станции пользователя, например, под управлением Windows 2000 Professional или Windows XP).

Пример применения такого синтаксиса может выглядеть следующим образом:

Dim x

Set x = GetObject("WinNT://nwtraders1/AIvanov,user")

Debug.Print x.Name

Отметим следующие моменты:

  • вместо имени домена в формате имени NetBIOS (в нашем примере — nwtraders1) можно также использовать полное имя домена (например, nwtraders1.msft) или имя контроллера домена (например, LONDON3);
  • для пользователя указывается его имя входа в формате до Windows 2000 (в соответствии с тем, как оно определено на вкладке Учетная запись свойств пользователя). Поэтому имя пользователя при обращении к нему средствами провайдера LDAP и средствами провайдера WinNT будет выглядеть по разному. Например, обращение к одному и тому же объекту пользователя может выглядеть так:

При помощи провайдера LDAP:

Set oUser = GetObject _

("LDAP://CN=Alexander Ivanov,OU=HQ,DC=nwtraders1,DC=msft")

При помощи провайдера WinNT:

Set oUser = GetObject("WinNT://nwtraders1/AIvanov,user")

  • с точки зрения провайдера WinNT, все объекты домена находятся непосредственно в домене и никаких организационных подразделений при указании пути к ним указывать не надо (используется концепция так называемого "плоского домена", аналогично тому, как это было в Windows NT 4.0).
  • имя класса (в нашем случае user) для объекта можно не указывать: класс объекта в этом случае будет определен автоматически:

Set oUser = GetObject("WinNT://nwtraders1/AIvanov")

Однако явное указание имени класса позволяет ускорить подключение к объекту и повысить производительность работы нашей программы.

  • если нам необходимо подключиться к объекту домена или базе данных учетных записей конкретного компьютера (для контроллера домена это будет база данных домена, для обычного компьютера — база данных локальных учетных записей), соответствующий синтаксис может выглядеть следующим образом:

Set x = GetObject("WinNT://nwtraders1")

или

Set x = GetObject("WinNT://LONDON3")

самый простой вариант строки подключения выглядит как

Set x = GetObject("WinNT:")

В этом случае мы подключаемся к корневому объекту провайдера WinNT, чтобы воспользоваться его свойствами и методами.

Еще раз отметим, что возможности этого провайдера сильно ограничены по сравнению с провайдером LDAP и ориентированы в основном на работу с доменами Windows NT 4.0 и локальными учетными записями компьютеров. Провайдер WinNT ничего не знает, к примеру, о многих объектах, которые могут быть в Active Directory (например, организационных подразделениях, контактах, сайтах и т.п.). Для объектов пользователей можно работать только с теми свойствами, которые были предусмотрены в домене Windows NT 4.0 (например, нет атрибута EmailAddress, атрибутов, связанных с адресом в формате UPN User Principal Name и т.п.). Однако для работы с локальными учетными записями пользователей этот провайдер может оказаться очень полезным. Например, при помощи такого кода можно поменять пароль для пользователя Administrator в домене или на локальном компьютере:

sCompName = InputBox("Введите имя компьютера или домена:")

sPass = inputBox("Введите новый пароль:")

Set oUser = GetObject("WinNT://" & sCompName & "/Administrator,user")

oUser.SetPassword sPass

oUser.SetInfo

 

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

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


 

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

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