【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
我一直在使用远程桌面连接进入工作站。 但在此环境中,我无法使用“开始”菜单中的电源选项。 我需要另一种方法来关闭或重启。
如何通过命令行控制计算机的电源状态?
#1楼
使用shutdown
命令的最常用方法是:
-
shutdown -s
- 关闭。 -
shutdown -r
- 重新启动。 -
shutdown -l
- 注销。 shutdown -h
- Hibernates。注意:有一个常见的陷阱,用户认为
-h
表示“帮助”(它对每个其他命令行程序都有...除了shutdown.exe
,这意味着“休眠”)。 然后他们运行shutdown -h
并意外关闭他们的计算机。 注意这一点。shutdown -i
- “交互模式”。 它不显示操作,而是显示GUI对话框。-
shutdown -a
- 中止先前的shutdown命令。
上面的命令可以与这些附加选项结合使用:
-
-f
- 强制程序退出。 防止关机过程卡住。 -
-t <seconds>
- 设置关闭之前的时间。 使用-t 0
立即关闭。 -
-c <message>
- 添加关闭消息。 该消息将在事件日志中结束。 -y
- 强制所有关闭查询的“是”答案。注意:此选项未在任何官方文档中记录。 它是由这些StackOverflow用户发现的。
我想确保还提到其他一些非常好的答案。 在这里他们没有特别的顺序。
#2楼
如果您在远程计算机上,则可能还需要添加-f选项以强制重新启动。 否则您的会话可能会关闭,顽固的应用程序可能会挂起系统。
每当我想强制立即重启时我都会使用它:
shutdown -t 0 -r -f
为了更友好的“给他们一些时间”选项,你可以使用这个:
shutdown -t 30 -r
正如您在注释中看到的那样,-f由超时隐含。
Brutus 2006是一个为这些选项提供GUI的实用程序。
#3楼
原答案: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年后):
不要将
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计划的悲惨历史 ”
并使其清晰:
- 在2013年“ 什么时候使用rundll32的指导?容易:不要使用它 ”:
Rundll32
是Windows 95的遗留物,至少从Windows Vista开始就被弃用,因为它违反了许多现代工程指南。
#4楼
当远程进入一台机器时(无论如何目标是Windows XP;我不确定目标Windows Vista),虽然开始菜单上的Shutdown被Disconnect Session或类似的东西取代,但应该有一个名为'Windows Security'的与Owen所指向的Ctrl + Alt + End相同。
#5楼
您可能已经意识到这一点,但以防万一:只需在“运行”框中键入shutdown -r
(或任何您喜欢的命令)并按Enter即可。
保存各处的剩余批处理文件。
来源:oschina
链接:https://my.oschina.net/u/3797416/blog/3148377