Рис. 11.2. Информация о локальном пользователе XUser
Для получения этой информации мы производим связывание с нужным пользователем, т.е. создаем экземпляр UserObj
объекта User
и читаем данные из полей этого объекта:
//Связываемся с пользователем XUser компьютера 404_Popov
UserObj=GetObject('WinNT://404_Popov/XUser, user');
//Формируем строку с информацией о пользователе
SInfо='Информация о пользователе XUser:
';
SInfо+='Имя: '+UserObj.Name+'
';
SInfо+='Описание: '+UserObj.Description+'
';
//Выводим сформированную строку на экран
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:
';
SInfo+='Имя: '+UserObj.Name+'
';
SInfo+='Описание: '+UserObj.Description+'
';
//Выводим сформированную строку на экран
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+'
Код ошибки: ' + е.number +'
Описание: '+е.description;