Как удаленно выключить компьютер?
Вариантов удаленного выключения существует довольно много:
- через графическую консоль Управление компьютером (Computer Manager), подключенную к удаленному компьютеру;
- через штатную утилиту shutdown.exe;
- с помощью сценария PowerShell;
- и т.п.
На мой взгляд, для автоматизации задачи массового принудительного удаленного выключения компьютеров лучше всего подходит утилита PsShutdown.exe, являющаяся частью пакета PsTools.
Вариант команды PsShutdown может быть таким:
C:>PsShutdown \XP01 -s -f -t 300 –c –n 10 -e p:0:0 –m «Night shutdown. Please contact Servicedesk if you have any questions. Servicedesk phone: 123-45-67.» |
Описание используемых ключей:
\XP01 – имя удаленного компьютера, можно заменить файлом со списком компьютеров (например, @C:ScriptsComputers.txt)
-s – выключение компьютера (если все компьютеры поддерживают режим гибернации, можно заменить ключом –h);
-f – принудительное закрытие всех открытых приложений;
-t 300 – указание времени в секундах, в течение которого выводится окно уведомления о выключении компьютера;
-c – опция, позволяющая пользователю удаленного компьютера отменить выключение (пользователю будет выводиться кнопка Cancel);
-n 10 – максимальное время в секундах, отводимое на подключение к удаленному компьютеру;
-e p0:0 – указание, что выключение является плановым;
-m “Night shutdown. Please contact Service Desk if you have any questions. Service Desk phone: 123-45-67.” – текст уведомления; замените на свой собственный.
Как сделать выборку компьютеров?
Можно, конечно, вручную создать текстовый файл, в котором перечислить все компьютеры, которые следует выключать. А можно автоматизировать создание актуальной выборки на основе данных из Active Directory.
Проще всего сделать выборку с помощью утилиты dsquery.exe, присутствующей на серверах или в составе пакета RSAT.
Ниже приведен вариант выборки, создающей список всех компьютеров из контейнера Desktops в домене corp.gorbunov.pro:
C:>DSQUERY * «OU=Desktops,DC=corp,DC=gorbunov,DC=pro» -filter (objectCategory=computer) -attr name -l > C:ScriptsComputers.txt
Результат выборки – файл C:ScriptsComputers.txt со списком имен компьютеров.
Выключение Windows командой Shutdown
Для выключения ОС Windows и компьютера необходимо использовать команду shutdown с ключом /s.
Чтобы перезагрузить компьютер, необходимо добавить параметр /r. После выполнения этой команды Windows корректно перезагрузится.
Командная строка
Как обычно, если графические инструменты не помогают, на помощь администратору приходит командная строка. Для того, чтобы управлять питанием компьютера с ее помощью не надо обладать особыми знаниями, достаточно запомнить одну простую команду. Нажмите Win+R или Пуск — Выполнить и введите следующие команды:
Разберем ключи команды подробнее:
- s — выключение компьютера
- r — перезагрузка
- f — принудительное завершение мешающих перезагрузке процессов
- t — время, через которое завершение работы будет выполнено, указывается в секундах через пробел. Если данный параметр не используется команда будет выполнена через 60 секунд.
Как удаленно выключить ПК с Mac?
Для того, чтобы удаленно выключить Mac, стоит выполнить следующие действия:
- Запускаем командную строку, перейдя по адресу /Applications/Utilities/folder.
- Вводим sudo shutdown -h now. Компьютер сразу выключиться.
- Если вместо now прописать sudo shutdown -h +30, то Mac выключиться через пол часа.
Если же запустить Терминал, то командой sudo halt можно моментально выключить устройство. Однако, как в первом, так и во втором случае, нужно ввести пароль к учетной записи Mac.
В сети можно найти еще способы, как удаленно отключить устройства с Windows, Linux и Mac. Однако мы привели только безопасные способы, при применении которых вы не нарушите системные настройки и не повредите системные файлы.
Удаленное выключение компьютеров на ночь
Требуется обеспечить принудительное выключение определенных клиентских компьютеров в ночное время. Все компьютеры являются членами домена Active Directory.
Как удаленно выключить компьютер?
Вариантов удаленного выключения существует довольно много:
- через графическую консоль Управление компьютером (Computer Manager), подключенную к удаленному компьютеру;
- через штатную утилиту shutdown.exe;
- с помощью сценария PowerShell;
- и т.п.
На мой взгляд, для автоматизации задачи массового принудительного удаленного выключения компьютеров лучше всего подходит утилита PsShutdown.exe, являющаяся частью пакета PsTools.
Вариант команды PsShutdown может быть таким:
C:>PsShutdown \XP01 -s -f -t 300 –c –n 10 -e p:0:0 –m «Night shutdown. Please contact Servicedesk if you have any questions. Servicedesk phone: 123-45-67.» |
Описание используемых ключей:
\XP01 – имя удаленного компьютера, можно заменить файлом со списком компьютеров (например, @C:ScriptsComputers.txt)
-s – выключение компьютера (если все компьютеры поддерживают режим гибернации, можно заменить ключом –h);
-f – принудительное закрытие всех открытых приложений;
-t 300 – указание времени в секундах, в течение которого выводится окно уведомления о выключении компьютера;
-c – опция, позволяющая пользователю удаленного компьютера отменить выключение (пользователю будет выводиться кнопка Cancel);
-n 10 – максимальное время в секундах, отводимое на подключение к удаленному компьютеру;
-e p0:0 – указание, что выключение является плановым;
-m “Night shutdown. Please contact Service Desk if you have any questions. Service Desk phone: 123-45-67.” – текст уведомления; замените на свой собственный.
Как сделать выборку компьютеров?
Можно, конечно, вручную создать текстовый файл, в котором перечислить все компьютеры, которые следует выключать. А можно автоматизировать создание актуальной выборки на основе данных из Active Directory.
Проще всего сделать выборку с помощью утилиты dsquery.exe, присутствующей на серверах или в составе пакета RSAT.
Ниже приведен вариант выборки, создающей список всех компьютеров из контейнера Desktops в домене corp.gorbunov.pro:
C:>DSQUERY * «OU=Desktops,DC=corp,DC=gorbunov,DC=pro» -filter (objectCategory=computer) -attr name -l > C:ScriptsComputers.txt
Результат выборки – файл C:ScriptsComputers.txt со списком имен компьютеров.
Дистанционное выключение Windows сервера
Начнем с самого сложного. На практике реализовать надежный способ выключения windows машин по сети для меня оказалось сложнее, чем linux. Методов и подходов к решению данной задачи много. Я пробовал разные варианты и остановился на одном, который мне показался самым надежным, он сработал без проблем во всех случаях во время тестирования.
Обязательным условием удаленного выключения сервера является сетевой доступ к нему по rdp. Вы можете находится в локальной сети с ним, подключиться по vpn или пробросить rdp соединение редиректом со шлюза. Не важно, главное попасть в систему по rdp.
Принцип работы удаленного отключения следующий:
- На компьютере или сервере создается пользователь, которому будет разрешено подключаться по rdp и завершать работу сервера.
- В автозагрузке этого пользователя будет скрипт для завершения работы.
- Пользователям, которые будут удаленно выключать сервер, дается специально подготовленный rdp клиент, который без всяких запросов будет подключаться нужным пользователем, у которого будет срабатывать скрипт на завершение работы.
Все достаточно просто, но на каждом этапе я сталкивался с проблемами, которые требовали не тривиального решения. Но обо все по порядку.
Итак, идем на север и создаем там простой bat файл следующего содержания:
Сохраняем файл и создаем пользователя, под которым будем выключать сервер. Не забудьте добавить этому пользователю разрешение подключаться по rdp. Если вы выключаете компьютер с десктопной системой, то прав обычного пользователя достаточно. Если же вам надо погасить Windows Server, то пользователя нужно либо сделать админа, либо дать ему права на разрешение выключение сервера через локальную политику безопасности. Живет эта политика по адресу — параметры безопасности — локальные политики — назначение прав пользователей — завершение работы системы.
Вот тут я напоролся на первые неприятности. Я назвал свой скрипт shutdown.bat и очень долго не мог понять, почему он не срабатывает. При вводе команды shutdown с параметрами в консоли все отлично работало, но скрипт не запускался. Оказывается, его нельзя называть таким именем. После того, как переименовал в shut.bat, все отлично заработало. Какая-то нелепая загвоздка, но мне пришлось потратить немало времени, пока я разобрался, в чем тут дело.
Дальше заходим нашим новым пользователем, чтобы создались стандартные папки профиля и кладем скрипт автовыключения сервера ему в автозагрузку — C:Usersshut-userAppDataRoamingMicrosoftWindowsStart MenuProgramsStartup.
Теперь нам нужно настроить автоматический вход пользователя по 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.exe
- rem-shut.bat
Важно, чтобы они лежали в одной папке. При запуске батника произойдет подключение rdp пользователя и выполнится скрипт завершения работы. Задача выполнена.
Как выключить свой ПК с помощью командной строки?
Выключение персонального компьютера через командную строку производится с помощью команды shutdown. Команда shutdown может принимать такие параметры:
- /s – Выключение компьютера;
- /r – Перезагрузка компьютера;
- /a – Отмена перезагрузки или выключения компьютера. Данный параметр можно использовать только во время ожидания выключения (выключения с задержкой);
- /h – Переход в режим гибернации;
- /t xxx – Установка задержки в XXX секунд перед перезагрузкой или выключением компьютера. Позволяет выключать компьютер через определенное время;
- /c «комментарий» – Комментарий с указанием причины выключения или перезагрузки компьютера;
- /f – Принудительное завершение всех открытых программ без предупреждения пользователя. Данный параметр используется, если для параметра /t указана задержка больше 0 секунд;
- Другие параметры, которые можно использовать для выключения компьютера через командную строку вы сможете узнать, использовав команду shutdown без каких либо параметров
Например, при вводе команды
мы получим выключение ПК через 60 сек.
Можно из этой красоты сделать ярлык и разместить его на рабочем столе.
Называем ярлык как нам нужно
Теперь мы можем выключать компьютер, просто кликнув по ярлыку.
ВАЖНО: Можно также использовать командный файл bat — просто создав обычный текстовый файл (прямо в блокноте) с этим расширением и добавив туда нужную команду — и клик по файлу.
ВАЖНО: можно отменить выключение (при наличии задержки), использовав
Как включить компьютер удаленно с помощью телефона
Если вы хотите включить компьютер удаленно по сети с телефона, вам необходимо использовать внешний RTC-модем в порту RS-232.
Подключите модем к ПК, а в BIOS активируйте функцию пробуждения по модему. Таким способом, если модем включен, при вызове вашего телефона компьютер запустится.
Модем можно легко подключить к телефонной линии IP, а телефон будет подключен параллельно с модемом.
Только этот метод имеет один, но значительный недостаток, когда модем включен, ваш компьютер будет запущен с каждым входящим телефонным соединением.
Чтобы исправить это, вы можете использовать командную строку с запуском команды shutdown -s -t 300, благодаря которой компьютер выключится через 5 минут.
В свою очередь, ярлык на рабочем столе с командой shutdown -a позволит вам отменить процесс выключения компьютера, если вы работаете над нем.
Команда отмены процесса может выполняться удаленно с помощью скрипта VNC, PHP или любого другого метода удаленного запуска процессов по сети. Успехов.