Андрей Попов - Windows Script Host для Windows 2000/XP
- Название:Windows Script Host для Windows 2000/XP
- Автор:
- Жанр:
- Издательство:БХВ-Петербург
- Год:2004
- Город:Санкт-Петербург
- ISBN:5-94157-197-6
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Андрей Попов - Windows Script Host для Windows 2000/XP краткое содержание
В книге описывается сервер сценариев Windows Script Host (WSH) версии 5.6, который является одним из стандартных компонентов Windows ХР, а также может быть установлен в более ранних версиях Windows. Приводятся сценарии на языках VBScript и JScript, иллюстрирующие применение стандартных объектов WSH 5.6, включая создание из сценариев дочерних процессов и запуск сценариев на удаленных компьютерах. В качестве более сложных примеров рассматриваются сценарии, работающие с базами данных, управляющие приложениями Microsoft Office, организующие графический пользовательский интерфейс, использующие технологии ADSI (Active Directory Service Interface) и WMI (Windows Management Instrumentation) для решения задач администрирования. Освещены вопросы практической работы с XML-файлами и создания СОМ-объектов. Особое внимание уделяется вопросам безопасности при работе со сценариями, приводятся конкретные примеры настроек политик безопасности. К книге прилагается дискета с исходными текстами большинства примеров.
Windows Script Host для Windows 2000/XP - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
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 доступные домены в сети:\n\n";
В цикле while
выполняется перебор всех элементов коллекции, которые являются объектами класса Domain
; название домена, хранящееся в свойстве Name, добавляется (вместе с символом разрыва строки) в переменную List
:
while (!E.atEnd()) {
//Извлекаем текущий элемент коллекции (объект класса Domain)
DomObj=Е.item();
//Формируем строку с именами доменов
List+=DomObj.Name+"\n";
//Переходим к следующему элементу коллекции
E.moveNext();
}
Сформированная таким образом переменная List
выводится на экран с помощью метода Echo()
объекта WScript
:
WScript.Echo(List);
/********************************************************************/
/* Имя: 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();
/********************************************************************/
/* Имя: AddUser.js */
/* Язык: JScript */
/* Описание: Создание нового пользователя компьютера */
/********************************************************************/
//Объявляем переменные
var
ComputerObj, //Экземпляр объекта Computer
UserObj, //Экземпляр объекта User
UserStr = "XUser"; //Имя создаваемого пользователя
//Связываемся с компьютером 404_Popov
ComputerObj = GetObject("WinNT://404_Popov");
//Создаем объект класса User
UserObj=ComputerObj.Create("user",UserStr);
//Добавляем описание созданного пользователя
UserObj.Description="Этот пользователь создан из сценария WSH";
//Сохраняем информацию на компьютере
UserObj.SetInfo();
/************* Конец *********************************************/
Группа на рабочей станции создается аналогичным образом (листинг 11.3).
/********************************************************************/
/* Имя: AddGroup.js */
/* Язык: JScript */
/* Описание: Создание новой группы на компьютере */
/********************************************************************/
//Объявляем переменные
var
ComputerObj, //Экземпляр объекта Computer
GroupObj, //Экземпляр объекта Group
GroupStr = "XGroup"; //Имя создаваемой группы
//Связываемся с компьютером 404_Popov
ComputerObj = GetObject("WinNT://404_Popov");
//Создаем объект класса Group
GroupObj=DomainObj.Create("group", GroupStr);
//Сохраняем информацию на компьютере
GroupObj.SetInfo();
/************* Конец *********************************************/
Вывод информации о пользователе и смена его пароля
В листинге 11.4 приведен сценарий UserInfo.js, в котором выводится на экран информация о созданном в сценарии AddUser.js пользователе XUser (рис. 11.2).
Читать дальшеИнтервал:
Закладка: