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

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

В листинге 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

 NameSpaceObj, //Корневой объект Namespace

 DomObj,       //Экземпляр объекта Domain

 E,            //Объект Enumerator

 SList;        //Строка для вывода на экран

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

NameSpaceObj = GetObject("WinNT:");

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

NameSpaceObj.Filter = Array("domain");

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

E=new Enumerator(NameSpaceObj);

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

//Цикл по всем элементам коллекции доменов

while (!E.atEnd()) {

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

 DomObj=E.item();

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

 List+=DomObj.Name+" ";

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

 E.moveNext();

}

//Вывод информацию на экран

WScript.Echo(List);

/*************  Конец *********************************************/