首页 文章

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

提问于
浏览
629

我一直在使用Remote Desktop Connection进入工作站 . 但在此环境中,我无法使用“开始”菜单中的电源选项 . 我需要另一种方法来关闭或重启 .

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

9 回答

  • 37

    使用shutdown命令的最常用方法是:

    • shutdown -s - 关闭 .

    • shutdown -r - 重新启动 .

    • shutdown -l - 注销 .

    • shutdown -h - 冬眠 .

    Note: 有一个常见的陷阱,用户认为 -h 表示"help"(它对每个其他命令行程序都有...除了 shutdown.exe ,这意味着"hibernate") . 然后他们运行 shutdown -h 并意外关闭他们的计算机 . 注意这一点 .

    • shutdown -i - "Interactive mode" . 它不显示操作,而是显示GUI对话框 .

    • shutdown -a - 中止先前的关机命令 .

    上面的命令可以与这些附加选项结合使用:

    • -f - 强制程序退出 . 防止关机过程卡住 .

    • -t <seconds> - 设置关闭前的时间 . 使用 -t 0 立即关闭 .

    • -c <message> - 添加关闭消息 . 该消息将在事件日志中结束 .

    • -y - 强制"yes"回答所有关机查询 .

    Note: 此选项未在任何官方文档中记录 . 它是由these StackOverflow users发现的 .


    我想确保还提到其他一些非常好的答案 . 在这里他们没有特别的顺序 .

  • 81

    如果您在远程计算机上,则可能还需要将-f选项添加到 force reboot . 否则您的会话可能会关闭,顽固的应用程序可能会挂起系统 .

    每当我想强制立即重启时,我都会使用它:

    shutdown -t 0 -r -f
    

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

    shutdown -t 30 -r
    

    正如您在注释中看到的那样,-f由超时隐含 .

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

  • 1132

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

    shutdown -r -f -m \\machinename
    

    也:

    • -r 参数导致重新启动(这通常是您在远程计算机上所需的,因为实际启动它可能很困难) .

    • -f 参数选项强制重启 .

    • 当然,您必须具有关闭远程计算机的适当权限 .

  • 5

    原答案: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年后):

    1800 INFORMATION请指出in the comments

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

    Raymond CHEN写道:

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

    并使其清晰:

    Rundll32是Windows 95的遗留物,至少从Windows Vista开始就被弃用,因为它违反了许多现代工程指南 .

  • 7

    另一个小提示:当进入批处理文件路径时,我希望能够在意外运行它时中止它 . 因此批处理文件会调用关闭,但之后会在命令提示符下离开 .

    @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时相同的快感 .

  • 4

    当远程进入一台机器(目标是Windows XP无论如何;我不确定目标Windows Vista),虽然开始菜单上的Shutdown被Disconnect Session或类似的东西取代,但应该有一个名为'Windows Security'的东西,它也做同样的事情如欧文指向的Ctrl Alt End .

  • 372

    你__96368_更容易只需输入 shutdown -r (或任何你喜欢的命令)进入"Run"框并点击回车 .

    保存各处的剩余批处理文件 .

  • 9

    我想要使用批处理文件或键入命令 . 您可以将焦点设置到桌面,然后使用Alt F4 .

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

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

  • 7

    我会在NotepadWordPad中写一个基本的注销命令:

    @echo off
    shutdown -l
    

    这是与手动单击启动和注销基本相同,但如果准备好批处理文件,则速度稍快一些 .

相关问题