удаленное выключение компьютера по сети

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

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

Дистанционное выключение Windows сервера

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

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

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

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

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

user shutdown

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

Теперь нам нужно настроить автоматический вход пользователя по 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 файла, сложенные в одну папку:

Теперь при запуске скрипта serv-rem-shut.bat серверу по сети будет отправлена консольная команда на завершение работы. При этом не будет задано никаких вопросов. Сервер просто молча выключится.

Заключение

Вот такие нехитрые способы были мной придуманы и реализованы. Тут еще важно обеспечить доступ к локальной сети, в которой живут серверы. В моем случае openvpn позволяет выполнить удаленное выключение компьютеров даже через интернет.

Уверен, существует множество других возможностей погасить сервер удаленно. Буду рад, если в комментариях со мной кто-нибудь поделится своими идеями и опытом на этот счет.

Источник

Как удаленно выключить компьютер с Windows, Linux и Mac?

3dd0d40f a9d2 47ef 9f98

Бывают случаи, когда компьютер, работающий под управлением операционной системы Windows, Linux и Mac нужно выключить не сразу, а по истечению какого-то времени: загрузка торрента, обновление программы или операционной системы, завершение диагностики и т д. При этом, чтобы удаленно выключить компьютер с Windows или любой другой операционной системой, нужно изначально настроить его. Поэтому предлагаем рассмотреть способы, как осуществить удаленное выключение устройства.

Методы удаленного выключения ПК с Windows 7, 8/8.1, 10

Удаленно выключить ПК с Windows можно несколькими способами: с помощью командной строки и с помощью службы удаленного реестра. В первом случае нужно запустить консоль с правами Администратора и ввести shutdown /i.

6ee96e87 d868 4386 9068 5dbdb6261ef0 640x0 resize w

Откроется окно утилиты Remote Shutdown. Нажимаем на кнопку «Добавить».

a2968821 1a5f 4953 a2ea fb978a0383d2 560x0 resize w

Вводим имя компьютера и жмем «Ок».

9c1b91e6 5f9b 4c73 b8e5 2fb0180d38eb 560x0 resize w

Теперь выбираем операцию: перезагрузка, выключение или неожиданное завершение.

11860886 bd5a 415c b2e8 0b0779e79bb9 560x0 resize w

В причинах выбираем «Другое (запланированное)», а также указываем комментарий. Без комментария кнопка «ОК» не будет активной. Кликаем «Ок».

33fdb006 2956 4aea bdb5 86cabc3e44ff 560x0 resize w

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

9f4abaef fcb8 4ebe b11c 89217f5defb3 560x0 resize w

d971507c 9a9a 45b3 aa5d fa92c6a7087e 760x0 resize w

94b55047 0833 4e0c 891f 31b5e078e90a 760x0 resize w

e22f2291 7e6a 4208 a5f8 1fc4666d1640 760x0 resize w

Как удаленно выключить ПК с Linux?

Устройство с операционной системой Linux можно удаленно выключить несколькими способами.

Первый способ – использование Терминала, аналога командной строки с Windows.

Также, если ваш ПК подключен к серверу, то удаленно выключить компьютер с Linux можно следующим образом:

169c2021 0e29 4725 a2a9 04af9d668c0a 760x0 resize w

Теперь, при запуске скрипта serv-rem-shut.bat, серверу по сети будет отправлена команда на завершение работы. При этом система не выдаст никаких вопросов. Сервер просто молча выключится.

Как удаленно выключить ПК с Mac?

Для того, чтобы удаленно выключить Mac, стоит выполнить следующие действия:

422502a8 2e8f 4de2 90c6 6bd00692c041 560x0 resize w

Если же запустить Терминал, то командой sudo halt можно моментально выключить устройство. Однако, как в первом, так и во втором случае, нужно ввести пароль к учетной записи Mac.

В сети можно найти еще способы, как удаленно отключить устройства с Windows, Linux и Mac. Однако мы привели только безопасные способы, при применении которых вы не нарушите системные настройки и не повредите системные файлы.

Источник

Как удаленно выключить компьютер в локальной сети

Будем выключать ПК пользователя в локальной сети.

off 0

В Windows 7 данная процедура предусмотрена.

Как выключить свой ПК с помощью командной строки?

Выключение компьютера через командную строку производится с помощью команды shutdown. Команда shutdown может принимать такие параметры:

Например, при вводе команды Shutdown /s /t 60 — мы получим выключение ПК через 60 сек.

off 1

Можно из этой красоты сделать ярлык и разместить его на рабочем столе.

off 2

Называем ярлык как нам нужно

off 3

Теперь мы можем выключать компьютер, просто кликнув по ярлыку.

ВАЖНО: можно отменить выключение (при наличии задержки), использовав

команду Shutdown /a

adv

Как выключить ПК в локальной сети с помощью командной строки?

Практически точно также 🙂

Можно использовать IP компьютера в локальной сети, например

Как назначить ПК в локальной сети постоянный IP — можно прочитать в статье: Как установить постоянный IP-адрес для устройства

Вот справка Microsoft

Пробуем — не работает — «Отказано в доступе»

Почему? Windows 7 защищает пользователя 🙂

off 5

Необходимо на том ПК (который будем выключать дистанционно) — это разрешить.

Откройте окно «Выполнить», нажав комбинацию клавиш «Win+R» на компьютере, которым вы хотите управлять. Введите «gpedit.msc» (без кавычек) и подтвердите нажатием «Enter».

В открывшемся окне в разделе «Конфигурация компьютера» перейдите к строке «Конфигурация Windows» и нажмите на строке «Параметры безопасности».

off 4

В правой части зайдите в «Локальные политики | Назначение прав пользователя» и дважды щелкните по «Принудительное удаленное завершение работы». Внизу нажмите на кнопку «Добавить пользователя или группу…» и в поле добавления имен напишите «Все» без кавычек.

Подтвердите все изменения, нажав «ОК». Компьютер необходимо перезагрузить.

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

Вы можете сохранить ссылку на эту страницу себе на компьютер в виде htm файла

Вы будете видеть наш сайт у себя в ленте

Нажмите «Нравится» или напишите сообщение

Источник

Записки IT специалиста

Технический блог специалистов ООО»Интерфейс»

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

rdp shutdown 001В клиентских ОС ситуация принципиально иная, даже локальный администратор не имеет возможности выключить или перезагрузить компьютер.

rdp shutdown 002Несмотря на кажущуюся нелогичность, определенный смысл в таком поведении есть. Серверные ОС администрируют профессионалы (как минимум в теории), которые должны отдавать себе отчет о возможных последствиях своих действий. С другой стороны, удаленно выключив ПК так просто включить его уже не получится, в большинстве случаев потребуется физическое присутствие, поэтому решение убрать подобную функцию от простых пользователей выглядит вполне обоснованно. Администраторы, следуя этой логике, должны уметь управлять питанием и иными способами.

Графическая оболочка

На самом деле «проблема» решается не просто, а очень просто. Выйдя на рабочий стол достаточно нажать Alt+F4 чтобы получить стандартный диалог завершения работы.

rdp shutdown 003Однако у этого способа есть один существенный недостаток. Очень часто выключить или перезагрузить компьютер мешают некоторые приложения, например, несохраненный документ. Подобная картина, на наш взгляд, знакома каждому.

Командная строка

rdp shutdown 005Разберем ключи команды подробнее:

Утилита PsShutdown от Sysinternals

а для перезагрузки:

Поясним используемые ключи:

Если вместо ключа -k использовать для выключения ключ -s, то система завершит работу без выключения питания, старожилы должны хорошо помнить:

rdp shutdown 006Кроме того, данная утилита позволяет управлять питанием других ПК по сети. Если честно, то работать по сети умеет и штатная утилита shutdown, достаточно указать ключ:

PsShutdown данного недостатка лишена и позволяет указывать учетные данные для подключения к удаленному ПК, например:

Данная команда выполнит перезагрузку удаленного ПК computer использовав для подключения имя username и пароль password. Следует помнить, что указанный вами пользователь должен иметь права доступа к административному ресурсу ADMIN$. В среде Active Directory этим правом обладает администратор домена, а вот в одноранговой сети могут возникнуть затруднения.

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

rdp shutdown 007 thumb 600xauto 6626Это свидетельствует о том, что данный пользователь не имеет доступа к ресурсу ADMIN$. Чтобы его включить нужно выполнить два условия: включить общий доступ к файлам и принтерам

rdp shutdown 008 thumb 600xauto 6629А затем в ветвь реестра

добавить параметр типа DWORD с именем

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

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

rdp shutdown 009 thumb 600xauto 6632Как видим в этот раз команда отработала успешно.

PowerShell

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

Для выключения используйте команду:

А для перезагрузки:

Ключ -Force в данном случае аналогичен ключу -f команды shutdown и предполагает принудительное завершение работы мешающих выключению приложений.

Также PowerShell можно использовать для управления питанием по сети, например, можно выключить удаленный ПК командой:

При этом работа через PowerShell более безопасна, так как пароль не вводится открытым текстом и не остается в истории команд. Для аутентификации используются стандартные механизмы ОС.

Источник

Удалённое управление питанием и перезагрузкой компьютера, при помощи внешнего девайса

image loader

Каждый пользователь компьютера сталкивался хотя бы раз в своей жизни с такой ситуацией: ты ушёл к себе на работу, почти доехал до неё и вдруг вспомнил,- что забыл взять со своего личного компьютера какую-то очень важную вещь.

Ехать обратно — опоздаешь на работу. А ведь ситуация может развиваться и гораздо более драматично: допустим, человек поехал куда-то далеко за рубеж, в отпуск, и там ему приходит важный звонок, по результатам которого ему необходимо передать своему визави,- определённые документы. А документы остались дома! А дом находится за границей!

Или вот ещё такая беда: ваш персональный компьютер является мощной графической станцией, на которой установлено множество тяжёлых программ для работы с графикой, программными продуктами. А вы перемещаетесь по городу, имея в руках всего лишь «тонкий» клиент, в виде ноутбука…

Из этого описания становится понятно, что «тонкий» клиент не обладает соответствующей производительностью, для запуска множества высокопрофессиональных программ и проектов. Да и если даже он у вас достаточно мощный, — это в принципе неудобно, каждый раз синхронизировать проекты с «тонким» клиентом. Как быть в описанных выше ситуациях — мы и поговорим в этой статье.

На самом деле, указанная проблема очень легко решается: установкой на ваш персональный компьютер системы удалённого включения/выключения и перезагрузки. Этот подход позволит всегда иметь под рукой всю мощь вашей домашней машины и все необходимые документы, и проекты, хранящиеся на ней.

До начала описания своей разработки, хочу сказать, что конечно, она не является единственно возможным способом для удалённого включения выключенного компьютера. Например, хорошо известна технология Wake-on-LAN. Суть этой технологии заключается в том, что она позволяет включить выключенный компьютер, отправкой специального пакета на его MAC-адрес.

Сетевой адаптер компьютера, поддерживающего Wake-on-LAN, находится в этот момент в режиме пониженного потребления и анализирует все пакеты на него. Если одним из поступающих пакетов окажется так называемый magic packet, сетевой адаптер выдаст сигнал на включение питания компьютера.

Согласно wiki: Magic packet — это специальная последовательность байтов, которую для нормального прохождения по локальным сетям можно вставить в пакеты транспортного уровня, не требующие установки соединения (например, протокол UDP или устаревший IPX). Обычно для Wake-on-LAN пакеты протоколов верхнего уровня рассылают широковещательно, так как в случае динамического присвоения адресов неизвестно, какой IP-адрес соответствует какому MAC-адресу. Однако, для корректного прохождения через маршрутизатор, запрещающий широковещательные пакеты, можно послать пакет по какому-то определённому адресу.

Из минусов данной технологии стоит отметить, что она:

В любом случае, я подумал, что создание девайса, о котором пойдёт дальше речь, будет интересной затеей, так как:

▍ Итак, приступим.

Некоторое время назад, решение указанной проблемы было достаточно затруднённым: необходимо было обладать достаточно высоким уровнем профессионализма и наличием глубоких знаний в области электроники, чтобы собрать требуемое для решения этой задачи устройство.

С появлением платформы Arduino, данная задача существенно облегчилась, однако, она продолжала оставаться достаточно неудобной в своей реализации, ввиду наличия клубка проводов, соединяющих требуемые компоненты, либо, ввиду необходимости покупки соответствующих wi-fi шилдов.

В текущее же время, этот вопрос ещё более облегчился, из-за появления платы espressif esp32. Для тех, кто не знает, это двухъядерный модуль, содержащий множество необходимых для любого самодельщика свойств. В рамках же данного проекта, нас будет интересовать наличие встроенного wi-fi модуля.

Использование этой платы позволит нам легко и просто построить требуемое устройство, не загромождая всё проводами и за достаточно малую цену. Рискну предположить, что суммарная стоимость компонентов нашего решения не превысит 350-400 руб.

Для того, чтобы создать устройство, нам понадобится всего лишь четыре резистора, два мосфет- транзистора и плата esp32.

По набору компонентов, искушённый читатель сразу понял, что мы будем делать: с помощью esp32 мы будем управлять ключами на основе мосфет-транзисторов.

hhmkdzjs9nwptzv a ghu4q27oq

При использовании мосфет-транзистора нужно иметь в виду один нюанс: транзистор должен открыться полностью, если этого не произойдёт, то он в работе будет сильно греться и будет фактически, работать в роли резистора.

В данном конкретном случае, это, конечно, не так важно, так как мы будем коммутировать достаточно малые токи кнопки включения/выключения и reset-a.

Конечно, можно не напрягаться и взять релейные модули для ардуино:

vlftftuavuqi7ejmbe a0 5i uo

Но это не наш путь и вот почему: а) щелчки реле; б) наклёп контактов; в) высокое энергопотребление релейным модулем.

Оно нам надо? Нет, оно нам не надо 🙂

Так как мы хотим сделать «всё красиво» — мы будем использовать специальные мосфеты с логическим уровнем.

В рамках данного проекта, я выбрал мосфет-транзистор IRLZ44NPBF. У него порог срабатывания от 2 Вольт. То, что надо.

Как собрать ключ на мосфете — можно почитать тут.

По поводу конкретных силовых исполнительных устройств более-менее всё понятно. Однако нам ведь нужно ещё и каким-то образом «рулить» esp32 внешнего интернета!

То есть, задача в общем виде представляется следующей: некий интерфейс из внешнего интернета, зная IP адрес esp32, может отдавать ей команды.

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

Да, вы скажете, что IP на самом деле не меняется, он может поменяться, только если кто-нибудь из домашних тоже подключится к сети, в тот момент, пока esp32 перезагружается, и ей придётся взять другой свободный IP.

Как бы там ни было, но все эти частности не важны, так как данный вопрос можно решить намного проще, чем выяснять какой текущий IP у платы и каким образом его сообщить во внешний интернет: для этого мы будем использовать протокол mqtt. Для тех, кто не сталкивался, вкратце можно сказать, что протокол предназначен для интернета вещей, «умного» дома и не только.

Использование протокола позволяет с лёгкостью обойти проблему прохода за роутер (тут следует сделать оговорку, что мы делаем допущение, что большая часть пользователей интернета, которая выходит в сеть, используя персональные компьютеры, имеют дома wi-fi точку доступа в виде роутера).

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

Значение отправляемых цифр:

0 — «выключить компьютер»;
1 — «включить компьютер»;
2 — «перезагрузить компьютер»;

После того, как сообщение получено платой, она выполняет определённые действия, и отчитывается в другом топике, на который, в свою очередь, подписан смартфон, с которого мы отправили задание. Таким образом, владелец смартфона узнает о том, что плата получила задание и выполнила его.

Как работать с клиентом: при запуске указанного выше mqtt-клиента — мы видим вот это окно. Ничего в нём не меняем, жмём кнопочку «Connect»:

cjvcjft4hkzjmtg1omuhosyfpou
Далее, появится следующее окно, где мы подписываемся на топик, в котором esp32 оставит сообщение о выполнении задания. Для этого жмём Add new topic subscription:

he27m7s0zqmd28fhitlvdytdqyw
Вводим топик и жмём «Subscribe»:

7ve3pgcdd4zybr1ymu ojonbn6g

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

ayo2acomulzheiuedfcy3ffvj8u
Теперь, мы можем ввести топик, в который надо отправить сообщение и собственно, сообщение. И жмём «Publish». Сообщение уехало на esp32, и она отчиталась внизу, о выполнении задания:

uivvfzinys0e1p6jtlub 77saiw
То есть, для работы всей системы нужны:

image loader
Источник картинки: wikihandbk.com

И работает оно так (текст оттуда же):

Модифицируем её для нашего случая:

wkh1s3aqpf2be4gwhwa7lgw5ad8

Прошивка проекта написана в Arduino IDE и доступна на моём гитхабе.

Пробежимся по основным моментам.

В своей работе мы будем использовать публичный mqtt broker по адресу: broker.hivemq.com:

Вы можете использовать любой другой — это вопрос исключительно предпочтений. Я выбрал этот и он у меня заработал. А так как я обычно иду по пути наименьшего сопротивления (в рамках парадигмы «и так сойдёт!» ), то искать что-то иное не было смысла. Ибо любая минута поиска — воровала у меня время, которое я мог бы с пользой провести, лёжа на диване, с думами о вечном :-))).

Для начала мы в блоке изначальной инициализации переменных указываем порт для подключения к mqtt брокеру, при необходимости — имя пользователя и его пароль(или имя и пароль оставляем пустыми, если брокер публичный — как в нашем случае):

Далее мы указываем два топика, — один из которых для публикации статуса компьютера в данный момент (то есть компьютер включён/выключен, или перезагружается):

Именно туда esp32 выводит строгие и выверенные системные сообщения, о происходящем с компьютером:

Другой, для получения сообщений из внешнего интернета(сюда мы постим со смартфона цифры 0, 1 или 2, в зависимости от которых выключается/включается/перезагружается компьютер):

Для подключения мосфет-транзисторов, я использовал пины, под номерами 19 и 21. Вы можете использовать, в принципе, любые допустимые пины, хорошее описание которых содержится по следующему адресу.

Из ещё одного интересного момента можно рассмотреть следующие три переменные:

В них мы задаем время в миллисекундах, в течение которого наше устройство будет держать нажатой соответствующую кнопку. Данные переменные вам нужно определить самостоятельно, опытным путём(если мои значения не будут работать)- для вашего конкретного компьютера, так как, вероятно, они могут отличаться в вашем конкретном случае. В прошивке значения переменных указаны для моего случая.

Ещё одним любопытным моментом, который некоторые могут не знать, является то, что встроенный в esp32 светодиод привязан к пину, под номером 2. Я решил, что «инженерия инженерией, но и красотень тоже должна быть». Поэтому наша esp-шка будет мигать встроенным светодиодом:

Теперь, что касается питания нашей сборки на esp32: единственный более-менее комфортный способ это осуществить,- запитать нашу сборку от дежурного питания компьютера. Так как наша сборка потребляет совсем немного, её подключение к дежурному питанию не должно вызвать проблемы с невозможностью включения компьютера из-за просадки напряжения.

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

Ну, вот на этом кажется и всё. Ещё раз только остановлюсь на том факте, что вся эта идея со сборкой системы для удалённого управления компьютером была продиктована не только, и не столько потребностью в доступе к файлам (потому что, как альтернативу, можно купить в таком случае NAS), а скорее даже необходимостью иметь возможность доступа к своему пулу рабочих программ, которые установлены только на домашнем компьютере.

Источник

Поделиться с друзьями
Remonta.top
Добавить комментарий