如何通过bat文件关闭、重新启动或注销Windows ?

我一直在使用远程桌面连接进入一个工作站。但在这种环境下,我无法使用开始菜单中的电源选项。我需要另一种方法来关闭或重新启动。

如何通过命令行控制计算机的电源状态?

2440756 次浏览

使用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用户发现了它

我想确定一些其他的很好的答案也被提到了。这里没有特别的顺序。

如果您在远程计算机上,您可能还想在重新启动时添加-f选项。否则,您的会话可能会关闭,顽固应用程序可以挂起系统。

每当我想强制立即重新启动时,我都会使用这个方法:

shutdown -t 0 -r -f

对于一个更友好的“给他们一些时间”选项,你可以使用这个:

shutdown -t 30 -r

正如您在注释中看到的,超时暗示了-f。

Brutus 2006是一个为这些选项提供GUI的实用程序

原答案:2008年10月

你还得到了所有“<强> # EYZ0 < / >强”系列:

(见下文更新)

  • rundll32.exe user.exe,**ExitWindows**[快速关闭窗口]
  • rundll32.exe user.exe,**ExitWindowsExec**[重启Windows]

    rundll32.exe shell32.dll,SHExitWindowsEx n
    

where n stands for:

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

(can be combined -> 6 = 2+4 FORCE REBOOT)


Update April 2015 (6+ years later):

1800 INFORMATION kindly points out in the comments:

Don't use rundll32.exe for this purpose. It expects that the function you passed on the command line has a very specific method signature - it doesn't match the method signature of ExitWindows.

Raymond CHEN wrote:

The function signature required for functions called by rundll32.exe is:

void CALLBACK ExitWindowsEx(HWND hwnd, HINSTANCE hinst,
LPSTR pszCmdLine, int nCmdShow);

这并没有阻止人们使用rundll32来调用不是由rundll32来调用的随机函数,比如user32 LockWorkStationuser32 ExitWindowsEx

(哦)

ExitWindowsEx的实际函数签名是:

BOOL WINAPI ExitWindowsEx(UINT uFlags, DWORD dwReserved);

更明确地说:

Rundll32是Windows 95遗留下来的,它至少从Windows Vista开始就被弃用了,因为它违反了许多现代工程准则。

当远程到一台机器(目标是Windows XP反正;我不确定目标Windows Vista),虽然开始菜单上的关闭断开会话或类似的东西所取代,应该有一个叫做“Windows安全”,它也做着与Owen指出的Ctrl + Alt + 结束相同的事情。

您可能已经意识到这一点,但以防万一:在“Run”框中键入shutdown -r(或任何您喜欢的命令)并按enter要容易得多。

节省留下批处理文件到处躺着。

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

shutdown -r -f -m \\machinename

另外:

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

我将在记事本写字板中写一个基本的注销命令:

@echo off
shutdown -l

这基本上与手动单击start和注销相同,但是如果您已经准备好批处理文件,它会稍微快一些。

另一个小技巧:当采用批处理文件路径时,我希望能够中止它,以防意外运行它。因此,批处理文件调用关机,但随后将您留在命令提示符处。

@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

关闭rundll32.exe shell32.dll,SHExitWindowsEx n命令的一些补充。

< >强下线< / >强 -允许您通过会话id或会话名称注销用户

< >强PSShutdown < / >强 -需要从windows系统内部下载。

< >强bootim.exe < / >强 - windows 10/8关闭iu

< >强变化/ chglogon < / >强 -防止新用户登录或使用另一个会话

NET SESSION /DELETE -结束用户的会话

wusa / forcerstart /quiet - windows更新管理器,但也可以重新启动机器

< >强tsdiscon < / >强 -断开连接

rdpinit -日志你退出,虽然我找不到任何文件在此刻