Андрей Попов - 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 - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:

Рис. 11.2.Информация о локальном пользователе XUser
Для получения этой информации мы производим связывание с нужным пользователем, т.е. создаем экземпляр UserObj
объекта User
и читаем данные из полей этого объекта:
//Связываемся с пользователем XUser компьютера 404_Popov
UserObj=GetObject("WinNT://404_Popov/XUser, user");
//Формируем строку с информацией о пользователе
SInfо="Информация о пользователе XUser:\n";
SInfо+="Имя: "+UserObj.Name+"\n";
SInfо+="Описание: "+UserObj.Description+"\n";
//Выводим сформированную строку на экран
WScript.Echo(SInfo);
После этого в сценарии выдается запрос на изменение пароля пользователя XUser. Для этого мы используем метод Popup()
объекта WshShell
:
//Создаем объект WshShell
WshShell=WScript.CreateObject("WScript.Shell");
//Запрос на изменение пароля
Res=WshShell.Popup("Изменить пароль у XUser?", 0, "Администрирование пользователей", vbQuestion+vbYesNo);
В случае утвердительного ответа пароль изменяется с помощью метода SetPassword()
объекта User
, после чего все произведенные изменения сохраняются на рабочей станции с помощью метода SetInfo()
:
if (Res==vbYes) {
//Нажата кнопка "Да"
//Устанавливаем новый пароль
UserObj.SetPassword("NewPassword");
//Сохраняем сделанные изменения
UserObj.SetInfо();
WScript.Echo("Пароль был изменен");
}
/********************************************************************/
/* Имя: UserInfo.js */
/* Язык: JScript */
/* Описание: Вывод информации о пользователе компьютера и смена */
/* его пароля */
/********************************************************************/
var
UserObj, //Экземпляр объекта User
Res, //Результат нажатия кнопки в диалоговом окне
SPassword, //Строка с новым паролем
SInfo; //Строка для вывода на экран
//Инициализируем константы для диалогового окна
var vbYesNo=4,vbQuestion=32,vbYes=6;
//Связываемся с пользователем XUser компьютера 404_Popov
UserObj=GetObject("WinNT://404_Popov/XUser,user");
//Формируем строку с информацией о пользователе
SInfo="Информация о пользователе XUser:\n";
SInfo+="Имя: "+UserObj.Name+"\n";
SInfo+="Описание: "+UserObj.Description+"\n";
//Выводим сформированную строку на экран
WScript.Echo(SInfo);
//Создаем объект WshShell
WshShell=WScript.CreateObject("WScript.Shell");
//Запрос на изменение пароля
Res=WshShell.Popup("Изменить пароль у XUser?", 0,
"Администрирование пользователей", vbQuestion+vbYesNo);
if (Res==vbYes) { //Нажата кнопка Да
//Устанавливаем новый пароль
UserObj.SetPassword("NewPassword");
//Сохраняем сделанные изменения
UserObj.SetInfo();
WScript.Echo("Пароль был изменен");
} else WScript.Echo("Вы отказались от изменения пароля");
/************* Конец *********************************************/
Удаление пользователя и группы на рабочей станции
Для удаления созданных с помощью сценариев AddUser.js и AddGroup.js пользователя XUser и группы XGroup мы создадим сценарий DelUserAndGroup.js, который представлен в листинге 11.5.
Для удаления пользователя или группы у вас в системе должны быть назначены права, которыми обладает администратор.
В принципе, удалить пользователя и группу так же просто, как и создать — нужно связаться с объектом Computer
:
ComputerObj = GetObject("WinNT://404_Popov");
и вызвать метод Delete()
, указав в качестве первого параметра класс объекта, который мы хотим удалить, и в качестве второго параметра — имя этого объекта:
//Удаляем пользователя
ComputerObj.Delete("user", UserStr);
Однако здесь могут возникнуть ошибки (например, мы не запускали предварительно сценарий AddUser.js
и у нас на компьютере не зарегистрирован пользователь, которого мы хотим удалить). Поэтому в сценарии DelUserAndGroup.js
предусмотрена обработка исключительных ситуаций с помощью конструкции try…catch
:
IsError=false;
try {
//Удаляем пользователя
ComputerObj.Delete("user", UserStr);
} catch (e) { //Обрабатываем возможные ошибки
if (e != 0) {
//Выводим сообщение об ошибке
IsError=true;
Mess="Ошибка при удалении пользователя "+UserStr+"\nКод ошибки: " + е.number+"\nОписание: "+е.description;
WshShell.Popup(Mess, 0, "Удаление пользователя", vbCritical);
}
}
Как мы видим, если при вызове метода Delete()
произойдет какая-либо ошибка, значение переменной IsError
станет равным true
, а на экран с помощью метода Popup()
объекта WshShell
выведется соответствующее сообщение (рис. 11.3).

Рис. 11.3.Сообщение, формируемое при попытке удаления несуществующего пользователя
Если же удаление прошло успешно (значение переменной IsError равно false), то на экран также выведется соответствующее диалоговое окно (рис. 11.4):
if (!IsError) { //Все в порядке
Mess="Пользователь."+UserStr+" удален";
WshShell.Popup(Mess, 0, "Удаление пользователя", vbInformation);
}

Рис. 11.4.Сообщение об удачном удалении пользователя
/********************************************************************/
/* Имя: DelUserAndGroup.js */
/* Язык: JScript */
/* Описание: Удаление пользователя и группы компьютера */
/********************************************************************/
//Объявляем переменные
var
ComputerObj, //Экземпляр объекта Computer
UserStr = "XUser", //Имя удаляемого пользователя
GroupStr = "XGroup", //Имя удаляемой группы
WshShell; //Объект WshShell
//Инициализируем константы для диалоговых окон
var vbCritical=16,vbInformation=64;
//Связываемся с компьютером 404_Popov
ComputerObj = GetObject("WinNT://404_Popov");
//Создаем объект WshShell
WshShell = WScript.CreateObject("WScript.Shell");
/************* Удаление пользователя ***********************/
IsError=false;
try {
//Удаляем пользователя
ComputerObj.Delete("user", UserStr);
} catch (e) { //Обрабатываем возможные ошибки
if (e != 0) {
//Выводим сообщение об ошибке
IsError=true;
Mess="Ошибка при удалении пользователя "+UserStr+"\nКод ошибки: " + e.number + "\nОписание: " + e.description;
WshShell.Popup(Mess,0,"Удаление пользователя",vbCritical);
}
}
if (!IsError) {
//Все в порядке
Интервал:
Закладка: