Windows 喚醒計時器

Windows 喚醒計時器:為什麼電腦會自己醒來

如果電腦睡是睡得好好的,卻在幾分鐘或幾小時後自己開機、旁邊根本沒人,幾乎都是喚醒計時器搞的鬼。它是被明確授權、可以在指定時間把 Windows 從睡眠中叫醒的排程工作。這篇教你列出目前有哪些正在等查上次是誰叫醒它,以及停用或限制喚醒計時器,讓電腦真的睡得住。

快速答案:powercfg /waketimers 看目前排定要叫醒電腦的是什麼。想停下來,就到「控制台 → 電源選項 → 變更計畫設定 → 變更進階電源設定 → 睡眠 → 允許喚醒計時器」,設成停用僅重要喚醒計時器。往下看上次是誰叫醒它、常見元兇,以及為什麼整個停用有時候會拖到 Windows Update。

免費下載 PowerDoze 電腦根本不睡? →

喚醒計時器到底是什麼

喚醒計時器是 Windows 的說法,指某個排程工作被允許在指定時間打斷睡眠,不管當下有沒有人在碰電腦。它跟裝置喚醒來源不同——後者是滑鼠、鍵盤、網路卡這類因為「有動靜」而把電腦叫醒的東西。喚醒計時器是照時鐘發動、不是照輸入發動,這正是為什麼它能在凌晨三點、周圍什麼都沒在動的情況下把電腦叫醒。

背後的機制是工作排程器:任何工作只要在「條件」頁勾了「喚醒電腦來執行這個工作」,就會在下次排定執行時登記一個喚醒計時器。多數來自 Windows 自己——維護、Windows Update、磁碟檢查——但備份軟體、防毒掃描、部分原廠工具程式也會自己登記。

列出目前正在等的喚醒計時器

打開命令提示字元或 PowerShell——不用系統管理員權限——跑:

指令 顯示什麼
powercfg /waketimers目前所有排定的喚醒計時器,以及背後是哪個工作設的
powercfg /lastwake電腦上一次真正被叫醒時,是誰做的
powercfg /devicequery wake_armed被允許「靠活動」叫醒電腦的裝置(滑鼠、網路卡),不是計時器

powercfg /waketimers 只會列出目前排定中的計時器——如果某個工作已經觸發過一次把電腦叫醒了,除非它會重複執行,不然事後就不會再出現在這份清單。如果清單是空的,但電腦還是會自己醒來,代表計時器已經觸發過、正在等下一次排程,或是元兇其實是裝置喚醒來源——接著查 wake_armed

查上次是誰叫醒它的

如果你只是想知道昨晚是誰把它叫醒的、不想等它再發生一次,powercfg /lastwake 比翻事件檢視器快多了。它會點名最近一次把機器從睡眠中叫醒的確切程序、驅動程式或喚醒計時器——早上起來第一件事跑一下,通常就能直接抓到元兇。

停用或限制喚醒計時器

介面路徑

控制台 → 電源選項 → 變更計畫設定 → 變更進階電源設定睡眠允許喚醒計時器。有三個選項:啟用(任何喚醒計時器都能觸發)、僅重要喚醒計時器(只留 Windows Update 和少數關鍵工作)、停用(完全不讓任何東西照排程叫醒電腦)。

適合:多數人——選「僅重要喚醒計時器」當折衷,如果你完全不靠排程備份或更新在半夜跑,就直接選「停用」。注意:筆電和桌機的「插電」與「使用電池」是分開設定的。

命令列路徑

powercfg /setacvalueindex SCHEME_CURRENT SUB_SLEEP RTCWAKE 0 會停用插電時的喚醒計時器;電池用 /setdcvalueindex。索引 0 是停用、1 是啟用、2 是僅重要喚醒計時器。之後跑 powercfg /setactive SCHEME_CURRENT,改動才會真的生效。

適合:要一次寫成腳本、套用到多台機器。注意:這只改目前作用中的電源計畫——之後如果切換其他計畫,這個設定不會跟過去。

常見元兇

powercfg /waketimers/lastwake 點名出某個東西時,幾乎都是這幾個之一:

如果電腦被叫醒之後就不肯再睡回去,那是另一個問題——代表有東西在它醒來後抓著它不放。看這篇:Windows 為什麼不睡回去、怎麼揪出擋住它的元兇

PowerDoze 能幫上什麼——以及幫不上什麼

先講清楚:PowerDoze 不會停用喚醒計時器。那純粹是 Windows 的設定,上面那些步驟才是真正的解法。PowerDoze 做的是不一樣的事——它排程電腦什麼時候該睡、不同時段該用哪個電源模式,讓半夜維持在短又保守的睡眠逾時,而不是隨便用預設值。如果真的有喚醒計時器把機器提早叫醒,因為它本來就已經在低耗電模式,損害會小很多,不會就這樣用全速效能模式空轉到早上。

誠實說明:如果你的電腦會自己醒來,用上面的步驟解決——那才是真正的原因。PowerDoze 是用來排程整天的睡眠行為,不是用來控制喚醒計時器的。免費最多 3 條依時間的規則、2 個電源模式,不用帳號。

免費下載 PowerDoze 改睡眠逾時 →

常見問題

Windows 的喚醒計時器是什麼?

喚醒計時器是 Windows 授權給某個排程工作或程式的權限,讓它可以在指定的時間把電腦從睡眠中叫醒,就算完全沒人碰鍵盤滑鼠也一樣。工作排程器、Windows Update、磁碟維護是最常見的來源。它跟滑鼠、網路卡這類「裝置喚醒來源」不同——喚醒計時器是照時間發動,不是照活動發動。

要怎麼看目前排定要叫醒電腦的是什麼?

在命令提示字元或 PowerShell 跑 powercfg /waketimers。它會列出目前所有作用中的喚醒計時器,以及背後是哪個工作設定的。如果現在沒有任何一個在等,它會直接告訴你——喚醒計時器只有在「排定中」時才會出現在這份清單,觸發過後就不會再顯示。

要怎麼查上次是誰把電腦叫醒的?

powercfg /lastwake。它會點名最近一次把電腦從睡眠中叫醒的確切程序、驅動程式或喚醒計時器——很適合用在「電腦昨晚自己醒了、想知道是誰幹的」,不用等它再發生一次。

要怎麼停用 Windows 的喚醒計時器?

控制台 → 電源選項 → 變更計畫設定 → 變更進階電源設定 → 睡眠 → 允許喚醒計時器,設成停用。命令列的話:powercfg /setacvalueindex SCHEME_CURRENT SUB_SLEEP RTCWAKE 0(插電)和 powercfg /setdcvalueindex SCHEME_CURRENT SUB_SLEEP RTCWAKE 0(電池),再跑 powercfg /setactive SCHEME_CURRENT 讓它生效。

「僅重要喚醒計時器」實際上放行什麼?

這是介於「啟用」和「停用」中間的選項。Windows 仍然會讓它認定為關鍵的計時器叫醒電腦——主要是 Windows Update 維護和少數安全性工作——但其他一律擋下,包含多數第三方的排程工作。這是微軟預設建議的選項,也是為什麼直接整個停用喚醒計時器,偶爾會拖到更新的原因。

PowerDoze 能幫我停用喚醒計時器嗎?

不行——喚醒計時器是 Windows 的設定,PowerDoze 不會直接動它。PowerDoze 做的是排程電腦什麼時候該睡、不同時段該用哪個電源模式,所以就算真的有東西提早把它叫醒,也能自動掉回低耗電模式,而不是就這樣全速空轉到早上。

喚醒計時器處理好了,但還想讓整晚的睡眠行為比單一固定逾時更聰明?依時間的規則免費,最多 3 條規則、2 個電源模式,不用帳號。

免費下載,支援 Windows 10/11

延伸閱讀:Windows 為什麼不睡 · 更改 Windows 什麼時候睡眠 · Windows 有睡眠計時器嗎 · 所有功能