Как мне завершить работу, перезапустить или выйти из Windows с помощью bat-файла?
-
03-07-2019 - |
Вопрос
Я использовал Подключение к удаленному рабочему столу чтобы попасть на рабочее место.Но в этой среде я не могу использовать параметры питания в меню "Пуск".Мне нужен альтернативный способ завершения работы или перезагрузки.
Как мне контролировать состояние питания моего компьютера с помощью командной строки?
Решение
Наиболее распространенные способы использования 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);
И сделать это кристально чистым:
- в 2013 году "Каковы рекомендации относительно того, когда использовать 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
Кроме того, поскольку он работает по таймеру, вы получаете примерно те же ощущения, что и когда охота на Орегонской тропе .
При удаленном подключении к машине (в любом случае это 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 р>