В случае утвердительного ответа пароль изменяется с помощью метода SetPassword()
объекта User
, после чего все произведенные изменения сохраняются на рабочей станции с помощью метода SetInfo()
:
if (Res==vbYes) {
//Нажата кнопка "Да"
//Устанавливаем новый пароль
UserObj.SetPassword("NewPassword");
//Сохраняем сделанные изменения
UserObj.SetInfо();
WScript.Echo("Пароль был изменен");
}
Листинг 11.4. Вывод информации о пользователе компьютера и смена его пароля
/********************************************************************/
/* Имя: 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.Сообщение об удачном удалении пользователя
Листинг 11.5. Удаление пользователя и группы на рабочей станции
/********************************************************************/
Читать дальше