Андрей Попов - Windows Script Host для Windows 2000/XP
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+"nКод ошибки: " + e.number + "nОписание: " + 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+"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);
Листинг 11.6. Вывод на экран имен всех локальных групп заданной рабочей станции/********************************************************************/
/* РРјСЏ: 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);
/************* Конец *********************************************/