Как выключить компьютер через командную строку через определенное время
Сохраните в CMD эти строки и после запуска через 20 минут (1200 секунд) компьютер перейдет в спящий режим. Итого программа заняла 73 байт:
Но если Вам нужно именно выключить, то всё будет еще короче, а именно 47 байт. Просто вторая строка будет выглядеть:
Использую это перед сном, включая свое любимое онлайн радио «на сон грядущий» так же из командной строки, о чём будет рассказано под катом.
Кому все таки стало любопытно, прошу под кат. Ссылки на готовые скрипты в конце статьи.
В большинстве своем всё новое это хорошо забытое старое.
Сначала рассмотрим что делают эти строки:
Пингуем IP адрес который всегда доступен (разве что Ваш firewall настроен «с выдумкой»). Интервал по умолчанию 1000 мс = 1 секунда. Ключ -n задает количество повторений 20 минут х 60 секунд = 1200 + 1 (т.к. первый пинг возвращается менее чем через 1 мс). А конструкция > nul говорит интерпретатору что стандартный вывод будет направляться в nul дабы избавиться от ненужного вывода на экран.
Происходит вызов программы rundll32.exe, которая позволяет выполнить подпрограмму из динамической библиотеки. В данном случае SetSuspendState с нужными нам параметрами. Подробное описание в MSDN.
Следует заметить, что если у вас включен гибридный режим сна (Hibernate), то войдет он именно в этот режим. Отключить его можно запустив от имени администратора следующее:
Под спойлером еще несколько применений для примера.Запуск моего любимого интернет радио через Winamp в отдельном потоке.
Заблокировать рабочую станцию (WIN + L).
Гибридный режим сна (Hibernate).
Старая шутка с включением режима мыши для левши (меняются левая и правая кнопка мыши).
Отменить шутку с мышкой можно вызвав диалог настройки мыши и отключив эту функцию.
Переместить курсор в левый верхний угол.
Расположить все не свернутые окна каскадом.
Расположить все не свернутые окна по вертикали.
Еще много интересного можно найти на просторах интернета и придумать, вспоминая документацию по WinAPI функциям.
Есть всем известное выражение которое многим нравится:
Немного истории:
Еще в далёком 2003 году для выключения ПК по таймеру на скорую руку писалась простенькая программка. Писал сам, ибо знакомых программистов и доступа к интернету в то время у меня не было. Уверен, что много таких же «домашних программистов», которые купив или нарезав на болванки MSDN изучали программирование под Windows ночи напролёт. По случаю написания статьи отрыл ее в старом архиве на родительском ПК. Выглядела она незатейливо, но задачу свою выполняла. Как оказалось, даже сейчас ей пользуются несколько моих знакомых.
На чём она была написана уже и не помню (VC, VB, Delphi или Assembler). Размер ее был тоже не большим, но все же 16 166 против 47 байт не идут ни в какое сравнение.
И когда пару дней назад мне понадобился такой же функционал я полез искать похожий софт. Каково же было моё разочарование, когда я нашел кучу программ в среднем от 1,1 Мб до огромных монстров 15,2 Мб размером. Естественно совесть мне не позволила даже в песочнице запустить эту ересь. Понимая что мне нужна задержка выполнения в 20 минут и вызов одной лишь процедуры я вспомнил про rundll32.exe, полез в инет и не ошибся. В итоге решение было найдено за 1 минуту.
Мораль:
Зачастую для решения простых задач нам не нужен сторонний софт. Достаточно просто зайти в поисковик и найти простое решение задачи, которое в 98,785% уже есть в свободном доступе. Конечно же нужно упомянуть и другой путь, для настоящих ИТ-шников, включить воображение, зайти в мануалы MSDN и воспользоваться готовым функционалом ОС. Согласитесь, приятно пользоваться простыми и элегантными решениями, но вдвойне приятнее когда до их решения ты дошел своим умом.
Команда 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.
Перезагрузка Windows
Чтобы перезагрузить компьютер, необходимо добавить параметр /r. После выполнения этой команды Windows корректно перезагрузится.
Завершение сеанса пользователя
Чтобы завершить текущую сессию пользователя (logout), нужно выполнить команду:
Эта команда аналогично выполнению команды logoff.
Перевод компьютера в режим гибернации
Для перевода компьютер в режим гибернации (в этом режиме все содержимое памяти записывается в файл hyberfil.sys на диск и компьютер переходит в спящий режим с пониженным электропотреблением), выполните команду:
shutdown /r /c “Этот сервер будет перезагружен через 60 секунд.”
Отложенное выключение / перезагрузка компьютера
shutdown /s /t 600 /c "Сервер будет выключен через 10 минут. Сохраните свои документы!"
Пользователю будет выдано предупреждение о запланированном выключении: Ваш сеанс будет завершен.
Отмена выключения / перезагрузки компьютера
После запуска команды выключения или перезагрузки Windows, по умолчанию утилита shutdown ожидает 60 секунд, не выполняя никаких действия. Администратора может отменить перезагрузку или выключение устройства, если в течении этого времени успеет выполнить команду:
Перезагрузить компьютер немедленно
Чтобы выключить или перезагрузить компьютер немедленно, не ожидая стандартные 60 секунд, нужно указать значение 0 для параметра /t. Например, для немедленной перезагрузки компьютера:
Очень важный ключ /f. Я использую его практически всегда при выключении или перезагрузки серверов Windows. Данный атрибут обеспечивает принудительное завершение всех запущенных программ и процессов, не ожидая подтверждения от пользователя (не будем же мы ждать подтверждения закрытия программ от всех пользователей на терминальном сервере, его можно просто не дождаться).
Запуск команды 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 скрипта:
Графический интерфейс команды shutdown
Для тех, кому не комфортно работать в командной строке, есть графический интерфейс для команды shutdown, чтобы его вызвать, наберите:
Как вы видите, в диалоге удаленного завершения работы вы можете добавить несколько компьютеров, которые нужно перезагрузить/выключить, указать текст уведомления и задать причину выключения для сохранения в журнале Windows.
Ярлык для перезагрузки компьютера
Для удобства пользователей вы можете создать на рабочем столе ярлыки для выключения или перезагрузки компьютера с нужными настройками. Такой ярлык может быть полезен для выполнения перезагрузки из RDP сессии, когда отсутствуют кнопки перезагрузки/завершения работы компьютера в меню Пуск.
Если вы хотите, чтобы ваш компьютер или сервер всегда выключался / перезагружался в определенное время, вы можете добавить команду shutdown с определенными параметрами в планировщик заданий Windows taskschd.msc.
Например, следующее задание планировщика будет ежедневно перезагружать компьютер ночью в 0:00.
Выключение компьютера это довольно типичная процедура, которая редко у кого вызывает какие либо сложности. Однако если вам нужно выключить компьютер не прямо сейчас, а спустя некоторое время, то тут все немного сложнее. Сейчас мы расскажем о том, как выключить компьютер через определенное время.
Выключаем компьютер через определенное время с помощью командной строки
Самый простой вариант, это воспользоваться командой shutdown . Данную команду можно вводить в командную строку, но, проще всего открыть окно «Выполнить» (с помощью комбинации клавиш Windows-R) и вводить команды в него.
Команда shutdown имеет множество параметров. Если хотите ознакомиться с ними всеми, то выполните команду «shutdown/?». Мы же рассмотрим только несколько самых основных из них:
- /s – выключение:
- /r – перезагрузка
- /h – гибернация:
- /f – принудительное закрытие всех открытых программ без предупреждения пользователя;
- /t – установка таймер в секундах;
Итак, для того чтобы выключить компьютер через определенное время нам нужно выполнить команду shutdown с параметрами /s (выключение компьютера) и /t (установка таймера). Таким образом, конечная команда для выключения компьютера будет выглядеть примерно вот так:
Выключаем компьютер через определенное время при помощи планировщика
Еще один вариант, это использование Планировщик заданий. Для того чтобы запустить Планировщик заданий откройте меню Пуск и введите в поиск фразу «Планировщик заданий». Также вы можете запустить Планировщик заданий выполнив команду taskschd.msc.
После запуска Планировщика заданий, нужно создать новое задание и настроить его на выключение компьютера через определенное время. Для этого нажимаем на кнопку «Создать простую задачу».
После этого перед вами появится окно для создания задач. На первом этапе нужно просто ввести имя задачи и нажать на кнопку «Далее».
Дальше нужно выбрать частоту срабатывания для нашей задачи. Если вы хотите выключить компьютер только один раз, то выбирайте пункт «Однократно». При необходимости можно выбрать вариант «Ежедневно» или любой другой.
Дальше нужно указать точное время и дату, когда вы хотите выключить компьютер.
Следующий шаг – выбор действия, которое будет выполняться при срабатывании задачи. Здесь нужно выбрать вариант «Запустить программу».
После этого нужно ввести команду shutdown и параметры для нее. Для примера введем параметр /s (выключение компьютера) и параметр /t (таймер на 60 секунд).
На этом создание задачи завершено, на последнем этапе просто нажимаем на кнопку «Готово».
После этого созданная вами задача появится в Библиотеке планировщика.
Выключаем компьютер через определенное время с помощью программ
Также для выключения компьютера через определенное время можно использовать специализированные программы. Для примера мы рассмотрим две популярные программы такого рода.
Airytec Switch Off – это небольшая системная программа, которая позволяет автоматически выключать компьютер в определенное время. Данная программа имеет небольшое количество функций и довольно простой интерфейс. Благодаря чему с ней сможет совладать любой желающий. Также нужно отметить, что данная программа имеет вб-интерфейс. Это позволяет выключать компьютер по локальной сети или даже через Интернет.
Мощная программа для выключения компьютера. Данная программа имеет множество настроек, что позволяет подстроить ее под любые задачи. Из недостатков данной программы можно выделить разве что слишком запутанный интерфейс, который может отпугнуть неопытных пользователей.
Бывают ситуации, когда функция автоматического выключения компьютера в заданное время пришлась бы весьма кстати. Например, вы поставили на загрузку из интернета большой объем информации или запустили инсталляцию «тяжеловесного» приложения, но времени дожидаться, пока компьютер завершит выполняемую задачу, у вас нет. Однако ни в стандартных программах ОС Windows 7, ни среди разделов «Панели управления» функции автоматического выключения ПК вы не обнаружите. Тем не менее, в Windows 7 присутствует пара способов организовать отключение компьютера по расписанию, не таких простых способов, как хотелось бы, но и не очень сложных.
Настройка автоматического выключения через «Планировщик заданий»
Зайдите в меню Пуск, перейдите в Панель управления, затем в раздел Администрирование.
В разделе Администрирование найдите и запустите службу Планировщик заданий.
В окне планировщика заданий, в правой его части (раздел Действия) нажмите на пункт Создать простую задачу.
В следующем окне напишите какое-нибудь название для задачи и нажмите Далее.
Далее появится окошко Триггер задачи, в нем вам нужно выбрать, когда запускать заданную задачу. Для большинства ситуаций подходит пункт Однократно.
В следующем окне вам необходимо ввести время, в которое заданная задача будет выполнена.
Далее оставляем действие по умолчанию (Запустить программу).
И вот, наконец, появится самое важное окно, в котором вам нужно будет указать название программы для выполнения задачи выключения компьютера. В строке Программа или сценарий пишете shutdown, а в строке Добавить аргументы добавляете аргументы -s -f. Аргумент -f добавлять необязательно, но он полезен тем, что выполняет принудительное завершение работы программ, которые не хотят закрываться.
Нажимаете кнопку Далее, в следующем окне проверяете, все ли вы сделали правильно и нажимаете на кнопку Готово. Все, задача создана и ваш компьютер теперь самостоятельно завершит работу и отключится в заданное вами время.
Если вы захотите изменить заданное время выключения компьютера, вам нужно будет снова зайти в Планировщик заданий, а затем перейти в раздел Библиотека планировщика заданий.
Щелкните два раза мышкой по заданию выключения компьютера и в появившемся окне перейдите на вкладку Триггеры.
Нажмите на кнопку Изменить и в окне Изменение триггера задайте новое время выполнения задачи.
Чтобы отменить выключение компьютера по расписанию, нажмите правой кнопкой мышки по созданному вами заданию и выберите в контекстном меню пункт Удалить.
Задание таймера выключения через командную строку
Другой способ автоматического выключения компьютера заключается в задании таймера выключения через командную строку в окне Выполнить.
Нажмите на клавиатуре комбинацию клавиш Win+R и введите в окно Выполнить следующую команду: shutdown -s -f -t 3600, где число 3600 означает время, по истечении которого компьютер автоматически завершит свою работу. Время указывается в секундах, следовательно, в данном примере задано выключение через 1 час. Если вам нужно выключить компьютер через два часа, пишите цифру 7200, через три – 10800 и так далее.
В случае, если планы вдруг изменились и вам больше не нужно выключать компьютер в заданное время, введите в окне Выполнить команду shutdown -a. Это отменит задачу на выключение.
Читайте также: