Чтение онлайн

ЖАНРЫ

Windows Script Host для Windows 2000/XP

Попов Андрей Викторович

Шрифт:
Замечание

Во всех рассмотренных ранее сценариях для создания объектов 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 доступные домены в сети:\n\n";

В цикле

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

while (!E.atEnd) {

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

 DomObj=Е.item;

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

 List+=DomObj.Name+"\n";

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

 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="Все доступные домены в сети:\n\n";

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

while (!E.atEnd) {

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

 DomObj=E.item;

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

 List+=DomObj.Name+"\n";

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

 E.moveNext;

}

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

WScript.Echo(List);

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

Создание пользователя и группы на рабочей станции

В сценарии AddUser.js, который приведен в листинге 11.2, для создания нового пользователя на рабочей станции выполняются следующие шаги. Во-первых, производится связывание с нужным компьютером (в нашем примере это рабочая станция с именем 404_Popov), т.е. создается экземпляр

ComputerObj
объекта
Computer
:

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

Во-вторых, создается экземпляр

UserObj
объекта
User
для нового пользователя. Для этого используется метод
Create
объекта
Computer
; в качестве параметров этого метода указывается имя класса "
user
" и имя создаваемого пользователя (в нашем примере это имя хранится в переменной
UserStr
):

UserObj=ComputerObj.Create("user", UserStr);

Замечание

Для создания пользователя или группы у вас в системе должны быть назначены права, которыми обладает администратор.

Для созданного пользователя в свойство

Description
мы помещаем текст описания:

UserObj.Description="Этот пользователь создан из сценария WSH";

Для сохранения информации о новом пользователе в базе данных пользователей вызывается метод

SetInfo
объекта
User
:

UserObj.SetInfo;

Поделиться с друзьями: