假設我使用「shutdown -s -f -t 13600」來啟動計畫關閉。
在 Windows XP 中,我總是會看到一個對話框,警告我即將關閉。
然而,在 Windows 7 中,它會在系統匣中顯示一個彈出窗口,幾秒鐘後消失。
如何查詢或啟用像 Windows XP 這樣的對話框,以便我知道何時會發生關機?
答案1
我已經找到方法了。
如果不是使用shutdown -s -f -t 13600
你用shutdown -s -f -t 13600 -c "13600"
此-c
選項會為記錄的關閉事件新增註釋Windows 事件檢視器
您對「13600」的評論將在事件檢視器中可見,如紅色橢圓形所示:
要親自查看此視圖:在開始功能表中鍵入事件檢視器並轉到 Windows 日誌 -> 系統您將看到系統事件清單。
任何帶有事件ID的1074將延遲關閉。
因此,我們想要的是一些程式碼來獲取最後一個1074
事件,尋找事件註釋中的值,並將該值(以秒為單位)添加到事件創建的時間,從而給出關閉時間。
我為 Windows PowerShell(Windows 7 附帶)建立了一個函數來執行以下操作:
function nextShutdownTime
{
$events = Get-WinEvent -FilterHashtable @{logname="system"; id=1074}
$event = $events[0]
$eventXML = [xml]$event.ToXml()
return $event.TimeCreated.addSeconds([int]$eventXML.Event.EventData.Data[5])
}
只需將其新增至您的 PowerShell 設定檔中,然後在 PowerShell 中執行命令nextShutdownTime
即可查看預期的關閉時間。
答案2
找出關閉是否正在進行的最簡單方法是安排另一次關閉。為了確保萬無一失,請為其設定至少 200 秒的超時時間。您要么收到一條錯誤訊息,指出正在關閉,要么將啟動定時關閉,您可以透過鍵入 shutdown /a 來中止該關閉。
所以你輸入
shutdown /r /t 600
現在你要么得到
C:\Users\Administrator>shutdown /r /t 600
A system shutdown has already been scheduled.(1190)
否則它將安排新的關閉。
如果您只想確保沒有計劃關閉,則可以簡單地嘗試中止。要么它會中止,要么它會聲明沒有計劃關閉。
C:\Users\Leon>shutdown /a
Cannot abort a system shutdown. There is no shutdown in progress (1116)
答案3
我只是花了大約一個小時試圖讓這項工作完全按照你想要的方式進行。我嘗試、搜索、搜索,但我無法做到完美,但我能夠想出一些東西。
我嘗試了關閉的每種組合(-i -c -d 選項),但沒有任何結果。
我還在 -i 選項之後嘗試了 GUI 介面。
我還嘗試更改氣球時間顯示,以便它在系統托盤中停留的時間更長,但即使如此,它也會消失。
我最接近的範例命令是:shutdown -i -r -t 300
我認為事實是他們只是改變了它的工作方式,而且我不認為有任何辦法 100% 解決它,但現在-i
會彈出一個對話框,而它過去會彈出你想要的螢幕。當我在 Windows 7 中使用時-i
,我必須填寫該框,結果如下:
然後我點擊Enter並得到了這個:
我測試過,似乎你可以在“顯示 X 秒警告”中輸入的上限僅為 600,儘管事實上你最多可以輸入 999(非常奇怪的編程)。
答案4
如何查詢或啟用像 Windows XP 這樣的對話框,以便我知道何時會發生關機?
Windows 7 中的本關機程式不像先前版本的 Windows 那樣提供倒數計時對話方塊(或取消按鈕)。
如果您需要安排關機並提供倒數計時和取消按鈕,您可以使用 HTA 應用程序,該應用程式可以包含文字、圖像、倒數計時和取消按鈕。
這是一個例子: HTA 腳本 - 關閉腳本和警告訊息
來源是我的個人部落格。