Связывание с нужным объектом каталога

Связывание с нужным объектом каталога

Первым шагом для доступа к пространству имен любого каталога в целях получения информации о его объектах или изменения свойств этих объектов является связывание (binding) с нужным объектом ADSI.

Рассмотрим вначале, каким образом формируется строка связывания для доступа к объектам отдельной рабочей станции с операционной системой Windows ХР. В общем виде эта строка имеет следующий формат:

"WinNT:[//ComputerName[/ObjectName[, className]]]]"

Здесь параметр ComputerName задает имя компьютера; ObjectName — имя объекта (это может быть имя группы, пользователя, принтера, сервиса и т. п.); className — класс объекта. Возможными значениями параметра className являются, например, group (группа пользователей), user (пользователь), printer (принтер) или service (сервис Windows ХР).

Указав в качестве строки ADsPath просто "WinNT:", можно выполнить связывание с корневым объектом-контейнером, содержащим все остальные объекты службы каталога.

Приведем несколько примеров строк связывания для доступа к различным объектам компьютера Windows ХР (табл. 11.1).

Таблица 11.1. Варианты строк связывания на компьютере Windows ХР

Строка ADsPath Описание "WinNT:" Строка для связывания с корневым объектом пространства имен "WinNT://404_Popov" Строка для связывания с компьютером 404_Popov "WinNT://404_Popov/Popov,user" Строка для связывания с пользователем Popov компьютера 404_Popov "WinNT://404_Popov/BankUsers, group" Строка для связывания с группой BankUsers на компьютере 404_Popov

Для того чтобы из сценария WSH использовать объект ADSI, соответствующий сформированной строке связывания, необходимо применить функцию GetObject языка JScript, которая возвращает ссылку на объект ActiveX, находящийся во внешнем каталоге. Например:

var NameSpaceObj = GetObject("WinNT:");

var ComputerObj = GetObject("WinNT://404_Popov");

var UserObj = GetObject("WinNT://404_Popov/Popov,user");

var GroupObj = GetObject("WinNT://404_Popov/BankUsers, group");

Замечание

Во всех рассмотренных ранее сценариях для создания объектов ActiveX мы пользовались методами CreateObject и GetObject объекта WScript или объектом ActiveXObject языка JScript. Для связывания же с объектом ADSI нужно использовать именно функцию GetObject языка JScript (или VBScript)!

Перейдем теперь к рассмотрению конкретных примеров сценариев, использующих объекты ADSI.