673

我一直在使用远程桌面连接进入工作站。但是在这种环境下,我无法使用开始菜单中的电源选项。我需要另一种关闭或重新启动的方法。

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

4

10 回答 10

1174

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

  • shutdown -s- 关闭。
  • shutdown -r— 重新启动。
  • shutdown -l— 注销。
  • shutdown -h— 冬眠。

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

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

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

上面的命令可以与这些附加选项结合使用:

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

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


我想确保与这个答案一起提到其他一些非常好的答案。在这里,它们没有特定的顺序。

于 2008-10-02T13:37:28.357 回答
377

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

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

shutdown -t 0 -r -f

要获得更友好的“给他们一些时间”选项,您可以使用以下命令:

shutdown -t 30 -r

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

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

于 2008-10-02T13:45:10.930 回答
82

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

shutdown -r -f -m \\machinename

还:

  • -r参数会导致重新启动(这通常是您在远程计算机上想要的,因为物理启动它可能很困难)。
  • -f参数选项强制重启。
  • 当然,您必须具有适当的权限才能关闭远程机器。
于 2009-01-06T14:51:57.987 回答
39

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

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

雷蒙德陈写道:

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

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

这并没有阻止人们使用rundll32来调用并非设计为由rundll32、 likeuser32 LockWorkStation或调用的随机函数user32 ExitWindowsEx

(哎呀)

ExitWindowsEx 的实际函数签名是:

BOOL WINAPI ExitWindowsEx(UINT uFlags, DWORD dwReserved);

并使其一目了然:

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

于 2008-10-02T13:56:18.670 回答
12

另一个小提示:在执行批处理文件路由时,我希望能够中止它,以防我意外运行它。因此,批处理文件会调用关闭,但之后会让您处于命令提示符下。

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

另外,由于它是在计时器上的,因此您会获得与在俄勒冈小径狩猎时一样的快感。

于 2011-06-10T03:12:53.407 回答
7

当远程进入一台机器时(目标是 Windows XP;我不确定目标是 Windows Vista),虽然开始菜单上的ShutdownDisconnect Session或类似的东西取代,但应该有一个名为“Windows Security”的也可以与欧文指出的Ctrl++相同。AltEnd

于 2008-10-02T13:57:09.013 回答
7

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

保存到处都是批处理文件。

于 2008-10-02T14:01:24.337 回答
6

我会在记事本写字板中写这个作为基本的注销命令:

@echo off
shutdown -l

这与手动单击开始和注销基本相同,但如果您准备好批处理文件,则速度会稍快一些。

于 2010-03-11T16:47:42.827 回答
6

我迟到了,但还没有看到这个答案。当您不想使用批处理文件或键入命令时。您可以将焦点设置到桌面,然后使用Alt+ F4

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

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

于 2018-08-15T14:59:47.113 回答
2

对关闭rundll32.exe shell32.dll,SHExitWindowsEx n命令的一些补充。

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

PSShutdown - 需要从 Windows sysinternals 下载。

bootim.exe - Windows 10/8 关机 iu

change/chggon - 防止新用户登录或进行另一个会话

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

wusa /forcerestart /quiet - windows 更新管理器也可以重启机器

tsdiscon - 断开你

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

于 2020-11-05T18:52:47.430 回答