Удалённое выключение систем Windows Server 2003 и Windows Server 2008.
Иногда нужно с рабочей станции под управлением Windows 7 удалённо выключить сервера под операционной системой Windows 2003 и Windows 2008, как в домене, так и нет. Для выполнения этой задачи можно прибегнуть к возможностям WMI, задействовав инструмент wmic.
Запустим командную строку с правами Администратора, в итоге у нас должно быть так, как указано на скриншоте ниже:
Далее следует следующая строка и согласно представленному скриншоту ниже выбирается код выключения или перезагрузки:
Учётная запись при помощи которой производим подключение к удалённой системы должна быть с правами Администратора.
Если удалённая машина не в домене:
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» call win32shutdown 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
Method execution successful.
instance of __PARAMETERS
ReturnValue = 0; — Код успешного выполнения команды
Проверим по системным логам, из-за чего произошло выключение сервера
Открываем логи системы, «Start» – «Control Panel» – «Administrative Tools» – оснастка «Event Viewer», далее открываем «Windows Logs» – «System» и через элемент “Filter Current Log…” отсортировываем по событию: Event ID = 1074
здесь будет указано: ->
Какой процесс инициализировал выключение сервера
От имени какой учётной записи
Код события зафиксировавшее выключение
См. скриншот для наглядного понимания.
Пример, выключить систему под управлением 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.
instance of __PARAMETERS
ReturnValue = 0; — Код успешного выполнения команды
Проверим по системным логам, из-за чего произошло выключение сервера ,
Открываем логи системы, «Start» – «Control Panel» – «Administrative Tools» – оснастка «Event Viewer», далее открываем «Windows Logs» – «System» и через элемент “View” – “Filter…”
отсортировываем по событию: Event ID = 1074
Как видите, сообщения с Server 2008 и Server 2003 похожи, представлена учётная запись от имени которой, произошло выключение сервера, тип события (в данном случае poweroff) и процесс который инициализировал выключение: в Server 2008 – это wmiprvse.exe, в Server 2003 — это Winlogon.exe, но сути не меняет. Вот собственно и всё, цель достигнута и расписано, как надо делать.
One comment
Отличное решение! Без дополнительных утилит и скриптов, одной строкой, как раз то, что я искал для отключения нескольких серваков. Спасибо!
Comments are closed.
Используйте прокси ((заблокировано роскомнадзором, используйте vpn или proxy)) при использовании Telegram клиента:
Поблагодари автора и новые статьи
будут появляться чаще 🙂
Карта МКБ: 4432-7300-2472-8059
Yandex-деньги: 41001520055047
Большое спасибо тем кто благодарит автора за практические заметки небольшими пожертвованиями. С уважением, Олло Александр aka ekzorchik.
Автоматическое выключение Windows 2003 Server
Полазив по Google, и ничего толкового не найдя, я решил самостоятельно реализовать решение данной задачи.
Думаю нужно сделать небольшое пояснение, под «ничего толкового» я имел ввиду то, что соответствовало моим требования. Речь идет о том, чтобы на сервере было установлено как можно меньше ПО, а установленное должно быть проверенно. Поэтому программы «автовыключатели» я даже не рассматривал как вариант. В таком случае остается два варианта решения проблемы батник или язык программирования высокого уровня.
Написать выключалку на Delphi или C# не составляет труда, но в батнике можно обойтись одной строкой. Поэтому останавливаемся на батника.
Мануалы в руки и в перед! Для выключения есть команда shutdown но есть небольшая разница в использовании этой команды под Windows XP и Windows 2003 server, а точнее в параметрах для выполнения данной программы.
Я решил сразу представить строку, а потом разобрать ее: shutdown /s /d 1:1 /f shutdown – сама команда на выключение
/s – параметр указывающий, что мы хотим выключить ПК
/d 1:1 – параметр, указывающий код причины выключения
/f – параметр, указывающий на принудительное завершения программ при выключении. Это необходимо так как некоторые службы чувствительны к случайным выключениям или же у вас просто не выключится ПК, а будет ждать участия пользователя.
Весь батник выглядит вот так: @echo off
shutdown /s /d 1:1 /f
Так, батник у нас есть, теперь осталось сделать чтобы батник выполнялся в заданное время. Идем «Пуск» -> «Все программы» -> «Стандартные» -> «Служебные» -> «Назначение задания»:
В ходе опроса мастером необходимо указать программу, которую необходимо выполнять. В нашем случае это батник, указываем как часто выполнять данное действие:
Теперь указываем от имени какого пользователя необходимо выполнить данную программу:
И вот в назначенное время:
Windows 2003 server завершение работы
Сообщения: 4904
Благодарности: 495
——-
Если сообщение оказалось полезным, нажмите, пожалуйста, соответствующую кнопку.
продолжительность сверхурочной работы не должна превышать для каждого работника 4 часов в течение двух дней подряд и 120 часов в год. |
Можно, например, написать сценарий, предварительно опрашивающий станции и на основании результатов опроса «принимающий решение» о возможности выключения сервера. » |