睡眠喚醒解決方案

睡眠喚醒解決方案

自從我們拿到 Windows 7 筆記型電腦那天起,它就一直困擾著我。當它進入睡眠狀態時(蓋子關閉),它似乎間歇性醒來隨機地在夜間(即晚上10 點、凌晨1:30、上午7 點等)有很多人遇到過這種情況,但我做了多次測試並進行了大量觀察,以便在這裡提供盡可能多的信息來診斷問題。


當筆記型電腦在半夜醒來時,可以觀察到一些有說服力的現象:

  • 它持續大約 20-50 秒(多於幾秒,少於很多)
  • 螢幕保持關閉(完全關閉,不僅僅是背光)
  • 硬碟一直在顛簸(HD LED 幾乎常亮)
  • 如果 DVD 光碟機中有光碟,則 DVD 光碟機會旋轉並大聲轉動約 5-10 秒
  • Windows 處於活動狀態(PnP冰棒如果驅動器/鍵盤等會播放噪音。已移除或插入系統已進入睡眠狀態)
  • (未確認:按下某個按鍵(如果已啟用)下次不會將其開啟;必須使用電源按鈕)
  • 下次系統開啟時,不會有任何先前隨機活動的指示(使用powercfg -lastwake返回一個喚醒歷史喚醒來源計數共 0)

其他觀察結果包括:

  • 當 Windows 關閉或休眠時似乎不會發生,僅在進入睡眠狀態時(例如,合上蓋子)
  • Windows 7 的任務規劃程式中有無數任務,但快速掃描似乎表明沒有一個任務是負責的(儘管我已啟用歷史記錄來追蹤)
  • (我一直試圖抓住它按一個鍵讓螢幕顯示發生了什麼,但它似乎總是在不合時宜的時刻發生並在我有機會之前關閉)
  • 作為馬克建議,我檢查了事件日誌,發現了一組事件,這是迄今為止最好的線索:

    6:51:37pm The system is entering sleep.
              Sleep Reason: Button or Lid
    6:51:42am The system time has changed to ‎2012‎-‎08‎-‎21T10:51:42.500000000Z from ‎2012‎-‎08‎-‎20T22:51:39.080510600Z.
    6:51:42am-6:51:47am Six services were stopped…
    6:51:47am The system has resumed from sleep.
              Sleep Time: ‎2012‎-‎08‎-‎21T10:51:46.021150600Z
              Wake Time: ‎2012‎-‎08‎-‎21T10:51:44.010053500Z
              Wake Source: S4 Doze to Hibernate
    6:51:55am The system is entering sleep.
              Sleep Reason: Hibernate from Sleep
    

它不是什麼:

  • Windows更新:WU設定為僅檢查,不下載,並在中午進行(不是隨機地
  • LAN 喚醒:WoL 與 Magic-Packet 皆在裝置經理,BIOS中沒有選項,且電纜調變解調器在夜間關閉
  • 設備:所有鍵盤、滑鼠、網路卡均設定為不喚醒系統(powercfg -devicequery wake_armed返回空列表)
  • 惡意軟體:這是一個新系統,具有最新的 Windows 更新和具有最新定義的活動 MSSE,再加上使用最新的 Chrome 仔細瀏覽,沒有任何有問題的文件

關於它可能是什麼,我有兩種理論:

  1. 混合睡眠

    在 Windows Vista 及更高版本中,混合睡眠讓系統首先進入睡眠狀態(掛起 RAM),然後在一段時間後將記憶體刷新到磁碟以休眠。這可能是有意義的,因為筆記型電腦正在睡眠,然後最終切換到休眠狀態,因此它會醒來將記憶體刷新到磁碟。

    這是可行的,因為 BIOS POST 和 Windows「復原」不是直接進入 Windwos。然而,它應該從睡眠到冬眠的過渡相同的時間,不是隨機的。此外,這款特定的筆記型電腦沒有啟用混合睡眠功能。

    任何人都可以確認混合睡眠是如何(在低水平上)工作的嗎?

  2. 低電量

    當筆記型電腦的電池電量過低時,Windows 會自動休眠(當然 Windows 會在電池電量過低之前執行此操作,以便有足夠的電量來執行休眠)。當它執行此操作時,硬碟會抖動數十秒,然後關閉。這似乎與筆記型電腦隨機喚醒時的行為相匹配,特別是因為電池可以在看似隨機的時間達到耗盡點。

    這個理論的問題在於,當系統隨機喚醒後打開時,它不會像運行時由於電池電量不足而休眠時那樣打印有關 Windows 由於電池電量不足而關閉的消息。

    此外,它意味著 Windows 在睡眠時甚至應該已經關閉/休眠時處於活動狀態並(在某種程度上)進行處理。

    誰能確認 Windows 是否處於活動狀態並在「關閉」時監控電池電量?


根據事件,看起來每當系統打開時更新系統時間都是正常的,所以事實並非如此,但它顯然正在從睡眠過渡到休眠狀態十二小時當它進入睡眠狀態後。這令人困惑的原因有三:

  • 目前設定是休眠後電池使用時間和插入電源時的小時數均衡省電器計劃(四小時,根本沒有高效能計劃)。這省電器計劃已生效,今天早上發生時已被拔掉
  • 混合睡眠是殘障人士在每個電源計劃中
  • powercfg沒有發生過的記錄

有誰知道為什麼 Windows 會隨機喚醒並出現上述症狀,或者為什麼電源計劃設定似乎不正確?


A很多人們遇到筆記型電腦(各種品牌和型號)在半夜隨機開機的情況。不幸的是,他們中的大多數人都得到了同樣的答复,但似乎很少能解決問題。

一些值得注意的包括:

  • 這個問題這似乎與我上面提出的一些觀察是同一個問題。
  • 這個問題似乎也有同樣的問題,但是是在 Linux 上。
  • 這個問題引導我關閉鍵盤/滑鼠,以防觸控板靈敏度設定得太低,但它仍然如此。
  • 這個線程指向睡眠定時器,但它們已經停用。

答案1

冒著看起來很愚蠢的風險,我發現了以下內容:

我也有同樣的問題。我從來沒有關閉過我的筆記型電腦,我總是將它置於睡眠模式,它會在半夜意外地醒來。我發現這個「S4 Doze to Hibernate」事件不是一個錯誤,而是一個功能。前往電源進階設定並更改“睡眠”下拉選單下的“休眠後”:

在此輸入影像描述>

選擇從睡眠模式進入休眠狀態前要等待的時間。我將時間設定為 1440 分鐘(24 小時),足以過夜。

順便說一句,也要檢查「允許喚醒計時器」下沒有任何內容。

我沒有看到你說你已經嘗試過這個,所以如果我錯過了你指出的問題,我很抱歉浪費了你的時間。

答案2

睡眠喚醒解決方案

對於那些希望電腦永遠不再自行從睡眠狀態喚醒的人來說,這是一個解決方案,更簡單的解決方案不起作用。除了點擊按鈕或打開蓋子之外,沒有什麼可以喚醒它。不是計劃喚醒系統的排程任務(例如 Windows Media Center)或未知原因。我發現的唯一缺點是,如果電池電量過低,筆記型電腦將無法喚醒進入休眠狀態。它就會消失,所有未儲存的資訊都會遺失。

開啟命令提示字元並執行以下命令:

powercfg -setacvalueindex scheme_current sub_sleep bd3b718a-0680-4d9d-8ab2-e1d2b4ac806d 0
powercfg -setdcvalueindex scheme_current sub_sleep bd3b718a-0680-4d9d-8ab2-e1d2b4ac806d 0
powercfg -setactive scheme_current

透過點擊命令提示字元視窗頂部的標題/編輯/貼上,可以將它們複製並貼上到命令提示字元中。

這會變更目前電源方案的預設值並阻止機器從睡眠狀態喚醒。

適用於下列註冊表項:

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\BD3B718A-0680-4D9D-8AB2-E1D2B4AC806D
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Power\User\PowerSchemes\381b4222-f694-41f0-9685-ff5bb260df2e\238c9fa8-0aad-41ed-83f4-97be242c8f20\bd3b718a-0680-4d9d-8ab2-e1d2b4ac806d
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\BD3B718A-0680-4D9D-8AB2-E1D2B4AC806D
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\Power\User\PowerSchemes\381b4222-f694-41f0-9685-ff5bb260df2e\238c9fa8-0aad-41ed-83f4-97be242c8f20\bd3b718a-0680-4d9d-8ab2-e1d2b4ac806d
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\BD3B718A-0680-4D9D-8AB2-E1D2B4AC806D
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\381b4222-f694-41f0-9685-ff5bb260df2e\238c9fa8-0aad-41ed-83f4-97be242c8f20\bd3b718a-0680-4d9d-8ab2-e1d2b4ac806d

以上已經測試可以在Win7和Win8下運行。測試時將Win8中上述所有類別下的SKUACSettingIndexa0從a修改為a,也可以透過regedit手動完成。1這使得電源方案能夠從完全禁用的睡眠中喚醒。同樣,我發現的唯一缺點是,如果電池電量過低,筆記型電腦將無法喚醒進入休眠狀態。它只會死掉。

重要提示:實施配置變更後,可能還需要執行以下附加步驟:前往控制台/電源選項,然後在進階設定下將目前電源使用方案重設為預設值。然後,使用者可以將內容重新調整回自己的偏好。

在我對新的 Win8 系統進行命令提示字元測試期間,它似乎已將電源設定重設為預設值,因為在使用命令提示字元解決方案後,事物再次具有預設的逾時設定。在測試期間,事件檢視器/系統中也沒有報告任何喚醒情況。

我還檢查了另外兩個系統上的事件檢視器,自從兩週前我在這些系統上實施命令提示字元解決方案以來,這些系統上沒有出現任何喚醒情況。

若要將預設值還原為原始值,請輸入相同的命令提示字元行,但在最後一個字元中輸入 1 而不是 0。

HKEY_USERS\S-1-5-19\Control Panel\PowerCfg - This lists the current Power Policy.

答案3

gpedit.msc > Computer Configuration > Administrative Templates > System > Power Management > Sleep Settings在Win7 Pro上,您可以使用群組原則編輯器根據您的喜好調整它,然後重新啟動,而不是直接擺弄註冊表設定。

相關內容