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+'
Код ошибки: ' + 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);
}
/************* Конец *********************************************/
Список всех групп на рабочей станции
Принцип формирования списка всех групп рабочей станции остается тем же, что и для рассмотренного выше списка всех доступных доменов локальной сети, однако первоначальное связывание нужно производить не с корневым объектом класса 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 созданы группы:
';
После этого в цикле while
из коллекции ComputerObj
выбираются лишь объекты класса Group
, т.е. те объекты, у которых в поле Class
записана