Удаленное выключение компьютера по сети
У меня появилась задача по организации оперативного выключения удаленных серверов в один клик. Причем выключать сервера должны разнообразные пользователи, в том числе и без знаний и понимания принципов работы сервера. То есть они должны просто нажать кнопку, чтобы сервер автоматически завершил свою работу.
Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «Администратор Linux» в OTUS. Курс не для новичков, для поступления нужно пройти .
Причем выключать по сети нужно как windows серверы, так и linux различных дистрибутивов — ubuntu, centos, freebsd. То есть решение должно быть простое и надежное.
Дистанционное выключение Windows сервера
Начнем с самого сложного. На практике реализовать надежный способ выключения windows машин по сети для меня оказалось сложнее, чем linux. Методов и подходов к решению данной задачи много. Я пробовал разные варианты и остановился на одном, который мне показался самым надежным, он сработал без проблем во всех случаях во время тестирования.
Обязательным условием удаленного выключения сервера является сетевой доступ к нему по rdp. Вы можете находится в локальной сети с ним, подключиться по vpn или пробросить rdp соединение редиректом со шлюза. Не важно, главное попасть в систему по rdp.
Принцип работы удаленного отключения следующий:
- На компьютере или сервере создается пользователь, которому будет разрешено подключаться по rdp и завершать работу сервера.
- В автозагрузке этого пользователя будет скрипт для завершения работы.
- Пользователям, которые будут удаленно выключать сервер, дается специально подготовленный rdp клиент, который без всяких запросов будет подключаться нужным пользователем, у которого будет срабатывать скрипт на завершение работы.
Все достаточно просто, но на каждом этапе я сталкивался с проблемами, которые требовали не тривиального решения. Но обо все по порядку.
Итак, идем на север и создаем там простой bat файл следующего содержания:
shutdown /p /d p:0:0 /f
Сохраняем файл и создаем пользователя, под которым будем выключать сервер. Не забудьте добавить этому пользователю разрешение подключаться по 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 файл следующего содержания:
rdp.exe /v:10.10.5.14 /u:shut-user /p:pass123 /w:640 /h:480
10.10.5.14 | адрес удаленного сервера |
shut-user | пользователь rdp от имени которого будет происходить выключение |
pass123 | пароль пользователя |
640 480 | параметры разрешения экрана, можно не указывать |
Всего этого достаточно, чтобы выполнить дистанционное завершение работы на windows сервере. Пользователю необходимо передать 2 файла:
Важно, чтобы они лежали в одной папке. При запуске батника произойдет подключение rdp пользователя и выполнится скрипт завершения работы. Задача выполнена.
Удаленное выключение linux сервера
Здесь все оказалось значительно проще. Сразу же было найдено рабочее решение, которое позволяет без проблем удаленно выключить любой 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
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 позволяет выполнить удаленное выключение компьютеров даже через интернет.
Уверен, существует множество других возможностей погасить сервер удаленно. Буду рад, если в комментариях со мной кто-нибудь поделится своими идеями и опытом на этот счет.
Онлайн курс по Linux
Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «Администратор Linux» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров. Что даст вам этот курс:- Знание архитектуры Linux.
- Освоение современных методов и инструментов анализа и обработки данных.
- Умение подбирать конфигурацию под необходимые задачи, управлять процессами и обеспечивать безопасность системы.
- Владение основными рабочими инструментами системного администратора.
- Понимание особенностей развертывания, настройки и обслуживания сетей, построенных на базе Linux.
- Способность быстро решать возникающие проблемы и обеспечивать стабильную и бесперебойную работу системы.
Помогла статья? Есть возможность отблагодарить автора
Как удаленно выключить и перезагрузить компьютер
Если вы когда-нибудь задумывались, можно перезагрузить или выключить компьютер через удаленный доступ по сети (на расстоянии), я отвечу — да, это можно сделать довольно как на windows 7, так и на windows 10 просто используя командную строку.
Первые шаги отключить или перезагрузить компьютер по сети
Чтобы правильно выполнить этот процесс, необходимо подключиться к той же локальной сети (LAN), к которой подключен компьютер, который вы хотите выключить или перезагрузить.
Кроме того, вам необходимо знать имя пользователя и пароль, назначенные на компьютере (если установлены). Без этой информации процесс будет невозможен.
Прежде чем предпринимать какие-либо действия, убедитесь, что TCP- порт 445 открыт в брандмауэре Windows на компьютере, который вы хотите отключить или перезагрузить.
Для этого перейдите в «Панель управления» и «Центр безопасности». Затем выберите параметр Брандмауэр Windows.
Перейдите на вкладку «Исключения». Как правило, опция, разрешающая совместное использование файлов и принтеров, уже выбрана.
[info]Сегодня многие антивирусы функцию брандмауэра перебирают на себя, тогда нужно смотреть в них.[/info]
Если это не так, выберите его и нажмите «ОК». Если вы не видите строку «Доступ к файлам и принтерам», нажмите «Добавить порт» и выберите «445 TCP».
Затем снова откройте Панель управления. Выберите команду «Система» и выберите «Разрешить пользователям подключаться к этому компьютеру» на вкладке «Удаленная».
Чтобы выключить или перезагрузить компьютер по сети используйте команду — net use
Чтобы получить необходимые права, вы должны сначала использовать команду net use на целевом компьютере.
Перед началом всей операции вам также понадобится адрес компьютера назначения. Для того, чтобы ввести команду NET USE, запустите командную строку и ведите команду ниже:
- Net use \\IP целевого ПК /user:administrator
Затем введите имя администратора и пароль — если операция прошла успешно, увидите соответствующую информацию на экране.
Выключить или перезагрузить компьютер используя команду Shutdown
Чтобы перезагрузить или выключить компьютер с помощью удаленного рабочего стола можете воспользоваться командной shutdown через командную строку.
После запуска командной строки в черном окне введите:
Далее используйте команду:
- /r – перезагрузить
Или
- /f — принудительно перезагрузить (игнорировать мешающие процессы) процессов
После подтверждения с помощью Enter система сообщит вам, что компьютер или ноутбук будет перезагружен через мгновение.
[info]Если хотите выключить и перезагрузить компьютер или ноутбук если он завис то зависший пробуйте через: /f – может получится.[/info]
В случае сбоя, я рекомендую запустить командную сроку в качестве админа, особенно если активирован контроль учетных записей.
Как перезапустить или выключить компьютер через — bat
Если вы часто перезагружаете компьютер через удаленный рабочий стол, то неплохо создать файл (.bat) на рабочем столе.
Для этого создайте «Текстовый документ» (txt) и назовите его «Restart.bat». При этом у вас должен быть включен показ расширений (иначе ничего не увидите).
Если вы не видите расширение .bat, вы должны в «Параметры папки» и снять отметку «Скрыть расширения известных типов файлов».
Теперь в созданном файле впишите команду (лучше это делать до переименования на «Restart.bat»), например — shutdown /r /f. Затем закрываем, сохраняя изменения и можем запустить файл.
Его можно использовать для автоматического перезапуска компьютера, например, каждую субботу. Просто установите его для запуска в опр
Команда Shutdown: выключение и перезагрузка Windows из командной строки
Утилита командной строки shutdown является встроенной командой Windows, которая позволяет перезагрузить, выключить компьютер, перевести его в спящий режим или завершить сеанс пользователя. В этой инструкции мы покажем основные примеры использования команды shutdown в Windows (все рассмотренные команды запускаются в окне Выполнить — Win+R ->, в командной строке cmd.exe или в консоли PowerShell).
Команда shutdown имеет следующий синтаксис:
shutdown [/i | /l | /s | /sg | /r | /g | /a | /p | /h | /e | /o] [/hybrid] [/soft] [/fw] [/f] [/m \\компьютер][/t xxx][/d [p|u]xx:yy [/c "комментарий"]]
Как вы видите, у команды довольно много опций, а также есть возможность выполнять операции выключения/перезагрузки на удаленном компьютере.
Выключение Windows командой Shutdown
Для выключения ОС Windows и компьютера необходимо использовать команду shutdown с ключом /s.
shutdown /s
Перезагрузка Windows
Чтобы перезагрузить компьютер, необходимо добавить параметр /r. После выполнения этой команды Windows корректно перезагрузится.
shutdown /r
Завершение сеанса пользователя
Чтобы завершить текущую сессию пользователя (logout), нужно выполнить команду:
shutdown /l
Эта команда аналогично выполнению команды logoff.
Перевод компьютера в режим гибернации
Для перевода компьютер в режим гибернации (в этом режиме все содержимое памяти записывается в файл hyberfil.sys на диск и компьютер переходит в спящий режим с пониженным электропотреблением), выполните команду:
shutdown /h
Перезагрузка компьютера с сообщением пользователям
Вы можете предупредить всех пользователей Windows о предстоящем выключении / перезагрузки компьютера или сервера, отправив сообщение во все активные сессии (как правило эта возможность используется на терминальных RDS серверах, за которыми одновременно работают несколько пользователей, каждый в своей собственной RDP сессии).
shutdown /r /c “Этот сервер будет перезагружен через 60 секунд.”
Отложенное выключение / перезагрузка компьютера
Можно выключить или перезагрузить компьютер с определенной задержкой (по таймеру). С помощью опции /t можно указать интервал времени (в секундах), через который ПК/сервер будет перезагружен или выключен. Тем самым вы можете предоставить пользователям дополнительное время для того, чтобы успеть сохранить открытые файлы и корректно закрыть приложения. Эту опцию удобно использовать совместно с отправкой сообщения. В этом примере мы указываем, что Windows будет выключена через 10 минут (600 секунд) и информируем пользователей сообщением.
shutdown /s /t 600 /c "Сервер будет выключен через 10 минут. Сохраните свои документы!"
Пользователю будет выдано предупреждение о запланированном выключении: Ваш сеанс будет завершен.
Если задержка очень длительная, например, 100 минут (6000 секунд), то вместо предупреждающего окна появляется всплывающее сообщение в нижнем правом углу экрана: «Ваш сеанс будет завершен. Работа Windows будет завершена через 100 мин».
Отмена выключения / перезагрузки компьютера
После запуска команды выключения или перезагрузки Windows, по умолчанию утилита shutdown ожидает 60 секунд, не выполняя никаких действия. Администратора может отменить перезагрузку или выключение устройства, если в течении этого времени успеет выполнить команду:
shutdown /a
После отмены выключения появится всплывающее сообщение в нижнем правом углу экрана: «Выход из системы отменен. Запланировано завершение работы отменено».
Перезагрузить компьютер немедленно
Чтобы выключить или перезагрузить компьютер немедленно, не ожидая стандартные 60 секунд, нужно указать значение 0 для параметра /t. Например, для немедленной перезагрузки компьютера:
shutdown /r /t 0
Очень важный ключ /f. Я использую его практически всегда при выключении или перезагрузки серверов Windows. Данный атрибут обеспечивает принудительное завершение всех запущенных программ и процессов, не ожидая подтверждения от пользователя (не будем же мы ждать подтверждения закрытия программ от всех пользователей на терминальном сервере, его можно просто не дождаться).
Следующая команда выполнит перезагрузку компьютера с автоматическим запуском всех зарегистрированных приложений после перезагрузки (имеются в виду приложения, зарегистрированные в системе с использованием функции API RegisterApplicationRestart).
shutdown /g
Запуск команды shutdown на удаленных компьютерах
Вы можете перезагрузить удаленный компьютер по сети, для этого у вас должен быть к нему сетевой доступ, а учетная запись, из-под которой запускается команда shutdown должна входить в группу локальных администраторов на удаленном компьютере (сервере):
shutdown /r /t 120 /m \\192.168.1.100
Если все указанные условия выполняются, но при выполнении команды shutdown появляется ошибка ”Отказано в доступе (5)”, на удаленном компьютере нужно разрешить удаленный доступ к административным ресурсам (C$, ADMIN$), изменив значение параметра LocalAccountTokenFilterPolicy на 1.
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "LocalAccountTokenFilterPolicy" /t REG_DWORD /d 1 /f
Если вам необходимо удаленно перезагрузить множество компьютеров, их список можно сохранить в текстовый файл и запустить удаленную перезагрузку всех компьютеров с помощью такого PowerShell скрипта:
$sh_msg = "Ваш компьютер будет автоматически перезагружен через 10 минут. Сохраните свои файлы и закройте запущенные программы"
$sh_delay = 600 # секунд
$computers = gc C:\PS\PC-list.txt
foreach ($comp in $computers)
{
& 'C:\Windows\System32\SHUTDOWN.exe' "-m \\$comp -r -c $sh_msg -t $sh_delay"
}
Графический интерфейс команды shutdown
Для тех, кому не комфортно работать в командной строке, есть графический интерфейс для команды shutdown, чтобы его вызвать, наберите:
shutdown /i
Как вы видите, в диалоге удаленного завершения работы вы можете добавить несколько компьютеров, которые нужно перезагрузить/выключить, указать текст уведомления и задать причину выключения для сохранения в журнале Windows.
Ярлык для перезагрузки компьютера
Для удобства пользователей вы можете создать на рабочем столе ярлыки для выключения или перезагрузки компьютера с нужными настройками. Такой ярлык может быть полезен для выполнения перезагрузки из RDP сессии, когда отсутствуют кнопки перезагрузки/завершения работы компьютера в меню Пуск.
Если вы хотите, чтобы ваш компьютер или сервер всегда выключался / перезагружался в определенное время, вы можете добавить команду shutdown с определенными параметрами в планировщик заданий Windows taskschd.msc.
Например, следующее задание планировщика будет ежедневно перезагружать компьютер ночью в 0:00.
Либо вы можете создать новое задание планировщика из PowerShell:
$Trigger= New-ScheduledTaskTrigger -At 00:00am -Daily
$User= "NT AUTHORITY\SYSTEM"
$Action= New-ScheduledTaskAction -Execute "shutdown.exe" -Argument "–f –r –t 120"
Register-ScheduledTask -TaskName "RebootEvertyNight_PS" -Trigger $Trigger -User $User -Action $Action -RunLevel Highest –Force
Как выключить компьютер через командную строку
Большинство пользователей привыкли выключать свой компьютер, используя меню «Пуск». О возможности сделать это через командную строку они если и слышали, то никогда не пытались ею воспользоваться. Все это из-за предубеждения, что она является чем-то очень сложным, предназначенным исключительно для профессионалов в сфере компьютерных технологий. А между тем, использование командной строки весьма удобно и предоставляет пользователю много дополнительных возможностей.
Выключаем компьютер из командной строки
Чтобы выключить компьютер, используя командную строку, пользователю необходимо знать две основополагающие вещи:
- Как вызвать командную строку;
- Какой командой выключать компьютер.
Остановимся на этих моментах подробнее.
Вызов командной строки
Вызвать командную строку или как ее еще называют, консоль, в Windows очень просто. Делается это в два шага:
- Использовать сочетание клавиш Win+R.
- В появившемся окне набрать cmd и нажать «OK».
Результатом произведенных действий станет открытие окна консоли. Выглядит оно приблизительно одинаково для всех версий Windows.
Вызвать консоль в Виндовс можно и другими способами, но все они более сложные и могут отличаться в разных версиях операционной системы. Описанный выше способ является самым простым и универсальным.
Вариант 1: Выключение локального компьютера
Для выключения компьютера из командной строки используется команда shutdown
. Но если просто набрать ее в консоли, выключения компьютера не произойдет. Вместо этого будет выведена справка по использованию данной команды.
Внимательно изучив справку, пользователь поймет, что для выключения компьютера необходимо использовать команду shutdown с параметром [s]. Строка, набранная в консоли, должна выглядеть так:
shutdown /s
После ее введения следует нажать клавишу Enter и начнется процесс выключения системы.
Вариант 2: Использование таймера
Введя в консоли команду shutdown /s, пользователь увидит, что выключение компьютера все еще не началось, а вместо этого на экране появилось предупреждение о том, что компьютер будет выключен через минуту. Так это выглядит в Windows 10:
Это объясняется тем, что такая задержка во времени предусмотрена в этой команде по умолчанию.
Для случаев, когда компьютер нужно выключить немедленно, или с другим временным интервалом, в команде shutdown предусмотрен параметр [t]. После введения данного параметра необходимо также указать временной интервал в секундах. Если необходимо выключить компьютер немедленно, его значение устанавливается равным нулю.
shutdown /s /t 0
В этом примере компьютер будет выключен через 5 минут.
На экран будет выведено системное сообщение о прекращении работы подобно тому, как и в случае использования команды без таймера.
Данное сообщение будет периодически повторяться с указанием оставшегося времени до выключения компьютера.
Вариант 3: Выключение удаленного компьютера
Одним из преимуществ выключения компьютера с помощью командной строки является то, что таким способом можно выключить не только локальный, но и удаленный компьютер. Для этого в команде
При использовании данного параметра обязательным является указание сетевого имени удаленного компьютера, или его IP-адреса. Формат команды выглядит так:
shutdown /s /m \\192.168.1.5
Как и в случае с локальным компьютером, для выключения удаленной машины можно использовать таймер. Для этого нужно в команду добавить соответствующий параметр. На примере ниже удаленный компьютер будет выключен через 5 минут.
Для выключения компьютера, находящегося в сети, на нем должно быть разрешено удаленное управление, а пользователь, который будет производить это действие, должен обладать правами администратора.
Читайте также: Как подключиться к удаленному компьютеру
Рассмотрев порядок выключения компьютера из командной строки, легко убедиться, что это совсем не сложная процедура. Кроме того, такой способ предоставляет пользователю дополнительные возможности, отсутствующие при использовании стандартного метода.
Мы рады, что смогли помочь Вам в решении проблемы.Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.
Помогла ли вам эта статья?
ДА НЕТКак перезагрузить или выключить компьютер через удаленный рабочий стол
Windows, Windows 10, Windows 7, Windows 8, Windows Vista, Windows XP- Recluse
- 27.12.2015
- 7 159
- 0
- 100.00%
- 1
- 19.01.2020
Содержимое статьи:
Если, удаленно находясь за компьютером, попробовать его перезагрузить стандартными средствами, то можно испытать некоторое удивление, обнаружив, что подобная возможность просто отсутствует.
Первый способ
Решение достаточно простое — необходимо воспользоваться горячими клавишами Alt + F4, после чего появится меню с предложением завершения работы, где можно выбрать в том числе и перезагрузку…
Второй способ
Кроме этого, никто не отменял использование командной строки. Команды для выключения или перезагрузки компьютера следующие:
Выключение компьютера:
shutdown -s
Перезагрузка компьютера:
shutdown -r
Кроме этого, можно использовать ключ -t, с помощью которого можно задать время, через которое произойдет завершение работы. Например команда ниже перезагрузит компьютер через 2 минуты (задается время в секундах).
shutdown -r -t 120
Третий способ
Также, работая через удаленный рабочий стол, можно вызвать меню, аналогичное нажатию Ctrl+Alt+Del на локальном компьютере. Подробней можно прочитать в статье: Как нажать Ctrl+Alt+Del работая удаленно через RDP ?
Как выключить компьютер через командную строку и PowerShell
Добрый день! Уважаемые читатели и подписчики IT блога Pyatilistnik.org. В прошлой статье мы разобрали методы перезагрузки Windows из PowerShell. Сегодня я хочу логически закончить эту статью и показать вам методы, позволяющие вам выключить компьютер без мышки используя оболочку PowerShell и старую, добрую командную строку. Я вам покажу, как вы можете создать себе ярлык или exe файл, выполняющий данную задачу.
Зачем использовать CMD и PowerShell для выключения компьютера
Логично, что большинство людей всегда для завершения работы за компьютером будут использовать графические окна и мышку, это правильно, так как это проще и быстрее, но бывает ряд случаев, что вы как продвинутый пользователь или тем более системный администратор, просто обязаны уметь выполнять все задачи без GUI интерфейса. Вот вам примерный список ситуаций:
- Вам как системному администратору может выпасть честь работать с Windows Server Core, которая не имеет графического интерфейса и если вам вдруг нужно завершить работу такого сервера или виртуальной машины для обслуживания, вы обязаны это уметь.
- Вторая ситуация может возникнуть, на компьютерах, где политиками или иными методами была выключена возможность завершать работу компьютера. Вот вам пример, что есть только пункт «Выход«.
- Третья ситуация, это различные сценарии, подразумевающие использование скриптом, например массово выключить компьютеры по списку, полет фантазии тут огромный.
- Так же не нужно забывать про удаленное выключение систем, PowerShell, как и был призван одним из основных инструментов по удаленному управлению Windows, но командная строка так же позволяет это выполнить.
Как выключить компьютер через командную строку
Для начала давайте я вам напомню, как производилось выключение компьютера из командной строки, если вы постоянный читатель моего блога, то помните, что мы уже создавали задание по выключению систему по таймеру, там мы так же использовали cmd. Что мы делаем, открываем окно командной строки, желательно в режиме администратора, чтобы все команды у вас точно отработали.
Есть такая замечательная команда Shutdown, она имеет два режима работы, первый это консольный, а второй графический, да не удивляйтесь. Давайте для начала посмотрим справку по данной утилите, для этого выполните команду:
Утилита имеет большое количество ключей для различных сценариев.
Самый простой сценарий, нужно завершить работы локального компьютера и для того, чтобы выключить компьютер через командную строку вы вводите:
У вас появится всплывающее окно, где будет указано, что ваш сеанс будет завешен. Для завершения работы Windows осталось менее 1 минуты. Тут вам дают возможность успеть сохранить важные данные в программах и документах.
Теперь давайте поиграемся с таймером, у вас может быть желание немедленного завершения работы или наоборот вы хотите задать время превышающее стандартную минуту, тут нам поможет ключ /t, в там случае команда будет выглядеть так:
При t = 0 у меня будет произведено моментальное выключение компьютера, если же я например задам 180, что равносильно трем минутам, то вы увидите вот такое окно:
Если у вас время в ключе /f задано более 0, то вы можете столкнуться с ситуацией, что какие-то приложения могут не дать завершить работу системы и выключить компьютер. В таких сценариях вы можете принудительно их завершать, для этого есть ключ /f:
Или вы вообще можете захотеть, выключить компьютер через 2 часа. это в секундах 7200. Так же есть отдельный ключ, который сразу завершает работу вашей системы, без ввода времени, этот ключ /p. В итоге можно выключить компьютер командой
Если вы хотите задать комментарий при выключении компьютера из командной строки и задать причину, то есть ключи /c и /d. Ключ /c задает комментарий, который не может быть длиннее, чем 512 символов. Ключ /d указывает причину, тут может быть совместный ключ «p«, означающий запланированное завершение или же ключ «u«, означающий что причину указывает пользователь.
shutdown -s -t 0 -c «Мне так захотелось» -d p:4:1
В логах Windows вы можете обнаружить событие 1074 с нашим комментарием. Согласитесь, что это отличный инструмент выключить компьютер без помощи мышки.
Удаленное выключение компьютера из командной строки
CMD может легко взаимодействовать и с удаленными системами, давайте я покажу, как вы можете завершить работу Windows у двух удаленных компьютеров, у меня это будет система с Windows 10 под именем W10-cl02. Для этого мы используем ключ «m«.
shutdown -s -m \\w10-cl02 -t 0 -f
Тут я принудительно завершаю работу удаленного компьютера W10-cl02. Так же вы можете произвести удаленное выключение компьютера и из графического интерфейса, для этого есть ключ -i. Вводим команду:
В результате у вас откроется форма «Диалог удаленного завершения работы», я его уже вам показывал при массовом выключении компьютеров.
Нажимаем кнопку «Добавить» и вводим нужные вам сервера и рабочие станции которые вы планируете выключить.
В выборе действий, указываем «Завершение работы», ставим галку «Предупредить пользователей об этом действии» если нужно сделать отложенное выключение, можете хоть выставить 2 часа. Указываете причину и комментарий при необходимости.
Выскочит предупредительное окно, произойдет выключение компьютера через определенное время, заданное вами ранее.
Как видите утилита командной строки shutdown.exe даже в нынешнее время Windows 10, является отличным инструментом, умеющим выключать компьютер с Windows по нужному сценарию. дополнительную информацию про утилиту shutdown вы можете посмотреть по ссылке:
https://docs.microsoft.com/ru-ru/windows-server/administration/windows-commands/shutdown
Как как выключить компьютер через PowerShell
Теперь давайте обратимся к более современному инструменту, а именно к оболочке PowerShell. Открываем ее в режиме администратора, нас будет интересовать командлет Stop-Computer. Если вы его просто введете в оболочке на локальном компьютере, то у вас начнется завершение работы.
Теперь давайте посмотрим справку по данному командлету, для этого введите
Как видим командлет имеет много дополнительных ключей.
Удаленное выключение компьютера из PowerShell
Командлет Stop-Computer имеет ключ -ComputerName через который можно указать список систем, требующих завершения работы. У меня есть два удаленных компьютера с Windows 10, w10-cl02 и w10-cl03. Давайте их выключим, вводим команду:
Stop-Computer -ComputerName w10-cl02, w10-cl03
Если на текущий момент на удаленных компьютерах. кто-то работает, то вы получите ошибку:
Stop-Computer : Не удается выполнить команду на конечном компьютере («w10-cl02») из-за следующей ошибки: Невозможно инициировать завершение работы системы, так как компьютер используется другими пользователями.
строка:1 знак:1
+ Stop-Computer -ComputerName w10-cl02, w10-cl03
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (w10-cl02:String) [Stop-Computer], InvalidOperationException
+ FullyQualifiedErrorId : InvalidOperationException,Microsoft.PowerShell.Commands.StopComputerCommand
Stop-Computer : Не удается выполнить команду на конечном компьютере («w10-cl03») из-за следующей ошибки: Невозможно инициировать завершение работы системы, так как компьютер используется другими пользователями.
строка:1 знак:1
+ Stop-Computer -ComputerName w10-cl02, w10-cl03
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (w10-cl03:String) [Stop-Computer], InvalidOperationException
+ FullyQualifiedErrorId : InvalidOperationException,Microsoft.PowerShell.Commands.StopComputerCommand
Чтобы это обойти вы можете добавить ключик -Force, который сделает принудительное выключение
Stop-Computer -ComputerName w10-cl02, w10-cl03 -Force
Если вам необходимо выполнить выключение от имени определенной учетной записи, то вы можете воспользоваться ключом -Credential:
Stop-Computer -ComputerName w10-cl02, w10-cl03 -Credential root\sem -Force(Где root, это наименование домена, а sem, это логин пользователя)
В окне запроса учетных данных Windows, укажите пароль. В итоге я выключил два компьютера и все можно сделать и без использования мышки.
Также командлет Stop-Computer имеет ключ -WsmanAuthentication, который позволяет производить подключения по разным протоколам аутентификации. Возможные варианты:
Напоминаю, что по умолчанию используется CredSSP .но я в моем примере буду использовать Kerberos, так как привык работать со службой удаленного управления Windows (WinRM).
[info]Stop-Computer -ComputerName w10-cl02, w10-cl03 -Force -WsmanAuthentication Kerberos[/info]
Как выключить компьютер со списком компьютеров в текстовом файле
Может возникнуть ситуация, что вы или ваши коллеги могут подготовить тестовый файл со списком компьютеров, которые потребуется выключить. Stop-Computer легко справится с этой задачей. Кладу на диск C:\ файл computers.txt, после чего выполняю команды.
$s = Get-Content -Path C:\computers.txt
$c = Get-Credential root\sem
Stop-Computer -ComputerName $s -Force -Credential $c
Выключение компьютера с задержкой по времени через PowerShell
И так, как выключить компьютер через определенное время, так как у вас легко может возникнуть такой сценарий. Для решения вопроса со временем есть командлет Start-Sleep.
Start-Sleep -Seconds 60; Stop-Computer -ComputerName w10-cl02, w10-cl03 -Force
В результате выполнения команды, у меня завершится работа на двух удаленных компьютерах. Или можно вот так со списком компьютеров в текстовом файле.
$s = Get-Content -Path C:\computers.txt
$c = Get-Credential root\sem
Start-Sleep -Seconds 60; Stop-Computer -ComputerName $s -Force -Credential $c
Дополнительную информацию, по командлету Stop-Computer я вам советую поискать на сайте Microsoft
[info]https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/stop-computer?view=powershell-6[/info]
Как выключить компьютер через WMI запрос
Так же используя командную строку или оболочку PowerShell вы можете выполнить команду с использованием WMI, чтобы завершить работу компьютера. Для этого введите команду:
[info](Get-WmiObject Win32_OperatingSystem -EnableAllPrivileges).Win32Shutdown(1)[/info]
В результате у вас будет произведено корректное завершение работы в вашей системе Windows, так же можно сделать форсированное выключение, для этого выполните:
(Get-WmiObject Win32_OperatingSystem -EnableAllPrivileges).Win32Shutdown(5)
Создание ярлыка выключения компьютера
Если вы хотите вынести себе функцию выключения вашего компьютера в виде отдельного файла-ярлыка, вы можете это легко реализовать. Щелкаете правой кнопкой мыши по рабочему столу и выбираем пункт «Создать — Ярлык»
Задаем параметры для нашего ярлыка, тут вы вводите нужную вам команду, в моем случае, это команда, которая немедленно выключает компьютер.
Указываем нужное вам название ярлыка.
Вот такой у меня получился ярлык для завершения системы Windows.
Дополнительные варианты выключения компьютера
Видя, что можно создать ярлык для выключения, вы можете таким же образом сохранить любую команду PowerShell в виде скрипта, или вообще потом конвертировать его в EXE и так же расположить его в виде файла по которому вы будите щелкать и завершать работу. На этом у меня все, я вам показал методы позволяющие выключить компьютер без мышки, если остались вопросы, то пишите их в комментариях. С вами был Иван Семин, автор и создатель IT блога Pyatilistnik.org.
Удаленное включение компьютера через Интернет
Статья представляет собой пошаговую инструкцию по настройке удалённого включения компьютера через Интернет с помощью технологии Wake-on-LAN.
Wake-on-LAN (WOL) — технология, позволяющая удалённо включить компьютер посредством отправки через локальную сеть специальной последовательности байтов — пакета данных (так называемого «magic packet» — «волшебного пакета»).
При активации WOL в BIOS на сетевую карту подается минимальное питание, достаточное, чтобы принять «magic packet» и включить компьютер.
Для настройки технологии Wake-on-LAN (прим. далее – WOL) потребуется:
1. Поддержка WOL материнской платой компьютера;
2. Поддержка WOL сетевой картой компьютера;
3. Wi-Fi роутер;
4. Любое приложение WOL.
Скачать приложение WOL из Play Market
.
I. Настройка BIOS
1. Необходимо зайти в BIOS (прим. обычно для этого достаточно нажать F2 или DEL при появлении первых строчек на экране) и определить, поддерживает ли материнская плата WOL. У различных производителей материнских плат WOL может называться по разному. Вот список названий функции для различных производителей материнских плат: Wakeup option; Wake On LAN; MAC Resume From S3/S4; MACPME Power Up Control; Power On By Onboard LAN; Power Up By Onboard LAN; Power On By PCI Devices; Resume on PCI Event; Resume by LAN; Resume By WOL; Resume on LAN; Resume on LAN/PME#; Wake on LAN from S5; Wake Up On LAN; WakeUp by Onboard LAN; WOL (PME#) From Soft-Off; PME Events Wake Up; Resume by PME# Function; Resume On PME#; Wake On PME; Wake Up On PME.
Примечание! Большинство современных материнских плат используют UEFI (прим. «новый BIOS») поэтому в данной статье будет рассмотрен пример настройки WOL в UEFI.
После того как вы зашли в UEFI (BIOS) необходимо выбрать Advanced Mode (прим. — Расширенный режим/Дополнительно) (Рис.1).
Рис.1
.
2. В открывшемся окне нажимаем ОК (Рис.2).
Рис.2
.
3. Переходим на вкладку Advanced (прим. — Дополнительно) и выбираем APM (Рис.3).
Рис.3
.
4. В строке Power On By PCIE/PCI (прим. — Включение посредством PCIE) выбираем Enabled (прим. — Включено). Обратите внимание, справа в описании написано, что данная настройка отвечает за Wake-on-LAN (Рис.4).
Рис.4
.
5. Нажимаем Exit (прим. — Выход) и в появившемся окне выбираем Save Changes & Reset (прим. — Сохранить изменения и выйти) (Рис.5).
Рис.5
.
Примечание! Ниже представлены варианты BIOS с настройками WOL (Рис.6, Рис.7, Рис.8).
.
Рис.6
.
Рис.7
.
Рис.8
.
II. Настройка сетевой карты
1. Для настройки сетевой карты необходимо перейти в настройки параметров адаптера:
Пуск > Панель управления > Центр управления сетями и общим доступом > Изменение параметров адаптера
2. Дважды кликните на иконке нужного нам адаптера (прим. который подключен к роутеру «витой парой»), в появившемся окне нажмите Сведения (Рис.9).
Рис.9
.
3. В окне Сведения о сетевом подключении вы увидите строчку Физический адрес. Внимательно перепишите адрес, который у вас указан (прим. он потребуется позже для дальнейшей настройки), затем нажмите Закрыть (Рис.10).
Рис.10
.
4. Теперь в окне Состояние выберите Свойства (Рис.11).
Рис.11
.
5. В Свойствах перейдите на вкладку Дополнительно и установите значение Включено (Вкл.) в строках, которые выделены на Рис.12 и значение Выключено (Выкл.) в строке, которая выделена на Рис.13.
Примечание! У разных производителей, настройки сетевых карт могу незначительно отличаться. Это могут быть параметры: WOL; Wake on LAN; Wake on Magic Packet; Wake From Shutdown; Wake-Up; Resume on LAN; Включить по локальной сети; Включить при получении магического пакета и т. п. (прим. если у вас имеются такие параметры назначьте им значение: Включено (Вкл.).
Рис.12
.
Рис.13
.
6. Перейдите на вкладку Управление электропитанием и поставьте галочки как это показано на Рис.14, затем нажмите ОК.
Рис.14
.
III. Получение динамического DNS (DDNS)
Динамический DNS необходим для того, чтобы присвоить постоянное доменное имя Wi-Fi роутеру.
1. Перейдите на сайт https://www.noip.com/ . На сайте нажмите SingUp (Рис.15).
Рис.15
.
2. На сайте, в соответствующих строчках, введите: e-mail, имя пользователя, пароль, hostname, а затем нажмите Create My Free Account (Рис.16).
Рис.16
.
3. На указанный вами при регистрации e-mail придёт письмо с необходимостью подтверждения аккаунта. Нажмите Confirm Account (Рис.17).
Рис.17
.
4. Перейдите в созданный вами аккаунт, в соответствующей строке придумайте и введите hostname и domain, затем нажмите Add Hostname (Рис.18).
Рис.18
.
5. После создания DDNS ещё раз перейдите в раздел Active (Рис.19).
Рис.19
.
6. Вы увидите созданный вами DDNS, запомните его (прим. он потребуется в дальнейшем при настройке) (Рис.20).
Рис.20
.
IV. Настройка Wi-Fi роутера
1. Для настройки Wi-Fi роутера — введите адрес вашего роутера (прим. как правило это 192.168.0.1 или 192.168.1.1) и зайдите в меню (Рис.21).
Примечание! У разных производителей Wi-Fi роутеров настройки меню могут незначительно различаться. В данном руководстве, приведена в качестве примера, настройка Wi-Fi роутера на примере TP-Link модели № TL-WR841N / TL-WR841ND.
В меню перейдите на вкладку Dynamic DNS (Динамический DNS)., в поле Service Provider (Провайдер сервиса) выбираем NoIP. В полях User name (Имя пользователя) и Password (Пароль) — укажите данные (прим. e-mail и пароль), которые вы использовали при регистрации на сайте noip.com. В поле Domain name (Доменное имя) введите доменное имя, которое вы регистрировали на сайте noip.com (прим. в примере это primer.ddns.net). Поставьте галочку напротив Enabled DDNS (Включить DDNS). Нажмите Login (Войти). Если все правильно сделано, то в поле Connection Status (Статус подключения) вы увидите надпись Succeeded! (Успешно!). Нажмите Save (Сохранить) (Рис.21).
Рис.21
.
2. Перейдите на вкладку DHCP Settings (Настройки DHCP). В строке DHCP-server (DHCP-сервер) установите состояние Enabled (Включено). Запомните диапазон ваших IP-адресов (прим. на примере это от 192.168.0.1 до 192.168.0.199, на вашем роутере они могут быть другие). Нажмите Save (Сохранить) (Рис.22).
Рис.22
.
3. Перейдите на вкладку Address Reservation (Резервирование адресов) и нажмите Add (Добавить) (Рис.23).
Рис.23
.
4. Введите в соответствующие поля MAC Address (MAC-адрес) — это физический адрес вашего компьютера (прим. вы должны были его записать, см. Рис.10)., Reserved Address (Зарезервированный IP-адрес) — введите любой IP-адрес из диапазона IP адресов вашего роутера (прим. например, если диапазон вашего роутера от 192.168.0.1 до 192.168.0.199, то ваш адрес должен быть 192.168.0.X, где X — любое число от 3 до 198)., в строке Status (Состояние) установите Enabled (Включено), затем нажмите Save (Сохранить) (Рис.24).
Рис.24
.
5. Перейдите на вкладку Binding Settings (Параметры привязки). Установите галочку напротив Bind (Связать). Введите в соответствующие поля MAC Address (MAC-адрес) — это физический адрес вашего компьютера (прим. вы должны были его записать, см. Рис.10)., IP Address (IP-адрес) — тот, который вы выбрали из диапазона IP-адресов вашего роутера (прим. тот, который вы вводили уже ранее, см. Рис.24), затем нажмите Save (Сохранить) (Рис.25).
Рис.25
.
6. Перейдите на вкладку Virtual Servers (Виртуальные серверы). В полях Service Port (Порт сервиса) и Internal Port (Внутренний порт) установите значение 9 (прим. вообще можно выбрать любой порт, но для WOL принято устанавливать порты 7 или 9). В поле IP Address (IP-адрес) введите тот, который вы выбрали из диапазона IP-адресов вашего роутера (прим. тот, который вы вводили уже ранее, см. Рис.24). В поле Protocol (Протокол) установите состояние UDP. В поле Status (Состояние) установите Enabled (Включено), затем нажмите Save (Сохранить) (Рис.26).
Рис.26
.
V. Включение удалённого компьютера через Интернет с помощью Android (проверка работоспособности)
1. Запустите скачанное из Play Market любое приложение для WOL (прим. в примере будет рассмотрено включение удалённого компьютера на примере приложения Wake on LAN).
2. Открыв приложение Wake on LAN нажмите «+» как это показано на Рис.27.
Рис.27
.
3. В открывшемся меню в поле Host name вы можете ввести любое название для соединения (прим. поменять его потом нельзя)., Поставьте галочку напротив more details., В поле Address введите адрес, который вы регистрировали на noip.com (прим. который вы вводили на Рис.24)., В поле Port (Порт) введите порт, который вы указали ранее (прим. Рис.26)., В поле MAC Address (MAC-адрес) — это физический адрес вашего компьютера (прим. вы должны были его записать, см. Рис.10), затем нажмите Save (Рис.28).
Рис.28
.
4. После сохранения настроек вы увидите созданное вами соединение. Выключите компьютер, а затем нажмите на своём смартфоне область выделенную на Рис.29, если вы всё сделали правильно — компьютер автоматически включится.
Рис.29
.
Настройка удалённого включения компьютера через интернет с помощью технологии Wake-on-LAN завершена!
.