windows - update重新開機 - 取消重新啟動




我如何關閉-重新啟動-通過bat文件註銷Windows? (6)

以下是如何通過批處理文件執行關閉功能的方法:

  • shutdown -r - 重新啟動
  • shutdown -s - 關機
  • shutdown -l - 註銷
  • shutdown -t xx - 其中xx是等待關機/重啟/註銷的秒數
  • shutdown -i - 給你一個對話框來填寫你想要使用的功能
  • shutdown -a - 中止以前的關機命令....非常方便!
  • shutdown -h - 休眠。 容易的錯誤 - 這不是為了幫助
  • shutdown -y - 在關閉時刪除所有提示(幫助在任何文檔中都不可用)

其他選項:

  • -f - 強制選擇的操作
  • -t <seconds> - 設置關機時間。 使用-t 0表示“now”
  • -c <message> - 將消息添加到關機

我一直在使用遠程桌面連接進入工作站,但是我不能在開始菜單中使用關機/重啟功能。

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

注意:我想確保一些非常好的答案也與我自己一起提到。

在這裡他們沒有特定的順序。


原始答案: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 - 重新啟動
  • 4 - FORCE
  • 8 - POWEROFF

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

2015年4月更新(6年以上):

1800信息 在評論中慷慨地指出:

不要為此使用rundll32.exe 。 它期望您在命令行上傳遞的函數具有非常特定的方法簽名 - 它與ExitWindows的方法簽名不匹配。

雷蒙德陳寫道:

rundll32.exe調用的函數所需的函數簽名是:

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開始已經被棄用,因為它違反了很多現代工程指南。


如果您位於遠程計算機上,則可能還需要添加-f選項以強制重新啟動。 否則,您的會話可能會關閉,固執的應用程序可能會掛起系統。

每當我想強制立即重新啟動時,我都會使用它:

shutdown -t 0 -r -f

為了更友好的“給他們一些時間”選項,你可以使用這個:

shutdown -t 30 -r

正如你在評論中看到的那樣,-f被超時隱含。

Brutus 2006是一個為這些選項提供GUI的工具。


您可能知道這一點,但以防萬一:只需在“運行”(Run)框中鍵入“shutdown -r”(或任何您喜歡的命令)然後按回車就會更容易。

保存將批處理文件放在任何地方。


沒有人提到遠程關機的-m選項:

shutdown -r -f -m \\machinename

也:

  • -r參數會導致重啟(這通常是遠程計算機上的要求,因為物理啟動可能很困難)。
  • -f參數選項強制重新啟動。
  • 當然,您必須擁有適當的權限才能關閉遠程機器。

當遠程進入一台機器(無論如何目標是Windows XP;我不確定目標Windows Vista),雖然開始菜單上的關機斷開會話或類似的東西取代,應該有一個叫做“Windows安全”,它也會與Owen指出的Ctrl + Alt + End一樣。





restart