
1.初級階段,解決因硬件的喚醒事件
powercfg -lastwake
查看上次喚醒電腦的設備
哪些硬件能喚醒電腦?
powercfg /devicequery wake_armed

列出現在可以喚醒電腦的所有硬件設備,可以看到現在鍵盤能喚醒
powercfg /devicequery wake_programmable

列出全部有能力喚醒電腦的硬件設備,這個范圍更大,可以看到也包含了鍵盤。有能力喚醒,但現在可能不被允許喚醒,你可以允許或禁止這幾個設備喚醒電腦,方法如下
如何允許和禁止硬件喚醒電腦?
powercfg /deviceenableawake "HID-compliant mouse (003)"
允許鼠標喚醒電腦
powercfg /devicedisablewake "HID-compliant mouse (003)"
禁止鼠標喚醒,讓移動、點擊鼠標不再能喚醒電腦
這兩條允許和禁止命令與"右鍵開始菜單-設備管理器-鼠標-電源管理-取消勾選允許鼠標喚醒電腦"的效果是一樣的,有的usb無線鼠標在拔插usb接收器后需要再次取消允許喚醒,并且更換usb插口似乎會被識別成不同鼠標,也需要重新設置。網卡同理。有的筆記本上禁止鍵盤喚醒后依然可以按任意鍵喚醒,也許需要進入bios設置。

我的電腦支持睡眠和休眠嗎?
powercfg -a

查看電腦可用的睡眠類型,以及說明為什么一些睡眠類型不可用。S1是輕度睡眠,S2是更深,S3是最深度睡眠
S0 正常。
S1 CPU停止工作。喚醒時間:0秒。
S2 CPU關閉。喚醒時間:0.1秒。
S3 除了內存外的部件都停止工作。喚醒時間:0.5秒。
S4 內存信息寫入硬盤,所有部件停止工作。喚醒時間:30秒。(休眠狀態)
S5 關閉。
powercfg /devicequery wake_from_S3_supported
列出所有支持從最深睡眠狀態喚醒電腦的設備
powercfg /devicequery wake_from_any
列出所有支持從任何睡眠狀態喚醒電腦的設備
powercfg /devicequery S3_supported
列出支持最深度睡眠的設備,該設備不一定能喚醒電腦
powercfg /devicequery S4_supported
列出支持休眠的設備
powercfg /devicequery all_devices
列出所有設備(較長)
2.中級階段,晚上莫名自啟,解決因自動更新、計劃任務的喚醒
電腦有沒有計劃任務?
powercfg -waketimers

下次可能會被什么計劃任務喚醒,比如自動更新,也可以在計劃任務里查看
Windows徽標鍵+S,搜索打開計劃任務,進入相關目錄即可

如何禁止計劃任務和定時器喚醒?
右鍵任務欄右下角電源圖標-電源選項-更改計劃設置-更改高級電源設置-睡眠-允許使用喚醒定時器,使用電池和接通電源都可以根據需要設置為禁用

如果已經禁用了定時器喚醒,就不會被上述計劃任務喚醒
3.高級階段,想睡睡不了,解決軟件、驅動阻止系統睡眠
點擊睡眠后屏幕關閉了,喇叭也不響了,鼠標鍵盤燈亮,cpu風扇也在轉動,動一動鼠標或鍵盤就會亮屏?
首先確認迅雷9的離開模式是否關閉,若未安裝迅雷,將注冊表的AwayModeEnable設置為0,確保離開模式處于關閉狀態
注冊表位置:
計算機HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerPower

關鍵:powercfg /requests

查看哪些進程、服務、驅動有電源需求。列表中的程序、驅動會阻止計算機進入睡眠。需要重寫(刪除)電源需求,方法如下。
格式:powercfg /requestsoverride 請求者類型 請求者名稱 電源需求類型(可寫1到3個需求類型)
舉例:powercfg /requestsoverride PROCESS "chrome.exe" system
此命令會忽略掉chrome阻止睡眠的請求,名稱加引號更保險。
如果你遇到下面這種帶括號很長一串的情況
SYSTEM:
[DRIVER] Realtek High Definition Audio (HDAUDIOFUNC_01&VEN_10EC&DEV_0295&SUBSYS_103C84DA&REV_10004&306c1263&0&0001)
音頻流當前正在使用中。
對應命令是:
powercfg /requestsoverride DRIVER "HDAUDIOFUNC_01&VEN_10EC&DEV_0295&SUBSYS_103C84DA&REV_10004&306c1263&0&0001" SYSTEM
或:powercfg -REQUESTSOVERRIDE DRIVER "Realtek High Definition Audio" SYSTEM
如果還是不能睡眠,那就需要更新音頻驅動
恢復電源需求,讓其繼續阻止電腦進入睡眠:powercfg /requestsoverride PROCESS chrome.exe
如何填寫請求者類型?
請求者類型3種,SERVICE PROCESS DRIVER (服務、進程、驅動),出現在powercfg /requests運行后的SYSTEM、Display、Awaymode等下方,顯示為[Driver]、[PROCESS]、[SERVICE]。
如何填寫電源需求類型?
電源需求類型4種,Display System Awaymode EXECUTION(顯示、系統、離開模式、執行),一般3個請求者類型(SERVICE PROCESS DRIVER)都是出現在powercfg /requests運行后的SYSTEM下方,Display和Awaymode下方很少見。所以電源需求類型通常只填system1個,填3個(system display awaymode)也可以,填三個感覺似乎重寫(刪除)得更全面,但其實沒意義,運行powercfg /requests之后,觀察Display、System、Awaymode、EXECUTION哪個下面有就寫哪個,若同時出現在Display和System下面就寫Display和System。
- Display電源需求:即使長時間沒有活動,也會請求讓顯示屏保持打開的狀態,如果顯示器已經關閉,則“Display電源需求”會打開顯示器,不會自啟動屏保,啟動的屏保會關閉,已鎖定系統的繼續鎖定,沒鎖定的不鎖定。
- System電源需求:請求電腦一段時間不活動后仍然保持運行,而不是進入睡眠狀態。很多程序和驅動都是采用的system電源需求。
- Awaymode電源需求:會讓系統進入離開模式而不是睡眠模式。在離開模式下,系統會響應用戶的操作,并且繼續運行,但會關閉音頻和視頻來給人一種睡眠的感覺。迅雷開啟離開模式就是這個效果(但是迅雷是直接開啟系統的離開模式,所以不會顯示在powercfg /requests列表里)。
注:如果powercfg /requests列出的有Printer(打印機),一般是有打印隊列,也許暫停了,等待打印完成或者將打印任務移出隊列即可。也可以輸入powercfg -requestsoverride service spoolsv.exe SYSTEM來刪除打印機的電源需求,但這樣也許打印機在工作時電腦就進入了睡眠,從而中斷打印。
powercfg /requestsoverride

不加后面的參數是直接查看剛剛已經重寫(刪除)過電源需求的進程、服務、驅動
也可在注冊表里查看:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlPowerPowerRequestOverride

評論里提到電腦會在兩分鐘內黑屏睡眠,這是微軟的隱藏設置
在無人參與空閑超時后進入睡眠狀態:
微軟希望如果系統因遠程網絡喚醒(Wake on Lan)或觸發了定時器喚醒,系統就會在120秒內睡眠,而不是自定義的時間后睡眠。
官方說明:
https://docs.microsoft.com/zh-cn/windows-hardware/customize/power-settings/sleep-settings-sleep-unattended-idle-timeout?redirectedfrom=MSDN
使用Powercfg刪除此隱藏設置:
powercfg -attributes SUB_SLEEP 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0 +ATTRIB_HIDE
使用Powercfg添加此隱藏設置:
powercfg -attributes SUB_SLEEP 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0 -ATTRIB_HIDE
修改無人參與空閑超時后進入睡眠的時間為36000秒,默認120秒:
使用電池:
powercfg /SETDCVALUEINDEX SCHEME_CURRENT 238C9FA8-0AAD-41ED-83F4-97BE242C8F20 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0 36000
插電源:
powercfg /SETACVALUEINDEX SCHEME_CURRENT 238C9FA8-0AAD-41ED-83F4-97BE242C8F20 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0 36000
powercfg /batteryreport
會生成一份筆記本電池使用報告,估計了電池一次性可用時間和壽命
位置在 C:WINDOWSsystem32battery-report.html
參考鏈接:
微軟官方文檔:Powercfg命令參數 Powercfg command-line options
三種電源請求(Display System Awaymode)的簡要說明:PowerSetRequest function Parameters
三種電源請求(Display System Awaymode)的區別詳細說明: Power Request Types: What's the difference between Display, System, Awaymode. (powercfg)
發現一款叫Don't Sleep的程序,還沒使用過,有興趣可以試試,下載地址:https://www.softwareok.com/?Download=DontSleep
切換成中文,不過中文把睡眠錯誤翻譯成了休眠:

