Андрей Попов - 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 - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Mess="Пользователь "+UserStr+" удален";
WshShell.Popup(Mess,0,"Удаление пользователя",vbInformation);
}
/************* Удаление группы ***********************/
IsError=false;
try {
//Удаляем группу
ComputerObj.Delete("group", GroupStr);
} catch (e) { //Обрабатываем возможные ошибки
if (e != 0) {
//Выводим сообщение об ошибке
IsError=true;
Mess="Ошибка при удалении группы "+GroupStr+"\nКод ошибки: " + e.number+"\nОписание: " + e.description;
WshShell.Popup(Mess,0,"Удаление группы",vbCritical);
}
}
if (!IsError) {
//Все в порядке
Mess="Группа "+GroupStr+" удалена";
WshShell.Popup(Mess,0,"Удаление группы",vbInformation);
}
/************* Конец *********************************************/
Список всех групп на рабочей станции
Принцип формирования списка всех групп рабочей станции остается тем же, что и для рассмотренного выше списка всех доступных доменов локальной сети, однако первоначальное связывание нужно производить не с корневым объектом класса Namespace
, а с нужным объектом класса Computer
.
В приведенном в листинге 11.6 сценарии ListAllGroups.js для связывания с компьютером 404_Popov мы создаем объект-контейнер ComputerObj
, в котором содержатся все объекты рабочей станции 404_Popov:
//Связываемся с компьютером 404_Popov
ComputerObj = GetObject("WinNT://404_Popov");
Затем в сценарии создается объект Enumerator
для доступа к элементам коллекции ComputerObj
и инициализируется переменная SList
, в которой будет храниться список всех локальных групп рабочей станции:
//Создание объекта Enumerator для доступа к коллекции ComputerObj
E=new Enumerator(ComputerObj);
SList="Ha компьютере 404_Popov созданы группы:\n";
После этого в цикле while
из коллекции ComputerObj
выбираются лишь объекты класса Group
, т.е. те объекты, у которых в поле Class
записана строка " Group
"; в SList
заносятся названия групп из поля Name
:
while (!E.atEnd()) {
//Извлекаем текущий элемент коллекции
GroupObj=E.item();
//Выделение объектов класса Group
if (GroupObj.Class == "Group")
//Формируем строку с именами групп
SList+=GroupObj.Name+"\n";
//Переход к следующему элементу коллекции
E.moveNext();
}

Рис. 11.5.Список всех локальных групп, определенных на рабочей станции
После окончания цикла сформированная строка выводится на экран (см. рис. 11.5):
//Выводим информацию на экран
WScript.Echo(SList);
/********************************************************************/
/* Имя: ListAllGroups.js */
/* Язык: JScript */
/* Описание: Вывод на экран имен всех групп заданного компьютера */
/********************************************************************/
//Объявляем переменные
var
ComputerObj, //Экземпляр объекта Computer
E, //Объект Enumerator
SList; //Строка для вывода на экран
//Связываемся с компьютером 404_Popov
ComputerObj = GetObject("WinNT://404_Popov");
//Создание объекта Enumerator для доступа к коллекции ComputerObj
E=new Enumerator(ComputerObj);
SList="На компьютере 404_Popov созданы группы:\n";
//Цикл по всем элементам коллекции объектов компьютера
while (!E.atEnd()) {
//Извлекаем текущий элемент коллекции
GroupObj=E.item();
//Выделение объекты класса Group
if (GroupObj.Class == "Group")
//Формируем строку с именами групп
SList+=GroupObj.Name+"\n";
//Переход к следующему элементу коллекции
E.moveNext();
}
//Выводим информацию на экран
WScript.Echo(SList);
/************* Конец *********************************************/
Список всех пользователей в группе
В листинге 11.7 приведен сценарий ListUsers.js, в котором формируется список всех пользователей, входящих в группу "Пользователи" на компьютере 404_Popov.
Для связывания с группой "Пользователи" рабочей станции 404_Popov создается объект GroupObj
; коллекция пользователей этой группы формируется с помощью метода Members()
объекта Group
:
//Связываемся с группой Пользователи компьютера 404_Popov
GroupObj=GetObject("WinNT://404_Ророv/Пользователи,group");
//Создание объекта Enumerator для доступа к коллекции пользователей
E=new Enumerator(GroupObj.Members());
После инициализации переменной SList
мы обрабатываем в цикле while
все элементы полученной коллекции; на каждом шаге цикла к переменной SList
добавляется имя текущего пользователя (поле Name
в объекте user
— текущем элементе коллекции):
SList="Bce пользователи группы Пользователи на компьютере 404_Popov:\n";
//Цикл по всем элементам коллекции пользователей
while (!E.atEnd()) {
//Извлечение элемента коллекции класса User
UserObj=Е.item();
//Формируем строку с именами пользователей
SList+=UserObj.Name+"\n";
//Переходим к следующему элементу коллекции
E.moveNext();
}
После выхода из цикла сформированная строка SList
выводится на экран (рис. 11.6):
//Выводим информацию на экран
WScript.Echo(SList);

Рис. 11.6.Список всех пользователей заданной группы
/********************************************************************/
/* Имя: ListUsers.js */
/* Язык: JScript */
/* Описание: Вывод на экран имен всех пользователей заданной группы */
/********************************************************************/
//Объявляем переменные
var
GroupObj, //Экземпляр объекта Group
SList, //Строка для вывода на экран
E, //Объект Enumerator
UserObj; //Экземпляр объекта User
//Связываемся с группой Пользователи компьютера 404_Popov
GroupObj=GetObject("WinNT://404_Popov/Пользователи,group");
//Создание объекта Enumerator для доступа к коллекции пользователей
E=new Enumerator(GroupObj.Members());
SList="Все пользователи группы Пользователи на компьютере 404_Popov:\n";
//Цикл по всем элементам коллекции пользователей
while (!E.atEnd()) {
//Извлечение элемента коллекции класса User
UserObj=E.item();
//Формируем строку с именами пользователей
SList+=UserObj.Name+"\n";
//Переходим к следующему элементу коллекции
E.moveNext();
}
//Вывод информации на экран
WScript.Echo(SList);
/************* Конец *********************************************/
Интервал:
Закладка: