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

我一直在使用远程桌面链接进入工做站。 但在此环境中,我没法使用“开始”菜单中的电源选项。 我须要另外一种方法来关闭或重启。 shell

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


#1楼

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

  • shutdown -s - 关闭。
  • shutdown -r - 从新启动。
  • shutdown -l - 注销。
  • shutdown -h - Hibernates。 spa

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

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

  • shutdown -a - 停止先前的shutdown命令。

上面的命令能够与这些附加选项结合使用: 日志

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

    注意:此选项未在任何官方文档中记录。 它是由这些StackOverflow用户发现的。 orm


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


#2楼

若是您在远程计算机上,则可能还须要添加-f选项以强制从新启动。 不然您的会话可能会关闭,顽固的应用程序可能会挂起系统。

每当我想强制当即重启时我都会使用它:

shutdown -t 0 -r -f

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

shutdown -t 30 -r

正如您在注释中看到的那样,-f由超时隐含。

Brutus 2006是一个为这些选项提供GUI的实用程序。


#3楼

原答案: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信息 在评论中指出

不要将rundll32.exe用于此目的。 它指望您在命令行上传递的函数具备很是特定的方法签名 - 它与ExitWindows的方法签名不匹配。

Raymond CHEN写道:

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开始就被弃用,由于它违反了许多现代工程指南。


#4楼

当远程进入一台机器时(不管如何目标是Windows XP;我不肯定目标Windows Vista),虽然开始菜单上的ShutdownDisconnect Session或相似的东西取代,但应该有一个名为'Windows Security'的与Owen所指向的Ctrl + Alt + End相同。


#5楼

您可能已经意识到这一点,但以防万一:只需在“运行”框中键入shutdown -r (或任何您喜欢的命令)并按Enter便可。

保存各处的剩余批处理文件。

相关文章
相关标签/搜索