Книга: Недокументированные и малоизвестные возможности 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" обнуляет время).

Оглавление книги


Генерация: 1.975. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз