Как мне выключить, перезагрузить или выйти из Windows через файл bat?
Я использовал Remote Desktop Connection, чтобы попасть на рабочую станцию. Но в этой среде я не могу использовать параметры питания в меню "Пуск". Мне нужен альтернативный способ выключения или перезагрузки.
Как я могу контролировать состояние питания моего компьютера через командную строку?
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
- Принудительно отвечает "да" на все запросы на выключение.Примечание. Этот параметр не задокументирован ни в одной официальной документации. Это было обнаружено этими пользователями Stackru.
Я хочу убедиться, что некоторые другие действительно хорошие ответы также упоминаются вместе с этим. Здесь они в произвольном порядке.
-
-f
вариант от JosephStyons - С помощью
rundll32
от VonC - Бегущая коробка от Dean Rather
- Дистанционное отключение от Kip
Если вы находитесь на удаленном компьютере, вы также можете добавить опцию -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 INFORMATION любезно указывает в комментариях:
Не использовать
rundll32.exe
для этого. Ожидается, что функция, которую вы передали в командной строке, имеет очень специфическую сигнатуру метода - она не соответствует сигнатуре методаExitWindows
,
Раймонд ЧЭН написал:
- в 2004 году " Что может пойти не так, если вы не соответствуете правилам вызова? ":
Подпись функции, необходимая для функций, вызываемых
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);
- в 2011 году: " Выбрасывать мусор на тротуаре: печальная история программы rundll32 "
И чтобы сделать это кристально чистым:
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
Кроме того, так как он работает по таймеру, вы получаете примерно те же ощущения, что и при охоте на Орегонской тропе.
Вы, вероятно, знаете об этом, но на всякий случай: гораздо проще просто набрать shutdown -r
(или любую другую команду, которая вам нравится) в поле "Выполнить" и нажмите Enter.
Сохраняет оставленные пакетные файлы повсюду.
При удаленном подключении к компьютеру (в любом случае целью является Windows XP; я не уверен насчет целевой Windows Vista), хотя в меню "Пуск" вместо " Отключить сеанс" или что-то в этом роде должен существовать такой, который называется "Безопасность Windows", который также выполняет то же самое, что Ctrl + Alt + End, как указано Оуэном.
Я опоздал на вечеринку, но пока не видел этот ответ. Если вы не хотите использовать командный файл или введите команду. Вы можете просто установить фокус на рабочий стол, а затем использовать Alt + F4.
Windows спросит вас, что вы хотите сделать, выберите выключение или перезагрузку.
Для скриншотов и даже видео, смотрите: https://tinkertry.com/how-to-shutdown-or-restart-windows-over-rdp
Некоторые дополнения к выключению и
rundll32.exe shell32.dll,SHExitWindowsEx n
команды.
LOGOFF - позволяет вам выйти из системы по идентификатору сеанса или имени сеанса
PSShutdown - требует загрузки из windows sysinternals.
bootim.exe - выключение windows 10/8 iu
change / chglogon - запрещает новым пользователям входить в систему или переходить в другой сеанс
NET SESSION /DELETE - завершает сеанс для пользователя
wusa / forcerestart / quiet - менеджер обновлений Windows, но также может перезагрузить компьютер
tsdiscon - отключает вас
rdpinit - выводит вас из системы, хотя на данный момент я не могу найти никакой документации