windows - 如何Shutdown - 重启- 注销Windows通过bat文件

  显示原文与译文双语对照的内容

我一直使用远程桌面进入工作站,但在执行这里操作时无法使用 开始菜单 中的关机/重启功能。

我在下面的答案中提供了一些非常有用的选项。

备注:
我想确保一些非常好的答案也是我自己的。

这里没有特别的顺序。

感谢你的参与精彩的解答。

时间:

下面是通过批处理 file: 执行关机功能的方法

  • shutdown -r —重新启动
  • shutdown -s — shutsdown
  • shutdown -l —注销
  • shutdown -t xx —,其中 xx 是等待 shutdown/restart/logoff的秒数
  • shutdown -i —给你一个对话框来填写你想要使用的函数
  • shutdown -a —终止上一个关闭命令。。非常方便 !

其他选项:

  • -f —强制选定的动作

如果你在远程机器上,你可能还想将-f选项添加到强制重新启动。 否则你的会话会关闭,一个顽固的应用可以挂起系统。

每当我想强制立即重新启动时,我都会使用这里选项:


shutdown -t 0 -r -f

对于更友好的"给他们点时间"选项,你可以使用:


shutdown -t 30 -r

就像你在评论中看到的,-f是由超时所暗示的。

Brutus 2006是一个为这些选项提供GUI的工具。

没有人提到远程关机的-m 选项:


shutdown -r -f -m machinename

同样:

  • -r 参数导致重新启动( 这通常是你在远程机器上所需要的,因为物理启动可能很困难) 。
  • -f 参数选项强制重新启动。
  • 你必须具有适当的特权才能关闭远程机器,当然。

原始答案: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 代表:

  • 0 - LOGOFF
  • 1 - SHUTDOWN
  • 2 - REBOOT
  • 4 - FORCE
  • 8 - POWEROFF

( 可以合并-> 6 = 2 +4 FORCE REBOOT )


更新 2015年04月 ( 6 + 年后):

1800信息 web 请指出注释中的:

不要为此目的使用 rundll32.exe 。 它期望你在 命令行 上传递的函数有一个非常特殊的方法签名- 它与 ExitWindows的方法签名不匹配。

Raymond 撰写:

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);

并使它的成为 crystal-clear:

rundll32 是 Windows 95的剩余版本,因为它违反了许多现代工程准则,所以它已经被废弃了。

另一个小技巧:当进入批处理文件路由时,我喜欢在意外运行时中止它。 因此批处理文件调用关闭,但在命令提示符下离开。


@echo off
echo Shutting down in 10 seconds. Please type"shutdown/a" to abort.
cmd.exe/K shutdown/f/t 10/r

另外,因为它是一个计时器,你得到一样的兴奋当在俄勒冈小道狩猎

我将在记事本或者写字板中写入基本注销命令。


@echo off
shutdown -l

这基本上与单击启动和注销manualy相同。如果你准备好批处理文件,就稍微快一点。

...