如何通过bat文件关闭,重启或注销Windows?

时间:2008-10-02 13:37:02

标签: windows batch-file command-line restart shutdown

我一直在使用Remote Desktop Connection进入工作站。但在此环境中,我无法使用“开始”菜单中的电源选项。我需要另一种方法来关机或重启。

如何通过命令行控制计算机的电源状态?

10 个答案:

答案 0 :(得分:1145)

使用shutdown命令的最常用方法是:

  • shutdown -s - 关闭。
  • shutdown -r - 重新开始。
  • shutdown -l - 注销。
  • shutdown -h - Hibernates。

    注意:有一个常见的陷阱,用户认为-h意味着“帮助”(它对每个其他命令行程序都有帮助......除了shutdown.exe,这意味着“休眠”)。然后他们运行shutdown -h并意外关闭他们的计算机。请注意这一点。

  • shutdown -i - “互动模式”。它不显示操作,而是显示GUI对话框。

  • shutdown -a - 中止先前的关机命令。

上述命令可与以下附加选项结合使用:

  • -f - 强制程序退出。防止关机过程卡住。
  • -t <seconds> - 设置关机前的时间。使用-t 0立即关闭。
  • -c <message> - 添加关闭消息。该消息将在事件日志中结束。
  • -y - 对所有关机查询强制回答“是”。

    注意:此选项未在任何官方文档中记录。它是由these StackOverflow users发现的。


我想确保还提到其他一些非常好的答案。在这里他们没有特别的顺序。

答案 1 :(得分:374)

如果您在远程计算机上,则可能还需要将-f选项添加到强制重新启动。否则,您的会话可能会关闭,顽固的应用程序可能会挂起系统。

每当我想强行立即重启时,我都会使用它:

shutdown -t 0 -r -f

为了更友好的“给他们一些时间”选项,你可以使用:

shutdown -t 30 -r

正如您在评论中看到的那样,超时暗示了-f。

Brutus 2006 is a utility that provides a GUI for these options.

答案 2 :(得分:81)

没有人提到远程关机的-m选项:

shutdown -r -f -m \\machinename

此外:

  • -r参数导致重新启动(这通常是您在远程计算机上所需的,因为实际启动它可能很困难。)
  • -f参数选项强制重启。
  • 当然,您必须具有关闭远程计算机的适当权限。

答案 3 :(得分:37)

原始答案:2008年10月

你还得到了所有 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年4月更新(6年后):

1800 INFORMATION请指出in the comments

  

请勿将rundll32.exe用于此目的。它期望您在命令行上传递的函数具有非常特定的方法签名 - 它与ExitWindows的方法签名不匹配。

Raymond CHEN写道:

  

rundll32.exe调用的函数所需的函数签名是:

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

这并没有阻止人们使用rundll32来调用rundll32无法调用的随机函数,例如user32 LockWorkStationuser32 ExitWindowsEx

(糟糕)

  

ExitWindowsEx的实际功能签名是:

BOOL WINAPI ExitWindowsEx(UINT uFlags, DWORD dwReserved);

让它变得清晰:

  

Rundll32是Windows 95的遗留物,至少从Windows Vista开始就被弃用,因为它违反了许多现代工程指南。

答案 4 :(得分:10)

另一个小提示:当进入批处理文件路径时,我希望能够在意外运行它时中止它。因此,批处理文件会调用关闭,但之后会在命令提示符下离开。

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

另外,由于它是在计时器上,你会得到与hunting in The Oregon Trail时相同的刺激。

答案 5 :(得分:7)

当远程连接到一台机器时(目标是Windows XP无论如何;我不确定目标Windows Vista),虽然开始菜单上的 Shutdown 断开连接会话替换或类似的东西,应该有一个名为'Windows安全',它也与 Ctrl + Alt + 结束指向同样的事情欧文。

答案 6 :(得分:7)

你可能已经意识到了这一点,但为了以下情况:只需在“运行”框中输入shutdown -r(或任何你喜欢的命令),然后点击回车就更容易了。

保存处于任何地方的剩余批处理文件。

答案 7 :(得分:5)

我参加聚会很晚,但尚未看到此答案。 当您不想使用批处理文件或键入命令时。您只需将焦点设置在桌面上,然后使用 Alt + F4

Windows会询问您要做什么,选择关机或重新启动。

有关屏幕截图甚至是视频的信息,请参见:https://tinkertry.com/how-to-shutdown-or-restart-windows-over-rdp

答案 8 :(得分:4)

我会在NotepadWordPad中写一个基本的注销命令:

@echo off
shutdown -l

这与手动点击开始和注销基本相同,但如果准备好批处理文件,它会稍快一点。

答案 9 :(得分:1)

shutdownrundll32.exe shell32.dll,SHExitWindowsEx n命令的一些补充。

LOGOFF-允许您通过sessionid或会话名称注销用户

PSShutdown-需要从Windows sysinternals下载。

bootim.exe-Windows 10/8关机iu

change/chglogon-阻止新用户登录或进行其他会话

NET SESSION /DELETE-为用户结束会话

wusa /forcerestart /quiet-Windows Update Manager,但也可以重新启动计算机

tsdiscon-与您断开连接

rdpinit -将您注销,尽管我目前找不到任何文档