Как мне завершить работу, перезапустить или выйти из Windows с помощью bat-файла?

StackOverflow https://stackoverflow.com/questions/162304

Вопрос

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

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

Это было полезно?

Решение

Наиболее распространенные способы использования 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.


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

Другие советы

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

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

shutdown -t 0 -r -f

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

shutdown -t 30 -r

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

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

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

shutdown -r -f -m \\machinename

Также:

  • Тот Самый -r параметр вызывает перезагрузку (что обычно и требуется на удаленном компьютере, поскольку физически запустить его может быть сложно).
  • Тот Самый -f параметр option принудительно выполняет перезагрузку.
  • Разумеется, у вас должны быть соответствующие привилегии, чтобы выключить удаленный компьютер.

Оригинальный ответ:Октябрь.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, поскольку нарушает множество современных технических рекомендаций.

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

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

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

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

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

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

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

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

Снимки экранов и даже видео см. по адресу: https: / /tinkertry.com/how-to-shutdown-or-restart-windows-over-rdp

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

@echo off
shutdown -l

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top