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

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

Для удаления созданных с помощью сценариев 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+" Код ошибки: " + е.number+" Описание: "+е.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. Удаление пользователя и группы на рабочей станции

/********************************************************************/

/* Имя: 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+" Код ошибки: " + e.number + " Описание: " + e.description;

  WshShell.Popup(Mess,0,"Удаление пользователя",vbCritical);

 }

}

if (!IsError)  {

 //Все в порядке

 Mess="Пользователь "+UserStr+" удален";

 WshShell.Popup(Mess,0,"Удаление пользователя",vbInformation);

}

/*************  Удаление группы  ***********************/ 

IsError=false;

try  {

 //Удаляем группу

 ComputerObj.Delete("group", GroupStr);

} catch (e) {  //Обрабатываем возможные ошибки

 if (e != 0) {

  //Выводим сообщение об ошибке

  IsError=true;

  Mess="Ошибка при удалении группы "+GroupStr+" Код ошибки: " + e.number+" Описание: " + e.description;

  WshShell.Popup(Mess,0,"Удаление группы",vbCritical);

 }

}

if (!IsError)  {

 //Все в порядке

 Mess="Группа "+GroupStr+" удалена";

 WshShell.Popup(Mess,0,"Удаление группы",vbInformation);

}

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