【发布时间】:2010-09-14 19:22:38
【问题描述】:
我一直在使用Remote Desktop Connection 进入工作站。但是在这种环境下,我无法使用开始菜单中的电源选项。我需要一种替代方法来关闭或重新启动。
如何通过命令行控制电脑的电源状态?
【问题讨论】:
标签: windows batch-file command-line restart shutdown
我一直在使用Remote Desktop Connection 进入工作站。但是在这种环境下,我无法使用开始菜单中的电源选项。我需要一种替代方法来关闭或重新启动。
如何通过命令行控制电脑的电源状态?
【问题讨论】:
标签: windows batch-file command-line restart shutdown
使用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 — 对所有关闭查询强制回答“是”。
注意:此选项未记录在任何官方文档中。被these StackOverflow users发现。
我想确保与这个答案一起提到其他一些非常好的答案。在这里它们没有特定的顺序。
【讨论】:
/<switch> 而不是-<switch>。帮助部分也使用/。
-f 选项来强制重启。否则您的会话可能会关闭,并且顽固的应用程序可能会挂起系统。强制立即重启:shutdown -t 0 -r -f。对于更友好的“给他们一些时间”选项,您可以使用:shutdown -t 30 -r。 -f 隐含在超时中。 (来自Mateusz Konieczny 提议的编辑)
如果您在远程计算机上,您可能还需要添加 -f 选项以强制重新启动。否则您的会话可能会关闭,并且顽固的应用程序可能会挂起系统。
每当我想强制立即重启时,我都会使用它:
shutdown -t 0 -r -f
为了更友好的“给他们一些时间”选项,您可以使用这个:
shutdown -t 30 -r
正如您在 cmets 中看到的,-f 隐含在超时中。
Brutus 2006 is a utility that provides a GUI for these options.
【讨论】:
没有人提到远程关机的-m选项:
shutdown -r -f -m \\machinename
还有:
-r 参数会导致重新启动(这通常是您希望在远程计算机上执行的操作,因为物理启动可能会很困难)。-f 参数选项强制重启。【讨论】:
\\IP.AD.DR.ESS 访问机器(即必要的端口已打开并且您拥有所需的权限),那么是的,这应该可以通过互联网工作。
原始答案: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 代表:
LOGOFF
SHUTDOWN
REBOOT
FORCE
POWEROFF
(可以组合 -> 6 = 2+4 FORCE REBOOT)
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 LockWorkStation或user32 ExitWindowsEx。
(哎呀)
ExitWindowsEx 的实际函数签名是:
BOOL WINAPI ExitWindowsEx(UINT uFlags, DWORD dwReserved);
为了让它一目了然:
Rundll32是 Windows 95 的遗留物,至少从 Windows Vista 开始就已被弃用,因为它违反了许多现代工程准则。
【讨论】:
另一个小提示:在执行批处理文件路径时,我希望能够中止它,以防我意外运行它。所以批处理文件会调用关闭,但之后会让您在命令提示符下。
@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 时相同的快感。
【讨论】:
当远程进入机器时(目标是 Windows XP;我不确定目标是 Windows Vista),虽然开始菜单上的 Shutdown 被 Disconnect Session 取代或类似的东西,应该有一个名为“Windows Security”的东西,它也与 Ctrl + Alt + End 做同样的事情,正如所指出的那样欧文。
【讨论】:
您可能已经意识到这一点,但以防万一:在“运行”框中输入shutdown -r(或您喜欢的任何命令)并按回车键会更容易。
保存到处都是批处理文件。
【讨论】:
我迟到了,但还没有看到这个答案。 当您不想使用批处理文件或键入命令时。您可以将焦点设置到桌面,然后使用 Alt + F4。
Windows 会询问您要做什么,选择关闭或重新启动。
有关屏幕截图甚至视频,请参阅:https://tinkertry.com/how-to-shutdown-or-restart-windows-over-rdp
【讨论】:
对shutdown 和rundll32.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更新管理器也可以重启机器
tsdiscon - 断开你的连接
rdpinit - 将您注销,但目前我找不到任何文档
【讨论】: