我一直在使用远程桌面连接进入工作站。但在这种环境下,我无法使用开始菜单中的电源选项。我需要另一种方法来关闭或重新启动。
如何通过命令行控制计算机的电源状态?
我一直在使用远程桌面连接进入工作站。但在这种环境下,我无法使用开始菜单中的电源选项。我需要另一种方法来关闭或重新启动。
如何通过命令行控制计算机的电源状态?
当前回答
如果您在远程计算机上,您可能还想添加-f选项来强制重新启动。否则,您的会话可能会关闭,顽固应用程序可以挂起系统。
每当我想强制立即重新启动时,我都会使用这个方法:
shutdown -t 0 -r -f
对于一个更友好的“给他们一些时间”选项,你可以使用这个:
shutdown -t 30 -r
正如您在注释中看到的,超时暗示了-f。
Brutus 2006是一个为这些选项提供GUI的实用程序。
其他回答
使用shutdown命令最常见的方法有:
shutdown -s — Shuts down. shutdown -r — Restarts. shutdown -l — Logs off. shutdown -h — Hibernates. Note: There is a common pitfall wherein users think -h means "help" (which it does for every other command-line program... except shutdown.exe, where it means "hibernate"). They then run shutdown -h and accidentally turn off their computers. Watch out for that. shutdown -i — "Interactive mode". Instead of performing an action, it displays a GUI dialog. shutdown -a — Aborts a previous shutdown command.
上面的命令可以与这些附加选项组合:
-f -强制程序退出。防止关机过程被卡住。 -t <seconds> -设置直到关机的时间。使用-t 0立即关机。 -c <message> -添加一个关闭消息。消息将在事件日志中结束。 -y -对所有关机查询强制回答“是”。 注意:此选项在任何官方文档中都没有记录。是由这些StackOverflow用户发现的。
我想确定一些其他的很好的答案也被提到了。这里没有特别的顺序。
JosephStyons的-f选项 从VonC使用rundll32 迪恩的运行框 从Kip远程关机
另一个小技巧:当采用批处理文件路径时,我希望能够中止它,以防意外运行它。因此,批处理文件调用关机,但随后将您留在命令提示符处。
@echo off
echo Shutting down in 10 seconds. Please type "shutdown /a" to abort.
cmd.exe /K shutdown /f /t 10 /r
此外,由于它是在计时器上,你会得到与你在俄勒冈小径狩猎时相同的刺激。
我来晚了,但还没有看到这个答案。 当您不想使用批处理文件或键入命令时。你可以设置焦点到桌面,然后使用Alt + F4。
Windows会询问你想要做什么,选择关闭还是重新启动。
要截图甚至视频,请访问:https://tinkertry.com/how-to-shutdown-or-restart-windows-over-rdp
如果您在远程计算机上,您可能还想添加-f选项来强制重新启动。否则,您的会话可能会关闭,顽固应用程序可以挂起系统。
每当我想强制立即重新启动时,我都会使用这个方法:
shutdown -t 0 -r -f
对于一个更友好的“给他们一些时间”选项,你可以使用这个:
shutdown -t 30 -r
正如您在注释中看到的,超时暗示了-f。
Brutus 2006是一个为这些选项提供GUI的实用程序。
原答案:2008年10月
你还得到了所有的“rundll32.exe shell32.dll”系列:
(见下文更新)
rundll32.exe user.exe,**ExitWindows**[快速关闭Windows] rundll32.exe user.exe,**ExitWindowsExec**[重启Windows] n . rundll32.exe shell32.dll,SHExitWindowsEx
其中n代表:
0 -注销 1 -关机 2 -重启 4 -力 8 -关机
(可组合-> 6 = 2+4 FORCE REBOOT)
2015年4月更新(6年以上):
1800 INFORMATION在评论中指出:
不要为此目的使用rundll32.exe。它期望您在命令行传递的函数具有非常特定的方法签名——它与ExitWindows的方法签名不匹配。
Raymond CHEN写道:
在2004年,“当你不匹配调用约定时,会出什么问题?”:
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);
2011年:《在人行道上扔垃圾:rundll32项目的悲惨历史》
更明确地说:
什么时候使用rundll32的指导是什么?简单:不要用它”:
Rundll32是Windows 95遗留下来的,至少从Windows Vista开始就被弃用了,因为它违反了许多现代工程指南。