Удалённое выключение систем Windows Server 2003 и Windows Server 2008.

Posted by

Иногда нужно с рабочей станции под управлением удалённо выключить сервера под операционной системой Windows 2003 и Windows 2008, как в домене, так и нет. Для выполнения этой задачи можно прибегнуть к возможностям WMI, задействовав инструмент .

Запустим командную строку с правами Администратора, в итоге у нас должно быть так, как указано на скриншоте ниже:

Запущённая командная строка с правами Администратора.

 

Далее следует следующая строка и согласно представленному скриншоту ниже выбирается код выключения или перезагрузки:

Учётная запись при помощи которой производим подключение к  удалённой системы должна быть с правами Администратора.

Если удалённая машина не в домене:

C:\Users\ekzorchik>ping -n 3 10.0.2.21>nul&wmic /node:»10.0.2.21″ /user:»ekzorchik» /password:»Aa1234567″ os where primary=»true» 5

 

Если удалённая машина в домене:

C:\Users\ekzorchik>ping -n 3 10.0.2.21>nul&wmic /node:»10.0.2.21″ /user:»polygon.local\ekzorchik» /password:»Aa1234567″ os where primary=»true» call win32shutdown 5

Коды для действий с удалённой системой.

 

 

 

 

 

 

 

 

 

Пример, выключить домен контроллер под управление Windows Server 2008 R2 Std:

Данный пример слишком некорректен и на практике не стоит его применять.

C:\Users\ekzorchik>ping -n 10.0.2.15>nul&wmic /node:»10.0.2.15″ /user:»polygon.local\ekzorchik» /password:”Aa1234567″ os where primary=»true» call win32shutdown  5

Executing (\\DC1\ROOT\CIMV2:Win32_OperatingSystem=@)->win32shutdown()

Method execution successful.

Out Parameters:

instance of __PARAMETERS

{

ReturnValue = 0; — Код успешного выполнения команды

};

Проверим по системным логам, из-за чего произошло выключение сервера

Открываем логи системы, «Start» – «Control Panel» – «Administrative Tools» – оснастка «Event Viewer», далее открываем «Windows Logs» – «System» и через элемент “Filter Current Log…” отсортировываем по событию: Event ID = 1074

На Windows Server 2008 сортируем логи по коду выключения.

 

здесь будет указано: ->

Какой процесс инициализировал выключение сервера

От имени какой учётной записи

Код события зафиксировавшее выключение

Время выключения.

См. скриншот для наглядного понимания.

Технические данные по событию выключения системы.

 

Пример, выключить систему под управлением Windows Server 2003 Ent SP2:

C:\Users\ekzorchik>ping -n 10.0.2.21>nul&wmic /node:»10.0.2.21″ /user:»polygon.local\ekzorchik» /password:»Aa1234567 os where primary=»true» call win32shutdown  5

Executing (\\TSERVER\ROOT\CIMV2:Win32_OperatingSystem.Name=»Microsoft Windows Server 2003 Enterprise Edition|C:\\WINDOWS|\\Device\\Harddisk0\\Partition1″)->win32shutdown()

Method execution successful.

Out Parameters:

instance of __PARAMETERS

{

ReturnValue = 0;  — Код успешного выполнения команды

 

};

Проверим по системным логам, из-за чего произошло выключение сервера,

Открываем логи системы, «Start» – «Control Panel» – «Administrative Tools» – оснастка «Event Viewer», далее открываем «Windows Logs» – «System» и через элемент “View” – “Filter…

На Windows Server 2003 сортируем логи по коду выключения.

 

 

 

отсортировываем по событию: Event ID = 1074

Технические данные лога в системе Windows Server 2003.

 

 

 

 

 

 

 

Как видите, сообщения с Server 2008 и Server 2003 похожи, представлена учётная запись от имени которой, произошло выключение сервера, тип события (в данном случае poweroff) и процесс который инициализировал выключение: в Server 2008 – это wmiprvse.exe, в Server 2003 —  это Winlogon.exe, но сути не меняет.  Вот собственно и всё, цель достигнута и расписано, как надо делать.

One comment

  1. Отличное решение! Без дополнительных утилит и скриптов, одной строкой, как раз то, что я искал для отключения нескольких серваков. Спасибо!

Leave a Reply

Ваш e-mail не будет опубликован. Обязательные поля помечены *

тринадцать − одиннадцать =