Как выключить, перезапустить или выйти из Windows через файл bat?

Я использовал Remote Desktop Connection, чтобы попасть на рабочую станцию. Но в этой среде я не могу использовать параметры питания в меню «Пуск». Мне нужен альтернативный способ выключения или перезагрузки.

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

2.10.2008 13:37:01
9 ОТВЕТОВ
РЕШЕНИЕ

Наиболее распространенные способы использования shutdownкоманды:

  • shutdown -s - Выключается.
  • shutdown -r - Перезагрузка.
  • shutdown -l - Выход из системы.
  • shutdown -h - зимует.

    Примечание. Существует распространенная ошибка, когда пользователи считают -h«помощь» (что она делает для любой другой программы командной строки ... за исключением случаев shutdown.exe, когда это означает «спящий режим»). Затем они запускаются shutdown -hи случайно выключают свои компьютеры. Остерегайтесь этого.

  • shutdown -i- «Интерактивный режим». Вместо выполнения действия он отображает диалоговое окно с графическим интерфейсом.

  • shutdown -a - Отмена предыдущей команды выключения.

Команды выше могут быть объединены с этими дополнительными опциями:

  • -f- Принудительно завершает программы. Предотвращает застревание процесса выключения.
  • -t <seconds>- Устанавливает время до выключения. Используйте -t 0для немедленного выключения.
  • -c <message>- Добавляет сообщение о выключении. Сообщение попадет в журнал событий.
  • -y - Принудительно отвечает «да» на все запросы на отключение.

    Примечание. Этот параметр не задокументирован ни в одной официальной документации. Это было обнаружено этими пользователями StackOverflow .


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

1163
11.11.2018 05:25:00
Прочтите об использовании -f (для силы) в следующем ответе. Говорит парень, у которого этого не было, а теперь у него
pasx 31.08.2013 03:22:05
+1 только что я использовал /<switch>вместо -<switch>. Раздел справки также использует /.
legends2k 22.04.2014 07:17:47
Мой опыт: использование опции -s (завершение работы) в удаленном рабочем столе (как упоминается в OP) только завершает работу удаленного рабочего стола, но оставляет удаленный компьютер без изменений.
Heri 31.12.2014 16:48:37
Я использую "-r" для удаленных машин. Так что он перезагрузится и не нуждается в ручном вмешательстве.
granadaCoder 11.04.2016 20:48:52
Если вы находитесь на удаленном компьютере, вы также можете добавить -fопцию принудительной перезагрузки. В противном случае ваша сессия может закрыться, и упрямое приложение может повесить систему. Чтобы выполнить немедленную перезагрузку: shutdown -t 0 -r -f. Для более дружественной «дать им какое - то время» вариант, вы можете использовать это: shutdown -t 30 -r. Это -fподразумевается таймаутом. (из предложенного редактирования Матеушем Конечным )
Ole V.V. 8.02.2017 11:27:22

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

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

shutdown -t 0 -r -f

Для более дружественного варианта «дайте им время» вы можете использовать это:

shutdown -t 30 -r

Как вы можете видеть в комментариях, тайм-аут подразумевает -f.

Brutus 2006 - это утилита, которая предоставляет графический интерфейс для этих параметров.

375
21.12.2014 23:48:54
Читая справку по завершению работы в Windows 8.1, я вижу: «Если время ожидания больше 0, подразумевается параметр / f». И поскольку время ожидания по умолчанию составляет 30 секунд, я думаю, что предпочтительнее дать некоторое время для чистого отключения, а затем принудительное отключение происходит после истечения времени ожидания.
Zitrax 21.02.2014 11:41:55
Неплохо подмечено. Я считаю, что когда я писал это, я использовал ОС Windows XP. Я вижу, что замечание «/ f подразумевается» также в Windows 7. Я изменил пример соответственно.
JosephStyons 21.12.2014 23:47:36
По умолчанию у них есть 30 секунд. Я использую для немедленного: shutdown / r / t 0 и для дружественного: shutdown / r
dzampino 18.09.2015 19:44:45

Оригинальный ответ: октябрь 2008

Вы также получили все " rundll32.exe shell32.dll" серия:

(см. обновление ниже)

  • rundll32.exe user.exe,**ExitWindows** [Быстрое выключение Windows]
  • rundll32.exe user.exe,**ExitWindowsExec** [Перезагрузить Windows]

    rundll32.exe shell32.dll,SHExitWindowsEx n
    

где nобозначает:

  • 0 - LOGOFF
  • 1 - SHUTDOWN
  • 2 - REBOOT
  • 4 - FORCE
  • 8 - POWEROFF

(можно комбинировать -> 6 = 2 + 4 FORCE REBOOT)


Обновление апрель 2015 (6+ лет спустя):

1800 ИНФОРМАЦИЯ любезно указывает в комментариях :

Не используйте rundll32.exeдля этого. Ожидается, что функция, которую вы передали в командной строке, имеет очень специфическую сигнатуру метода - она ​​не соответствует сигнатуре метода ExitWindows.

Раймонд ЧЭН написал:

Подпись функции, требуемая для функций, вызываемых rundll32.exe:

void CALLBACK ExitWindowsEx(HWND hwnd, HINSTANCE hinst,
       LPSTR pszCmdLine, int nCmdShow);

Это не помешало людям использовать rundll32для вызова случайных функций, которые не были предназначены для вызова rundll32, например, user32 LockWorkStationили user32 ExitWindowsEx.

(Ой)

Фактическая сигнатура функции для ExitWindowsEx:

BOOL WINAPI ExitWindowsEx(UINT uFlags, DWORD dwReserved);

И чтобы сделать это кристально ясно:

Rundll32 является остатком Windows 95, и он устарел, по крайней мере, с Windows Vista, потому что он нарушает многие современные технические рекомендации.

37
23.05.2017 11:55:19
Какая разница между выключением и отключением питания?
Asdfg 16.06.2012 22:08:13
@ Asdfg сегодня? никто. Для NT4 и более ранних версий материнская плата не всегда поддерживала отключение питания, только выключение (окна были полностью закрыты, но компьютер все еще находился под напряжением). Только отключение питания (если оборудование поддерживало его в то время) закрывало окна и отключало электричество. Сегодня как выключение, так и отключение питания делают это.
VonC 17.06.2012 08:26:55
Не используйте rundll32.exe для этой цели. Ожидается, что функция, которую вы передали в командной строке, имеет очень специфическую сигнатуру метода - она ​​не соответствует сигнатуре метода ExitWindows.
1800 INFORMATION 28.04.2015 03:58:42
@ 1800ИНФОРМАЦИЯ очень хорошая мысль. Я переписал ответ, чтобы было ясно, что это недопустимый вариант.
VonC 28.04.2015 05:52:05
Чтобы быть справедливым, однако, действительно не имеет значения, какой тип утечки памяти или повреждения стека вы вызываете, если вы немедленно выключаете компьютер.
PRMan 23.11.2015 17:35:57

Когда удаленного вызова в машину (цель Windows XP в любом случае, я не уверен насчет цели Windows Vista), хотя Shutdown в меню Пуск заменяется Disconnect сессии или что - то подобное, должно быть один называется «Безопасность Windows» , который также делает то же самое, что Ctrlи Alt++, на Endчто указал Оуэн.

7
28.05.2017 22:57:09
Я использовал этот метод, но он больше не работает, это командная строка.
UbuntuForums_Staff_Are_Trolls 31.07.2016 02:13:23
У меня также есть гаджет, который имеет кнопки для выключения, перезагрузки, спящего режима, блокировки, которая работает в RDP.
UbuntuForums_Staff_Are_Trolls 31.07.2016 02:18:07

Вы, вероятно, знаете об этом, но на всякий случай: гораздо проще просто набрать shutdown -r(или любую другую команду, которая вам нравится) в поле «Выполнить» и нажать Enter.

Сохраняет оставленные командные файлы повсюду.

7
12.06.2018 22:11:24
да ... я просто хотел бы, чтобы двойной щелчок сидел там ... для этого тоже нужен файл -r bat; o)
Keng 2.10.2008 14:11:14
осторожно, чтобы не ставить его в программы-> автозапуск :)
Dean Rather 2.10.2008 14:13:18
ау ... и странное поведение будет получено, если код будет помещен в файл shutdown.bat. Попытайся!
Brethlosze 25.07.2016 04:22:08

Никто не упомянул -mвариант для удаленного отключения:

shutdown -r -f -m \\machinename

Также:

  • -rПараметр вызывает перезагрузку (который, как правило , то , что вы хотите на удаленной машине, так как физически , начиная это может быть трудно).
  • -fОпция параметр заставляет перезагрузку.
  • Конечно, у вас должны быть соответствующие права для выключения удаленного компьютера.
81
6.01.2009 14:51:57
может ли имя машины быть IP-адресом? То есть, вы можете сделать это через Интернет?
mcmillab 24.06.2016 03:18:14
Если вы можете получить доступ к машине через \\IP.AD.DR.ESS(т. Е. Необходимые порты открыты и у вас есть необходимые разрешения), то да, это должно работать через Интернет.
Timothy Zorn 20.01.2017 13:53:47
Сначала я попробовал только с -r, и это не сработало, потому что я хотел удаленного выключения. Он работал с выключением -r -m. -ф был не нужен.
Dchris 31.03.2017 08:37:29

Я написал бы это в Блокноте или WordPad для основной команды выхода из системы:

@echo off
shutdown -l

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

6
28.05.2017 22:58:01

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

@echo off
echo Shutting down in 10 seconds. Please type "shutdown /a" to abort.
cmd.exe /K shutdown /f /t 10 /r

Кроме того, так как он работает по таймеру, вы получаете примерно те же ощущения, что и при охоте в Орегонской тропе .

10
10.06.2011 03:12:53
Вы можете поставить pause в файле ванны, а затем команду abort, такая последовательность прерывания будет любой клавишей
rsk82 19.12.2013 15:09:54
@ rsk82, возможность печатать что-либо было неудачным ограничением моей копии TRS-80 Oregon Trail, но, честно говоря, я всегда считал это обманом, и мой брат был в ярости всякий раз, когда я делал это. Просто говорю: почему ты хочешь разозлить моего брата?
Gavin 24.06.2014 01:22:53

Я опоздал на вечеринку, но пока не видел этот ответ. Если вы не хотите использовать командный файл или введите команду. Вы можете просто установить фокус на рабочий стол и затем использовать Alt+ F4.

Windows спросит вас, что вы хотите сделать, выберите выключение или перезагрузку.

Для скриншотов и даже видео, смотрите: https://tinkertry.com/how-to-shutdown-or-restart-windows-over-rdp

5
15.08.2018 14:59:47
@Keng, читая актуальную проблему «Я не могу использовать функцию выключения / перезапуска в меню« Пуск »», мне кажется, что вы хотите знать, как это сделать. Командная строка - это одно решение, клавиатура - другое. Это может помочь другим пользователям, которые сталкиваются с этим вопросом и просто хотят простое решение для выключения или перезапуска.
msoft 21.08.2018 07:27:41