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



Я использую Подключение К Удаленному Рабочему Столу чтобы попасть в станцию, но я не могу использовать функцию выключения/перезагрузки в меню "Пуск" при этом.



Я поставил несколько действительно полезных вариантов в ответ ниже.



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



и здесь они не в особом порядке.





  • Силу отключение от JosephStyons


  • Выполнение DLL-файла из VonC


  • Запустите его из коробки запуска от Дина


  • Удаленное завершение работы с Кип

826   9  

9 ответов:

вот как сделать функции выключения через пакетный файл:

  • shutdown -r - перезагрузится
  • shutdown -s - shutsdown
  • shutdown -l - выход
  • shutdown -t xx - где xx - это количество секунд до выключения/перезагрузки/выхода из системы
  • shutdown -i - дает вам диалоговое окно для заполнения, какую функцию вы хотите использовать
  • shutdown -a - прерывает предыдущую команду выключения....очень удобно!
  • shutdown -h - спящий режим. легкая ошибка - это не поможет
  • shutdown -y - удаляет все подсказки при выключении (справка недоступна в любой документации)

дополнительные опции:

  • -f - принудительно выполнить выбранное действие
  • -t <seconds> - установить время выключения. Используйте -t 0 для "Сейчас"
  • -c <message> - добавляет сообщение в Shutdown

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

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

shutdown -t 0 -r -f

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

shutdown -t 30 -r

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

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

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

shutdown -r -f -m \machinename

также:

  • The -r параметр вызывает перезагрузку (обычно это то, что вы хотите на удаленной машине, так как физически запустить его может быть сложно).
  • The -f параметр принудительно перезагружает компьютер.
  • вы должны иметь соответствующие привилегии, чтобы выключить удаленную машину, конечно.

оригинальный ответ: октября. 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 XP в любом случае; я не уверен в целевой Windows Vista), хотя Shutdown в меню "Пуск" заменяется Отключить Сеанс или что-то в этом роде, должен быть один под названием "Безопасность Windows", который также делает то же самое, что и Ctrl + Alt + конец как отметил Оуэн.

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

сохраняет пакетные файлы, лежащие повсюду.

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

@echo off
shutdown -l

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

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

Windows спросит вас, что вы хотите сделать, выберите shutdown или restart.

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

Comments

    Ничего не найдено.