Вы отдаете команду завершения работы для этого компьютера в то время как

Обновлено: 05.07.2024

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

Перезагрузить компьютер через командную строку немедленно

Перед началом перезагрузки компьютера через командную строку необходимо разобраться с тем, как именно запускать командную строку. Для этого:

В данном случае мы отправляем системе команду shutdown, то есть принудительное выключение компьютера. Через символ «/» указывается параметр для данной команды. В нашем случае — /r, что означает «перезагрузить» (restart).

Но перезагрузка начнётся не сразу, а только по истечению 60 секунд. Пользователь может указать любое время при помощи дополнительного параметра «/t». То есть в данном случае команда для того, чтобы перезагрузить компьютер через заданное время будет выглядеть так: shutdown /r /t 30, где вместо 30 можно ввести необходимое количество секунд.

Перезагрузка через время

Перезагрузка ПК через командную строку сейчас же

Если же указать shutdown /r /t 0, то это приведёт к тому, что система сразу запускает перезагрузку компьютера, независимо от того, запущены ли пользователем какие-либо программы.

выключение с предупреждением

Системным администраторам нередко приходится удалённо управлять компьютерами, расположенными в офисе. И дистанционно выключать они их тоже могут. А чтобы предупредить пользователей о предстоящем выключении, которые сейчас работают за компьютером, можно воспользоваться специальной командой для командной строки:
shutdown /r /c «Ща всё потухнет! Сохраняйтесь!»


В этом случае на экран удалённого компьютера появится соответствующее уведомление, а после счётчик начнёт отсчитывать 60 секунд. Это время предоставляется пользователю для того, чтобы он мог сохранить все необходимые документы, завершить работу в запущенных приложениях.

Если же указать дополнительный параметр «/t 0», то это приведёт к тому, что компьютер сразу перезагрузится. Но нужно учесть, что отменить выполнение — невозможно.

Если запущена немедленная перезагрузка Windows из командной строки, то ядро системы сразу же блокируется, то есть никакие команды компьютер принимать уже не будет до завершения процесса.

Ярлык для перезагрузки компьютера

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

Далее достаточно дважды кликнуть на созданный ярлык и компьютер сразу начнёт перезагружаться. Нужно обратить внимание, что в данном случае параметры исполнения команды указываются не через символ «/», а через «-».

Отложенное выключение перезагрузка компьютера

Через 10 минут

Отмена выключения перезагрузки компьютера

Отмененная перезагрузка

Предположим, что системный администратор хотел перезагрузить компьютер, потому что какая-то из служб Windows работала неправильно. Он через командную строку сперва ввёл команду shutdown /r /t 300, но в дальнейшем разобрался, в чем была проблема в работе ОС. Как тогда отменить shutdown перезагрузку? Для этого используется команда shutdown /a.

Игнорирование предупреждений при закрытии приложений

Когда пользователь выключает ПК соответствующей кнопкой из меню «Пуск», то может появиться предупреждение о том, что некоторые программы сейчас выполняют какое-либо действие. И чтобы ОС случайно не закрыла их появляется соответствующее уведомление. Выключение временно приостанавливается до завершения программы, которая «мешает» системе выполнить заданную команду.

Предупреждение перед завершением


С помощью командной строки можно принудительно перезагрузить ПК, а вместе с этим — закрыть все запущенные программы, не предупреждая пользователя. Этот вариант пригодится в тех случаях, если какое-то из приложений зависло и не отвечает.

Принудительная перезагрузка

В данном случае в окно командной строки нужно ввести: shutdown /r /f и нажать Enter.

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

Перевод компьютера в режим гибернации

И нужно также убедиться, что на диске С (где установлена система) достаточно места для сохранения файла гибернации. Он занимает столько, сколько установлено в ПК оперативной памяти. То есть если в компьютере 16 гигабайт ОЗУ, то и для включения режима гибернации на системном диске должно быть не менее 16 гигабайт свободного места.

В противном случае функция автоматически отключится.

А чтобы перевести компьютер в режим гибернации из командной строки используется команда: shutdown /h

Завершение сеанса пользователя

Если пользователь желает завершить сеанс и войти в систему под другой учётной записью (гостя, администратора), то для этого можно использовать 2 равносильные команды: logoff или shutdown /l

Переключение командой в СМД shutdown /l


Никакой разницы между ними нет. Каждая из указанных команд выполняет одно и то же действие.

И, как работает в командной строке перезагрузка, завершение сеанса тоже будет выполнено не мгновенно, а с предупреждением и отсчётом в 60 секунд. При помощи параметра для команды «/t 0» это можно сделать немедленно.

Запуск команды shutdown на удалённых компьютерах

Если компьютеры подключены к единой локальной сети, и один из них настроен в качестве сервера с учётной записью администратора, то через него можно управлять всеми остальными компьютерами. Соответственно, это предоставляет возможность дистанционного его выключить или перезагрузить.

Команда shutdown /t 120 /m \\192.168.1.155

Для этого используется команда вида shutdown /t 120 /m \\192.168.1.155 (перезагрузка). Вместо 192.168.1.155 необходимо указать локальный IP-адрес устройства, которому отправляется команда.

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

shutdown /r /t 120 /m \\192.168.1.155

Аналогичным образом выполняется на удалённом компьютере Windows reboot (перезагрузка). Нужно лишь к параметрам команды добавить «/r»

Графический интерфейс команды shutdown

айди Пк

Далеко не всем пользователям комфортно работать через командную строку. Но дистанционно управлять компьютерами в локальной сети (выключать, перезагружать их, завершать сеансы) можно и через графический интерфейс. Всё, что необходимо для этого — это использовать команду shutdown /i

После этого появится окно «Диалог удалённого завершения». Пользователю лишь понадобится выбрать локальный IP-адрес удалённого компьютера, задать параметры команды, нажать «ОК». Там же можно указать и текст предупреждения.

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

Меры предосторожности перед перезагрузкой компьютера через командную строку

Перед выключением или перезагрузкой ПК обязательно нужно сохранить все открытые документы, завершить работу запущенных приложений, чтобы не потерять важные данные. К сожалению, в Windows иногда возникают баги и предупреждение о том, что компьютер выключится — не выводится. Но сама команда — исправно исполняется. Так что использовать интерфейс командной строки рекомендуется только в том случае, если пользователь уверен, что работу ПК можно завершить, никакие данные при этом не будут утеряны. То же относится и к удалённым компьютерам.

Здравствуйте!
С помощью программы shutdown.exe можно инициировать перезагрузку/выключение компьютера.
Вопрос в том: как узнать, на когда запланировано выключение/перезагрузка, и что запланировано, перезагрузка/выключение?

Например, я вызвал shutdown.exe с такими ключами -r -f -t 6000, как теперь в консоли узнать, когда произойдет перезагрузка? И перезагрузка ли это будет, а вдруг выключение?

Для чего? Хочу проверку в забиксе сделать.

  • Вопрос задан более трёх лет назад
  • 2074 просмотра

Оценить 1 комментарий

ulrich-schnauss

landergate

Простого API для получения такой информации не существует.

-- Можно узнать, что в системе запущен отложенный shutdown/restart:
EventLog ID 1074 (STATUS_SHUTDOWN_CLEAN) - событие о плановом рестарте (включая отложенные)
EventLog ID 1074 (WARNING_ISSE_SHUTDOWN_CANCELLED) - событие об отмене рестарта (включая отложенные)

Откладывание рестарта через shutdown /t время вызывает процесс wlmdr.exe, который рисует бабл про "Ваш сеанс работы будет прекращен. Работа Windows будет завершена через 111 мин".

Наличие свежего EventLog по ID 1074 и наличие wlmdr.exe в процессах может указывать на запланированный shutdown/restart. На этих двух условиях можно построить триггер.

-- Можно узнать, что именно будет запущено:
EventLog ID 1074 содержит строчку "Тип выключения" (Shutdown Type), в которой будет "Перезапустить" или "Выключение питания" (на англ.: reboot или shutdown).

-- Низкоуровневый способ узнать и состояние и время:
Можно проверять состояние "ShutdownInProgress" и "ShutdownTime" отладчиком, подключившись к winlogon.exe.

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

Что происходит, когда Вы завершаете работу Windows

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

Проверка Windows при выходе из пользователя (при выключении)

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

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

Windows сообщает программам, чтобы сохранить их работу и закрыть

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

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

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

Выход из Windows

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

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

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

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

Выключение Windows

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

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

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

Windows отключает компьютер

Наконец, Windows отправляет сигнал выключения ACPI на Ваш компьютер. Это говорит о том, что Ваш компьютер отключается физически. Процесс завершения работы завершен.

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

Зачем использовать CMD и PowerShell для выключения компьютера

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

  • Вам как системному администратору может выпасть честь работать с Windows Server Core, которая не имеет графического интерфейса и если вам вдруг нужно завершить работу такого сервера или виртуальной машины для обслуживания, вы обязаны это уметь.
  • Вторая ситуация может возникнуть, на компьютерах, где политиками или иными методами была выключена возможность завершать работу компьютера. Вот вам пример, что есть только пункт "Выход".

Отсутствует кнопка завершение работы

  • Третья ситуация, это различные сценарии, подразумевающие использование скриптом, например массово выключить компьютеры по списку, полет фантазии тут огромный.
  • Так же не нужно забывать про удаленное выключение систем, PowerShell, как и был призван одним из основных инструментов по удаленному управлению Windows, но командная строка так же позволяет это выполнить.

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

Для начала давайте я вам напомню, как производилось выключение компьютера из командной строки, если вы постоянный читатель моего блога, то помните, что мы уже создавали задание по выключению систему по таймеру, там мы так же использовали cmd. Что мы делаем, открываем окно командной строки, желательно в режиме администратора, чтобы все команды у вас точно отработали.

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

справка команды shutdown

Утилита имеет большое количество ключей для различных сценариев.

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

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

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

Всплывающее окно при выполнении команды shutdown

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

При t = 0 у меня будет произведено моментальное выключение компьютера, если же я например задам 180, что равносильно трем минутам, то вы увидите вот такое окно:

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

Если у вас время в ключе /f задано более 0, то вы можете столкнуться с ситуацией, что какие-то приложения могут не дать завершить работу системы и выключить компьютер. В таких сценариях вы можете принудительно их завершать, для этого есть ключ /f:

Или вы вообще можете захотеть, выключить компьютер через 2 часа. это в секундах 7200. Так же есть отдельный ключ, который сразу завершает работу вашей системы, без ввода времени, этот ключ /p. В итоге можно выключить компьютер командой

команда shutdown с комментарием

Если вы хотите задать комментарий при выключении компьютера из командной строки и задать причину, то есть ключи /c и /d. Ключ /c задает комментарий, который не может быть длиннее, чем 512 символов. Ключ /d указывает причину, тут может быть совместный ключ "p", означающий запланированное завершение или же ключ "u", означающий что причину указывает пользователь.

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

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

Событие 1074 после выключения компьютера через командную строку

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

CMD может легко взаимодействовать и с удаленными системами, давайте я покажу, как вы можете завершить работу Windows у двух удаленных компьютеров, у меня это будет система с Windows 10 под именем W10-cl02. Для этого мы используем ключ "m".

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

В результате у вас откроется форма "Диалог удаленного завершения работы", я его уже вам показывал при массовом выключении компьютеров.

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

Нажимаем кнопку "Добавить" и вводим нужные вам сервера и рабочие станции которые вы планируете выключить.

Добавление компьютеров для выключения

В выборе действий, указываем "Завершение работы", ставим галку "Предупредить пользователей об этом действии" если нужно сделать отложенное выключение, можете хоть выставить 2 часа. Указываете причину и комментарий при необходимости.

Предупредить пользователей об этом действии

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

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

Как видите утилита командной строки shutdown.exe даже в нынешнее время Windows 10, является отличным инструментом, умеющим выключать компьютер с Windows по нужному сценарию. дополнительную информацию про утилиту shutdown вы можете посмотреть по ссылке:

Как как выключить компьютер через PowerShell

Теперь давайте обратимся к более современному инструменту, а именно к оболочке PowerShell. Открываем ее в режиме администратора, нас будет интересовать командлет Stop-Computer. Если вы его просто введете в оболочке на локальном компьютере, то у вас начнется завершение работы.

Удаленное выключение компьютера из PowerShell

Теперь давайте посмотрим справку по данному командлету, для этого введите

Справка Stop-Computer

Как видим командлет имеет много дополнительных ключей.

Удаленное выключение компьютера из PowerShell

Командлет Stop-Computer имеет ключ -ComputerName через который можно указать список систем, требующих завершения работы. У меня есть два удаленных компьютера с Windows 10, w10-cl02 и w10-cl03. Давайте их выключим, вводим команду:

Если на текущий момент на удаленных компьютерах. кто-то работает, то вы получите ошибку:


Stop-Computer : Не удается выполнить команду на конечном компьютере ("w10-cl02") из-за следующей ошибки: Невозможно инициировать завершение работы системы, так как компьютер используется другими пользователями.
строка:1 знак:1
+ Stop-Computer -ComputerName w10-cl02, w10-cl03
+

Stop-Computer : Не удается выполнить команду на конечном компьютере ("w10-cl03") из-за следующей ошибки: Невозможно инициировать завершение работы системы, так как компьютер используется другими пользователями.
строка:1 знак:1
+ Stop-Computer -ComputerName w10-cl02, w10-cl03
+

Невозможно инициировать завершение работы системы, так как компьютер используется другими пользователями

Чтобы это обойти вы можете добавить ключик -Force, который сделает принудительное выключение

Форсированное выключение компьютера через powershell

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

Выключение компьютера с задержкой по времени через PowerShell

И так, как выключить компьютер через определенное время, так как у вас легко может возникнуть такой сценарий. Для решения вопроса со временем есть командлет Start-Sleep.

Start-Sleep -Seconds 60; Stop-Computer -ComputerName w10-cl02, w10-cl03 -Force

Выключение компьютера с задержкой по времени через PowerShell

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

$s = Get-Content -Path C:\computers.txt
$c = Get-Credential root\sem
Start-Sleep -Seconds 60; Stop-Computer -ComputerName $s -Force -Credential $c

Удаленное выключение компьютера из PowerShell

Дополнительную информацию, по командлету Stop-Computer я вам советую поискать на сайте Microsoft

Как выключить компьютер через WMI запрос

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

[info](Get-WmiObject Win32_OperatingSystem -EnableAllPrivileges).Win32Shutdown(1)[/info]

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

(Get-WmiObject Win32_OperatingSystem -EnableAllPrivileges).Win32Shutdown(5)

Как выключить компьютер через WMI запрос

Создание ярлыка выключения компьютера

Если вы хотите вынести себе функцию выключения вашего компьютера в виде отдельного файла-ярлыка, вы можете это легко реализовать. Щелкаете правой кнопкой мыши по рабочему столу и выбираем пункт "Создать - Ярлык"

Создание ярлыка выключения компьютера

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

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