Удаленное выключение linux из windows

Обновлено: 04.07.2024

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

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

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

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

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

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

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

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

  • Откроется окно служб. Необходимо найти службу «Удаленный реестр». Кликаем «Запустить службу».
  • Теперь запускаем Брандмауэр. В меню слева выбираем «Разрешить запуск программы или компонента через брандмауэр Windows».
  • Появится список программ. Нажимаем на кнопку «Изменить настройки».
  • Выбираем «Удаленное управление Windows» или «Windows Management Instrumentation». Устанавливаем флажки.
  • Теперь с помощью командной строки запускаем удаленное выключение ПК.

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

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

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

  • Запускаем терминал. Вводим sudo shutdown -h now. Это команда, которая выключит компьютер сразу.
  • Если ввести sudo shutdown -h +5, то система завершит свою работу через 5 минут. Время можно задавать свое. К примеру, можно задать точное время sudo shutdown -h 21:00.
  • Для того, чтобы отменить выключение, стоит ввести sudo shutdown –c.

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

  • Необходимо установить или запустить стандартное средство putty. Эту программу можно запустить из командной строки.
  • Теперь создаем документ shutdown.txt с содержанием shutdown -h now.
  • Теперь создаем документ с разрешением bat и названием serv-rem-shut.bat. Содержание должно быть следующим putty.exe -m shutdown.txt -ssh -P 22 -l root -pw rootpass 10.10.5.15, где каждая команда имеет свое обозначение.
  • Передаем пользователю на ПК, который нужно выключить, три файла:
  • putty.exe
  • shutdown.txt
  • serv-rem-shut.bat

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

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

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

  • Запускаем командную строку, перейдя по адресу /Applications/Utilities/folder.
  • Вводим sudo shutdown -h now. Компьютер сразу выключиться.
  • Если вместо now прописать sudo shutdown -h +30, то Mac выключиться через пол часа.

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

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

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

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на . Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Причем выключать по сети нужно как windows серверы, так и linux различных дистрибутивов - ubuntu, centos, freebsd. То есть решение должно быть простое и надежное.

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

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

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

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

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

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

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

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

дистанционное завершение работы windows

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

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

  • putty.exe
  • shutdown.txt
  • serv-rem-shut.bat

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

Заключение

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

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



В Hyper-V ты сам задаешь как выключать виртуалку - сохранить состояние, вырубить или зашатдаунить ОС (как работает с линухом - ХЗ)
Прикреплённый файл untitled.PNG (46,82 Кбайт, скачиваний: 500)

Вопрос стоит в том, чтобы шатдаунить физические машины в случае остатка заряда ИБП менее 10%. Если для Windows есть утилита, то как быть с Lunux. как их корректно выключить.



Все работает. Для Unix систем это вполне применимо. Что касается гипервизоров, то когда подниму буду думать об их физическом шатдауне.
Но если у кого есть мысли. Собственно сабж.
Хотелось бы узнать какие средства виртуализации вы или ваша компания использует.
Какие впечатления по производительности по цене и прочим характеристикам.

Пишу здесь, ибо голосование (откуда этот вопрос) лажа по следующим причинам:
1. Абсолютно большинство здесь присутствующих использует виртуализацию исключительно как "домашний вариант" или "Вариант для своей разработки". Но НИКАК не крутит на этой виртуализации продуктивные бизнес-приложения и инфраструктурные сервисы.
2. Голосование лажа т.к. варианты голосования ниочем. Никому даже в голову не придет сравнивать Oracle VirtualBox и VMWare vSphere 5 Enterprise Plus. Это я к тому что без выпусков и версий - название имени вендора или группы продуктов никому ничего не скажет.
3. Виртуализация Xen и Citrix XENServer - разные вещи

Ну и еще одна причина - я не могу писать в "голосования". Посему весь тот раздел уже по факту - лажа.

Теперече про гашение гипервизоров:
(варианты для дома, не рассматриваются, посему мы говорим о том что наш гипервизор либо VMWare vSphere (в т.ч ESXi), либо Citrix XEN Server, а наш UPS - APC снабженный менеджмент картой).

Описание инсталляции шутдаун скрипта для новых версий - apcupsd-3.14.5-1.el5.x86_64.rpm этот пакет (либо обновленный) нужно устанавливать и для него, но ставить его похоже (как и раньше) нужно на VMA, собственно ей и вызывать перл скрипт.

Собственно алгоритм следующий - powerchute клиент установленный на vma (vima) машине получает по сети уведомление от UPS, запускает скрипт, который по преднастроенному листу гасит хосты.
Хост получет команду на гашение, гасит виртуалки по настроеному стартап/шутдаун приоритету, погасив все виртуалки гаснет сам.

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

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

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

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

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

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

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


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

Дальше заходим нашим новым пользователем, чтобы создались стандартные папки профиля и кладем скрипт автовыключения сервера ему в автозагрузку — 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. Эту программу можно запускать из командной строки с параметрами. В качестве параметров можно указать файл с командами для выполнения, адрес сервера, пользователя и пароль.

Читайте также: