代码之家  ›  专栏  ›  技术社区  ›  Keng

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

  •  633
  • Keng  · 技术社区  · 16 年前

    我一直在用 Remote Desktop Connection 进入工作站。但在这种环境下,我无法使用“开始”菜单中的电源选项。我需要一种关闭或重新启动的替代方法。

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

    9 回复  |  直到 6 年前
        1
  •  1172
  •   MultiplyByZer0 Joke_Sense10    6 年前

    使用 shutdown 命令是:

    • shutdown -s 关闭。
    • shutdown -r
    • shutdown -l
    • shutdown -h 冬眠。

      注: -h 表示“帮助”(它对其他所有命令行程序都是如此,除了 shutdown.exe ,意思是“休眠”)。然后他们跑了 关机 不小心关掉了电脑。小心。

    • shutdown -i “互动模式”。它不执行操作,而是显示一个GUI对话框。

    • shutdown -a

    上述命令可以与这些附加选项组合使用:

    • -f 强制程序退出。防止关闭过程卡住。
    • -t <seconds> 设置关闭前的时间。使用 -t 0 立即关闭。
    • -c <message> 添加关机消息。消息将在事件日志中结束。
    • -y

      注: 此选项未记录在任何正式文件中。它是由科学家发现的 these StackOverflow users .


        2
  •  376
  •   JosephStyons    10 年前

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

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

    shutdown -t 0 -r -f
    

    要获得更友好的“给他们一些时间”选项,您可以使用以下选项:

    shutdown -t 30 -r
    

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

    Brutus 2006 is a utility that provides a GUI for these options.

        3
  •  82
  •   Kip    16 年前

    没有人提到过 -m

    shutdown -r -f -m \\machinename
    

    也:

    • -r 参数导致重新启动(这通常是您在远程计算机上想要的,因为物理启动可能很困难)。
    • 这个 -f
    • 当然,您必须具有适当的权限才能关闭远程计算机。
        4
  •  39
  •   VonC    5 年前

    原始答复:2008年10月

    " rundll32.exe shell32.dll " 系列:

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

      rundll32.exe shell32.dll,SHExitWindowsEx n
      

    n 代表:

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

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


    2015年4月更新(6年后):

    1800 INFORMATION 请指出 in the comments :

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

    Raymond CHEN 写的:

    rundll32.exe 是:

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

    这并没有阻止人们使用 rundll32 调用不被设计为调用的随机函数 RundL32 喜欢 user32 LockWorkStation user32 ExitWindowsEx

    (哎呀)

    ExitWindowsEx的实际函数签名为:

    BOOL WINAPI ExitWindowsEx(UINT uFlags, DWORD dwReserved);
    

    要说得非常清楚:

    Rundll32 是Windows95的一个遗留版本,至少在WindowsVista之后,它就被弃用了,因为它违反了许多现代工程准则。

        5
  •  12
  •   Gavin    14 年前

    另一个小提示:当执行批处理文件路由时,我希望能够中止它,以防意外运行它。因此,批处理文件会调用关闭,但之后会将您留在命令提示符下。

    @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 .

        6
  •  7
  •   Peter Mortensen icecrime    8 年前

    当远程进入机器时(目标是WindowsXP;我不确定目标WindowsVista),尽管 “开始”菜单上的 或者类似的,应该有一个叫做“Windows安全性”的系统,它的功能与 Ctrl键 + + 终止

        7
  •  7
  •   Xantium    7 年前

    你可能意识到了这一点,但以防万一:打字要容易得多 shutdown -r (或任何您喜欢的命令)进入“运行”框并按enter键。

    保存随处可见的批处理文件。

        8
  •  6
  •   Peter Mortensen icecrime    8 年前

    Notepad WordPad 对于基本注销命令:

    @echo off
    shutdown -l
    

        9
  •  6
  •   msoft    6 年前

    我参加聚会迟到了,但还没有看到答案。 当您不想使用批处理文件或键入命令时。您只需将焦点设置为桌面,然后使用 中高音 + .

    Windows将询问您要执行的操作,选择关机或重新启动。

    有关屏幕截图甚至视频,请参见: https://tinkertry.com/how-to-shutdown-or-restart-windows-over-rdp

        10
  •  1
  •   npocmaka    4 年前

    shutdown rundll32.exe shell32.dll,SHExitWindowsEx n 命令。

    LOGOFF -允许您按会话ID或会话名称注销用户

    PSShutdown -需要从windows系统内部下载。

    bootim.exe -windows 10/8关机iu

    change/chglogon -防止新用户登录或进行其他会话

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

    wusa /forcerestart /quiet -windows update manager,但也可以重新启动计算机

    tsdiscon -断开你的连接

    rdpinit -虽然我现在找不到任何文档,但我还是把你注销了