Удаленно выключить сервер windows

Удалённое выключение систем 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, но сути не меняет. Вот собственно и всё, цель достигнута и расписано, как надо делать.

Читайте также:  Тех характеристики mac os

One comment

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

Comments are closed.

Используйте прокси ((заблокировано роскомнадзором, используйте vpn или proxy)) при использовании Telegram клиента:

Поблагодари автора и новые статьи

будут появляться чаще 🙂

Карта МКБ: 4432-7300-2472-8059
Yandex-деньги: 41001520055047

Большое спасибо тем кто благодарит автора за практические заметки небольшими пожертвованиями. С уважением, Олло Александр aka ekzorchik.

Удаленно выключить сервер windows

Общие обсуждения

Сервер выключается удаленно только от учетной записи Администратор.Любой другой учетной записью,входящей в группу Администраторы сервер выключить не удается. Использую

runas /noprofile /netonly /user:192.168.1.1\Пользователь shutdown /s /m \\192.168.1.1 /f /t 60

Пользователь добавлен в «Политику локального компьютера-Конфигурация компьютера-Конфигурация Windows-Параметры безопасности-Локальные политики-Назначение прав пользователей»

1 Завершение работы системы

2Принудительное удаленное завершение работы

Как напрямую, так и косвенно из-за группы Администраторы

Данной проблемы нет ни на Windows Server 2003 R2 ни на Windows Server 2008, то есть выключается без проблем

Подскажите как удаленно выключить сервер от учетной записи НЕ «Администратор»

  • Изменен тип Petko Krushev Microsoft contingent staff, Moderator 13 марта 2013 г. 12:43 Нет действий

Все ответы

Сталкивался с подобными фокусами при подключении к сетевым папкам при включённом UAC. При отключенном — всё работало.

Но отключать его советовать не буду.

Убедитесь, что локальная политика не перезаписывается доменной.

MCITP: Enterprise Administrator; MCT; Microsoft Security Trusted Advisor; CCNA; CCSI

Тогда бы и локальный администратор не имел бы доступа, ведь они входят в одинаковые группы.

Причем если добавить в группу локальных админов доменного пользователя, то он может выключить компьютер, а если локального, то нет.

TestSRV: Отказано в доступе.(5)

Хотя и того и другого я включил в одну и ту же группу локальных админов.

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

  1. DCOMCnfg.exe -> «Component Services» -> «Computers» -> «My Computer» Properties -> «COM Security» . В разделе Launch and Activation Permissions выбрать Edit Limits. Предоставить необходимому пользователю или группе права «Remote Launch» и «Remote Activation»
  2. WMIMgmt.msc -> «Properties» -> «Security» -> «Root\CIMv2» -> «Security». Предоставить необходимому пользователю или группе «Shutdown» право «Remote Enable».
  3. Ну и, соответственно, того же пользователя или группу нужно прописать в политиках: GPEdit.msc -> «Computer Configuration» -> «Windows Settings» -> «Security Settings» -> «Local Policies» -> «User Right Assigment» ->«Shutdown the system» и «Force shutdown from a remote system»

После этого всё должно работать.

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

  1. DCOMCnfg.exe -> «Component Services» -> «Computers» -> «My Computer» Properties -> «COM Security» . В разделе Launch and Activation Permissions выбрать Edit Limits. Предоставить необходимому пользователю или группе права «Remote Launch» и «Remote Activation»
  2. WMIMgmt.msc -> «Properties» -> «Security» -> «Root\CIMv2» -> «Security». Предоставить необходимому пользователю или группе «Shutdown» право «Remote Enable».
  3. Ну и, соответственно, того же пользователя или группу нужно прописать в политиках: GPEdit.msc -> «Computer Configuration» -> «Windows Settings» -> «Security Settings» -> «Local Policies» -> «User Right Assigment» ->«Shutdown the system» и «Force shutdown from a remote system»
Читайте также:  Последнее обновление mac os 2021

После этого всё должно работать.

и ничего после этого не работает, везде уже для «Администраторы» стоят галки, но добавил пользователя еще явно, везде поставил права, не помогло.

Данная проблема также на 7ке и 8ке наблюдается, у кого-нибудь есть решение для локальных администраторов?

ЗЫ 4 дня я думал что я дурак. оказывается нет

Как выключить удаленный windows и linux сервер

Начнем с самого сложного. На практике реализовать надежный способ выключения windows машин по сети для меня оказалось сложнее, чем linux. Методов и подходов к решению данной задачи много. Я пробовал разные варианты и остановился на одном, который мне показался самым надежным, он сработал без проблем во всех случаях во время тестирования.

Обязательным условием удаленного выключения сервера является сетевой доступ к нему по rdp. Вы можете находится в локальной сети с ним, подключиться по vpn или пробросить rdp соединение редиректом со шлюза. Не важно, главное попасть в систему по rdp.

Принцип работы удаленного отключения следующий:

  1. На компьютере или сервере создается пользователь, которому будет разрешено подключаться по rdp и завершать работу сервера.
  2. В автозагрузке этого пользователя будет скрипт для завершения работы.
  3. Пользователям, которые будут удаленно выключать сервер, дается специально подготовленный rdp клиент, который без всяких запросов будет подключаться нужным пользователем, у которого будет срабатывать скрипт на завершение работы.

Все достаточно просто, но на каждом этапе я сталкивался с проблемами, которые требовали не тривиального решения. Но обо все по порядку.

Итак, идем на север и создаем там простой bat файл следующего содержания:

Сохраняем файл и создаем пользователя, под которым будем выключать сервер. Не забудьте добавить этому пользователю разрешение подключаться по rdp. Если вы выключаете компьютер с десктопной системой, то прав обычного пользователя достаточно. Если же вам надо погасить Windows Server, то пользователя нужно либо сделать админа, либо дать ему права на разрешение выключение сервера через локальную политику безопасности. Живет эта политика по адресу — >параметры безопасности — >локальные политики —> назначение прав пользователей —> завершение работы системы.

Вот тут я напоролся на первые неприятности. Я назвал свой скрипт shutdown.bat и очень долго не мог понять, почему он не срабатывает. При вводе команды shutdown с параметрами в консоли все отлично работало, но скрипт не запускался. Оказывается, его нельзя называть таким именем. После того, как переименовал в shut.bat, все отлично заработало. Какая-то нелепая загвоздка, но мне пришлось потратить немало времени, пока я разобрался, в чем тут дело.

Читайте также:  Как с папок создать образ iso windows

Дальше заходим нашим новым пользователем, чтобы создались стандартные папки профиля и кладем скрипт автовыключения сервера ему в автозагрузку — C:\Users\shut-user\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup.

Теперь нам нужно настроить автоматический вход пользователя по rdp, чтобы выполнить удаленное завершение работы. Причем пользователь должен заходить на сервер без запроса имени и пароля. Штатными средствами rdp клиента windows это сделать невозможно. Даже если вы сохраните параметры, то при переносе настроек на другой компьютер нужно будет снова вводить пароль. Мне это не подходило.

Я пробовал использовать старую портированную версию rdp 5.2. Это последняя версия, где пароль в зашифрованном виде можно было хранить в файле настроек. Но при переносе этого файла на другой компьютер, все равно выскакивало окно с вводом пароля. Добиться полного автоматизма не получалось.

Но решение было найдено. Существует любопытный проект Remote Desktop Plus, который является надстройкой над rdp. С помощью этой надстройки можно передать параметры в rdp через командную строку, в том числе и имя пользователя с паролем. Мне это полностью подходит. Скачиваем файлик rdp.exe либо с сайта автора проекта, либо с моего. Я скопировал на всякий случай эту очень полезную утилиту. Кладем его в папку и создаем в этой же папке rem-shut.bat файл следующего содержания:

10.10.5.14 адрес удаленного сервера
shut-user пользователь rdp от имени которого будет происходить выключение
pass123 пароль пользователя
640 480 параметры разрешения экрана, можно не указывать

Всего этого достаточно, чтобы выполнить дистанционное завершение работы на windows сервере. Пользователю необходимо передать 2 файла:

Важно, чтобы они лежали в одной папке. При запуске батника произойдет подключение rdp пользователя и выполнится скрипт завершения работы. Задача выполнена.

Удаленное выключение linux сервера

Здесь все оказалось значительно проще. Сразу же было найдено рабочее решение, которое позволяет без проблем удаленно выключить любой linux сервер. Задача решается стандартными средствами putty. Эту программу можно запускать из командной строки с параметрами. В качестве параметров можно указать файл с командами для выполнения, адрес сервера, пользователя и пароль.

Подготовим все необходимое. Сначала создаем простой текстовый документ shutdown.txt следующего содержания:

Дальше создаем bat файл serv-rem-shut.bat с таким содержимым:

shutdown.txt текстовый файл с командой на отключение
22 номер порта ssh
root имя пользователя, от которого будет выполняться команда на удаленное выключение, лучше создать отдельного
rootpass пароль этого пользователя
10.10.5.15 адрес linux сервера

Передаем пользователю 3 файла, сложенные в одну папку:

Оцените статью