Книга: Недокументированные и малоизвестные возможности Windows XP
Выключение, перезагрузка компьютера, завершение сеанса пользователя
Выключение, перезагрузка компьютера, завершение сеанса пользователя
С помощью инструментария WMI можно выключить удаленный или локальный компьютер, перезагрузить его или завершить сеанс текущего пользователя. Рассмотрим пример завершения сеанса текущего пользователя на локальном компьютере (если у вас есть удаленный компьютер, то при подключении к пространству имен вместо точки необходимо указать его имя). Особенность данного примера состоит в другом способе подключения к классу — с помощью базы данных CIMOM.
Листинг 11.5. Завершение сеанса пользователя компьютера
'Подключаемся к пространству имен rootcimv2
set objWMIService = GetObject("winmgmts:" & "{impersonationLevel = impersonate}!.rootcimv2")
'Выполняем SQL-запрос для подключения к классу
set colSoftware = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
'Вызываем метод для завершения сеанса пользователя. Метод для своей
'работы использует один параметр (точнее, два, но второй параметр на данный
'момент не используется) – флаг, указывающий на необходимое действие.
'В нашем случае флаг равен 0, что говорит о необходимости завершения сеанса
'пользователя .Для осуществления возможности перезагрузки или выключения
'компьютера необходимо, чтобы инициирующий перезагрузку процесс обладал
'правом SE_SHUTDOWN_NAME. Остальные значения флага определяются от бита,
'установленного в нем. Биты описаны следующим образом: "Завершение работы",
'"Перезагрузка", "Принудительно", "Питание выключено"
for each objSoftware in colSoftware
objSoftware.Win32Shutdown 0
next
Как правило, администраторы локального компьютера обладают правами на завершение сеанса. Другие же действия по умолчанию возможны от имени системы.
Кроме метода Win32 Shutdown, класс Win32_OperatingSystem описывает еще три метода. Если вызывающий процесс обладает правом SE_SHUTDOWN_NAME, то выполняются следующие действия.
? Reboot — компьютер будет перезагружен. Метод не имеет параметров, но при успешном выполнении возвращает 0.
? Shutdown — компьютер будет выключен. Метод не имеет параметров, но при успешном выполнении возвращает 0.
? SetDateTime — будет установлено системное время компьютера. Данный метод для своей работы требует один параметр, определяющий новое время, которое нужно установить (имеет тип DateTime, имеющий довольно странный формат, например установка параметра равным "00000000000000.000000:000" обнуляет время).
- Включение и выключение SystemRestore для отдельных дисков
- Создание контрольной точки восстановления
- Энумерация содержимого ветви реестра
- Создание, завершение и просмотр учетной записи процесса
- Выключение, перезагрузка компьютера, завершение сеанса пользователя
- Получение сведений об установленных на компьютере программах
- Получение сведений о компьютере
- Другие классы и функции пространств имен WMI
- Стандартные сценарии сервера сценариев
- Листинг 10.1. (simpleid.c) Отображение идентификаторов пользователя и группы
- Сохранение информации о пользователях при миграции
- Что делать, если при установке принтера появляется сообщение Невозможно завершение операции. Подсистема печати недоступн...
- Реальный (RID) и эффективный (EUID) идентификаторы пользователя
- 12. Лекция: Создание приложений с графическим интерфейсом пользователя.
- Создание пользователя и группы на рабочей станции
- Где написано сетевое имя компьютера?
- Завершение транзакций
- 1.1 Режимы ядра и пользователя Windows
- Управление пользователями и разрешениями узла
- Информатика: аппаратные средства персонального компьютера
- Задняя панель компьютера. Подключение нового компьютера