我一直使用远程桌面连接来进入一个工作站。但在这种环境下,我无法使用 "开始菜单 "中的电源选项。我需要一种替代方法来关闭或重新启动。
我如何通过命令行控制我的计算机的电源状态?
使用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
- 对所有的关机查询强制使用"yes"答案。
注意:这个选项在任何官方文档中都没有记录。它是由这些StackOverflow用户发现的。
我想确保其他一些非常好的答案也与这个答案一起被提及。在这里,它们没有特定的顺序。
-f
选项]3 来自JosephStyons 。rundll32
来自VonC 。如果你在一台远程机器上,你可能还想加上-f选项来强制重启。 否则你的会话可能会关闭,一个顽固的应用程序可能会挂起系统。
每当我想立即强制重启时,我都会使用这个选项。
shutdown -t 0 -r -f
要想获得更友好的"给他们一些时间"选项,你可以用这个。
shutdown -t 30 -r
正如你在评论中看到的,-f是由超时隐含的。
原始答案。2008年10月
你也得到了所有的" serie。rundll32.exe shell32.dll
"
(见下面的更新)
rundll32.exe user.exe,**ExitWindows**
[快速关闭Windows]
rundll32.exe user.exe,**ExitWindowsExec**
[重新启动Windows]
rundll32.exe shell32.dll,SHExitWindowsEx n
其中n
代表。
(可以合并 -> 6 = 2+4 `FORCE REBOOT')
不要使用
rundll32.exe
来达到这个目的。它希望你在命令行上传递的函数有一个非常特殊的方法签名--它不符合ExitWindows
的方法签名。
Raymond CHEN 写道。
rundll32.exe
调用的函数所需的函数签名是。
void CALLBACK ExitWindowsEx(HWND hwnd, HINSTANCE hinst,
LPSTR pszCmdLine, int nCmdShow);
这并没有阻止人们使用
rundll32
调用随机函数,而这些函数并不是设计给rundll32
调用的,如user32 LockWorkStation
或user32 ExitWindowsEx
。
(oops)
ExitWindowsEx的实际函数签名是。
BOOL WINAPI ExitWindowsEx(UINT uFlags, DWORD dwReserved);
为了让它变得清晰明了。
Rundll32
是Windows 95的遗留物,它至少从Windows Vista开始就被废弃了,因为它违反了很多现代工程准则。