我一直使用远程桌面连接来登录工作站。但在这个环境下,我不能使用开始菜单中的电源选项。我需要一种替代方法来关闭或重启计算机。
我如何通过命令行控制计算机的电源状态?
最常用的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用户发现的。
我希望除了这个答案,还能提到其他一些非常好的答案。以下是没有特定顺序的答案。
shutdown -t 0 -r -f
如果想要更加友好地“给他们一些时间”的选项,可以使用以下代码:
shutdown -t 30 -r
正如您在评论中看到的那样,超时选项中已经暗示了-f。
没有人提到远程关机的-m
选项:
shutdown -r -f -m \\machinename
另外:
-r
参数会导致重新启动(通常在远程计算机上,这是您想要的,因为物理上启动它可能很困难)。-f
参数选项强制重新启动。\\IP.AD.DR.ESS
访问该机器(即必要的端口已打开并且您具有所需的权限),那么是的,这应该可以在互联网上工作。 - Timothy Zorn原回答:2008年10月
您还得到了所有的""系列:rundll32.exe shell32.dll
(请参见下面的更新)
rundll32.exe user.exe,**ExitWindows**
[Fast Shutdown of Windows]rundll32.exe user.exe,**ExitWindowsExec**
[Restart Windows]
rundll32.exe shell32.dll,SHExitWindowsEx n
其中n
代表:
注销(LOGOFF)
关闭(SHUTDOWN)
重启(REBOOT)
强制(FORCE)
断电(POWEROFF)
(可以组合使用,例如:6 = 2+4 FORCE REBOOT
)
不要使用
rundll32.exe
来实现此目的。它期望你在命令行上传递的函数具有非常特定的方法签名——它与ExitWindows
的方法签名不匹配。
Raymond CHEN写道:
rundll32.exe
调用的函数所需的函数签名是:
void CALLBACK ExitWindowsEx(HWND hwnd, HINSTANCE hinst,
LPSTR pszCmdLine, int nCmdShow);
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
也许你已经知道这个,但以防万一:只需在“运行”框中键入shutdown -r
(或任何您喜欢的命令)并按Enter键即可。
这样可以避免随处放置批处理文件。
当远程连接到一台机器时(目标机器是Windows XP,我不确定目标机器是否为Windows Vista),虽然开始菜单中的“关闭”被替换为“断开会话”或类似的选项,但应该有一个称为“Windows安全”的选项,它也可以像Owen所指出的那样执行与Ctrl + Alt + End相同的操作。
以下是与 shutdown 和 rundll32.exe shell32.dll,SHExitWindowsEx n
命令相关的一些补充内容。
LOGOFF - 允许您按会话 ID 或会话名称注销用户
PSShutdown - 需要从 Windows Sysinternals 下载。
bootim.exe - Windows 10/8 关闭界面
change/chglogon - 防止新用户登录或占用另一个会话
NET SESSION /DELETE - 结束用户的会话
wusa /forcerestart /quiet - Windows 更新管理器,同时也可以重新启动计算机
tsdiscon - 断开连接
rdpinit - 注销您,尽管我目前找不到任何文档。
/<switch>
而不是-<switch>
。帮助部分也使用了/
。 - legends2k-f
选项来强制重启。否则你的会话可能会关闭,而顽固的应用程序可能会挂起系统。要立即强制重启,请使用shutdown -t 0 -r -f
。如果想友好一点并给予一些时间,则可以使用此命令:shutdown -t 30 -r
。超时会默认包含-f
选项。 - Ole V.V.shutdown -i
不是用来填充函数或其他内容的。我确定它是用于在当前连接的局域网中远程关闭其他计算机的。而且shutdown -t xx
不是一个独立的命令,所以你必须与shutdown -s
或shutdown -r
一起使用。 - Kingzel