объекта. Возможными значениями параметра 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.

Список всех доступных доменов в локальной сети

В листинге 11.1 приведен JScript-сценарий ListDomains.js, в котором создается список всех доменов, доступных в сети (рис. 11.1)

Рис. 11.1. Список всех имеющихся в сети доменов

В рассматриваемом сценарии производятся следующие действия. Сначала создается корневой объект NameSpaceObj класса Namespace для провайдера Windows NT, который содержит все остальные объекты службы каталога:

//Связываемся с корневым объектом Namespace

NameSpaceObj = GetObject('WinNT:');

Затем с помощью свойства Filter из коллекции NameSpaceObj выделяются все содержащиеся в ней объекты класса Domain и создается экземпляр объекта Enumerator (переменная е) для доступа к элементам коллекции NameSpaceObj:

//Устанавливаем фильтр для выделения объектов-доменов

NameSpaceObj.Filter = Array('domain');

//Создаем объект Enumerator для доступа к коллекции NameSpaceObj

E=new Enumerator(NameSpaceObj);

Список доменов будет храниться в переменной List, которая инициализируется следующим образом:

List='Bce доступные домены в сети: ';

В цикле while выполняется перебор всех элементов коллекции, которые являются объектами класса Domain; название домена, хранящееся в свойстве Name, добавляется (вместе с символом разрыва строки) в переменную List:

while (!E.atEnd()) {

 //Извлекаем текущий элемент коллекции (объект класса Domain)

 DomObj=Е.item();

 //Формируем строку с именами доменов

 List+=DomObj.Name+' ';

 //Переходим к следующему элементу коллекции

 E.moveNext();

}

Сформированная таким образом переменная List выводится на экран с помощью метода Echo() объекта WScript:

WScript.Echo(List);

Листинг 11.1. Вывод на экран списка всех доменов локальной сети

/********************************************************************/

/* Имя: ListDomains.js                                              */

/* Язык: JScript                                                    */

/* Описание: Вывод на экран списка всех доменов локальной сети      */

/********************************************************************/

//Объявляем переменные

var

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату