2025年3月19日

筆電如何定時開關機+睡眠喚醒之研究

筆電如何定時開關機+睡眠喚醒之研究

Wayne Fu 0 A+
win10-schedule-sleep-wake.jpg-筆電如何定時開關機+睡眠喚醒之研究去年買了新電腦後,原本較常使用的筆電成為閒置狀態,由於台灣濕氣較重,3C 電子用品若不常通電、開機,會比較快故障。所以想到可以把每日定期執行的「爬蟲程式」,改成由筆電執行。一方面爬蟲程式執行的視窗就不會干擾電腦的日常作業,一方面筆電有事情做,每天開機也可延長使用壽命,可說是一箭雙鵰。 然而一段時間後,偶爾也會發生忘了走到筆電按下開關的狀況,導致每日該跑的爬蟲程式沒執行。依賴大腦記住事情終究不可靠,為了一勞永逸,決定研究讓筆電開關機也自動化的方法,如此將可完全不必監管這台筆電。 可惜天不從人願,這件事不如想像中簡單,研究過程頻頻遇坑,需要解決的問題相當多,詳情請見本篇的心得分享。 (圖片出處: pixabay.com)

一、定時開關機

1. 定時關機 筆電從頭到尾的自動化流程,最容易處理的是最後一個步驟「關機」,只要利用 Windows 內建的「工作排程器」,指定時間執行 Windows 內建工具 shutdown.exe 即可。操作流程很簡單不再贅述,請直接參考微軟論壇頁面「設定Windows 10定時自動關機」。 2. 定時開機 最困難的一件事是如何讓筆電在關機的狀態下,能夠自動開機。這功能必須筆電主機板 BIOS 支援才行,通常商用或高價筆電才會提供這個功能。 我的 Acer 筆電屬於平價機型,BIOS 選項陽春到不行,所以這件事只能找替代作法了。 如果你的筆電 BIOS 選項看起來很複雜的話,可以找找有沒有「Wake Timers」、「RTC Alarm」這類的字串,應該就能設定定時開機。 3. 定時網路開機 前陣子寫過一篇「從手機桌面遠端遙控開機」,其原理大致是這樣:
  • 關閉 Windows「快速啟動」功能,讓電腦真正關機,保持主機板部份供電,用來接收網路線訊號。
  • 電腦主機板開啟「網路喚醒」功能
  • 在 Windows 裝置管理員將網路卡設定為「允許這個裝置喚醒電腦」
  • 在手機安裝「Wake on LAN」這類 APP
經以上流程後,就能從手機發送訊號讓電腦開機。 但這個流程最大的問題是,我的 Acer 平價筆電並沒有網路線接口,網路訊號根本沒有管道傳送給筆電主機板,所以「定時網路開機」這條路也行不通了... 如果你的筆電有 RJ45 接頭的話,那麼完成以上的操作流程後,利用定時執行的 APP 來啟動「Wake on LAN」APP 即可,或是使用 iOS 內建的「捷徑」工具 →「自動化」,設定時間來執行「Wake on LAN」APP,都能實現「定時網路開機」。 4. 其他定時開機解法 那麼有沒有辦法「定時無線網路開機」呢?答案是不行,可參考這篇心得「透過無線網路喚醒電腦」:"無線網路只能實現 S3(睡眠)、S4(休眠)喚醒,S5(關機)受限於硬體目前是無解的"。 該篇作者也提供了一些腦洞很大的有趣解法,例如買智慧插座,不過也要主機板支援才行,有興趣可以詳讀該篇內容。

二、睡眠(S3)與休眠(S4)

1. 關機(S5)的替代方案 要讓我的 Acer 筆電從「關機」狀態自行啟動是行不通了,退而求其次我想到可以改成從「睡眠」或「休眠」喚醒。而應該選擇「睡眠」或「休眠」需要進行一番研究,另外就是電腦都不關機的話,會有什麼影響也需要了解一下。 於是我把「開關機」與「睡眠」的作法餵了 ChatGPT,得到以下結論:
  • 每次「開關機」都會有電流衝擊,導致增加電子零件耗損、增加 HDD、SSD 讀寫,影響電子零件壽命;使用「睡眠」則影響微乎其微
  • 「關機」不會耗電,「睡眠」會消耗 5W 以下的電力
  • 長時間「睡眠」不關機的狀態,會有記憶體累積的問題,可能影響系統穩定性
總的來看,筆電採用「睡眠」的優點遠高於「關機」,除了會消耗一點點的電力,主要的缺點「記憶體累積」這個問題也非不能解決,只要定期(例如每週或每月)重新啟動即可,因此我可以安心採用「關機」以外的選項。 2. 睡眠與休眠比較 一般讀者可能搞不清楚「睡眠(S3)」與「休眠(S4)」有什麼差別,因此花一點篇幅簡單整理一下:
  • 休眠在意義上幾乎等於關機,只是將記憶體寫入系統檔,讓開機時速度變快。
  • 睡眠則是將主機板大部分元件斷電,只保留記憶體供電。
  • 所以休眠跟關機一樣,會造成電子零件、HDD、SSD 耗損;而睡眠幾乎沒影響。
  • 睡眠的風險在於萬一供電不穩、跳電、停電,則記憶體中的資料會消失。
經以上比較就能知道,保險起見常常作業的 PC 最好不要使用「睡眠」,以免記憶體中的資料有意外。而本篇我的閒置筆電不是作業用工具,那麼使用「睡眠」模式可說是最佳解了,還能延長筆電、SSD 壽命。

三、定時睡眠+喚醒測試

1. 測試失敗 無法喚醒 確認執行方案從「定時開關機」改為「定時睡眠+喚醒」後,開始餵 ChatGPT 及查找資料,大致得到這些資料: 將以上作法在 Win10 內建的工作排程器,建立兩個任務「定時睡眠」、「定時喚醒」後,可以成功進入睡眠,但卻怎麼樣也無法喚醒筆電。 由於「工作排程器」的設定選項相當多,為了測試成功我不斷查找網路資料,試著修改選項、參數等等,例如勾選「已最高權限執行」、選擇「不論使用者登入與否均執行」,甚至也修改了執行身份為 "Administrators" 等等,總歸一句話,幾乎能改的選項都測試過了,但怎麼樣都無法喚醒電腦。 2. 手動進入睡眠 後來試著不要從「工作排程器」執行睡眠任務,改成直接從 Windows「開始」→「電源」來執行「睡眠」,結果工作排程竟然可以喚醒! 看來我找到失敗的原因了,rundll32 指令實現的「睡眠」跟 Windows 系統的「睡眠」不完全一樣,所以工作排程無法喚醒,至於哪裡不一樣就無從得知了。總之如果我能模擬出 Windows系統的「睡眠」行為,就能實現「定時睡眠+喚醒」了。 3. 真正進入睡眠的作法 問了一下 chatGPT 有什麼解決方法,得到了幾種作法,其中我覺得比較簡單的作法是,下載微軟提供的 PsShutdown 這個工具:
  • 官網:PsShutdown v2.6(此頁面有詳細的參數說明)
  • 下載連結:PsTools
  • 解壓縮後看到一大堆工具,其中有 psshutdown.exe、psshutdown64.exe 這兩個檔案,電腦是 x64 系統的話用 psshutdown64 這個檔案
  • 把檔案複製到 C:\Windows\System32 就能在任意路徑執行
  • 完整的睡眠指令參數:psshutdown64 -d -t 0
我讓工作排程執行指令 psshutdown64 後,總算進入真正的「睡眠」狀態,也能用工作排程喚醒,至此總算解決了最重要的問題。

四、實現排程「定時睡眠+喚醒」

以上是我的試錯過程紀錄,以下整理完整操作的流程:
  • 在左下角搜尋輸入「工作排程器」,找到後執行
  • 動作 → 建立基本工作
1. 建立睡眠任務 win10-schedule-sleep-wake-1.jpg-筆電如何定時開關機+睡眠喚醒之研究
  • 輸入名稱及描述
  • 「觸發程序」選擇「每天」
win10-schedule-sleep-wake-2.jpg-筆電如何定時開關機+睡眠喚醒之研究
  • 設定每天要觸發的時間
  • 「動作」選擇「啟動程式」
win10-schedule-sleep-wake-3.jpg-筆電如何定時開關機+睡眠喚醒之研究
  • 如上圖,「程式或指令碼」輸入 psshutdown64,「新增引數」輸入 -d -t 0
  • 最後按「完成」即可
2. 建立喚醒任務 win10-schedule-sleep-wake-4.jpg-筆電如何定時開關機+睡眠喚醒之研究
  • 輸入名稱及描述
  • 「觸發程序」選擇「每天」
win10-schedule-sleep-wake-5.jpg-筆電如何定時開關機+睡眠喚醒之研究
  • 設定每天要觸發的時間
  • 「動作」選擇「啟動程式」
win10-schedule-sleep-wake-6.jpg-筆電如何定時開關機+睡眠喚醒之研究
  • 如上圖,「程式或指令碼」輸入 cmd,「新增引數」輸入 /c exit
  • 這個指令+參數的意思是,執行 cmd 後關閉此視窗。如果只行指令 cmd 而沒加上此參數,那麼從睡眠中喚醒後,DOS 視窗還會留在畫面上
  • 最後按「完成」建立此排程
win10-schedule-sleep-wake-7.jpg-筆電如何定時開關機+睡眠喚醒之研究 回到工作排程視窗,雙擊剛剛建立的排程。如上圖,切換到「條件」分頁,務必要勾選「喚醒電腦以執行此工作」,然後按「確定」即可。 win10-schedule-sleep-wake-8.jpg-筆電如何定時開關機+睡眠喚醒之研究 上圖可看到新增的兩個工作排程,之後時間到了就會自動執行睡眠及喚醒。

五、補充說明

為了讓「定時睡眠+喚醒」正常運作,補充幾點注意事項: 1. 確保 Windows 允許自動喚醒 首先要檢查 Windows 是否允許自動喚醒:
  • 打開「電源選項」:按 Win + R → 輸入 powercfg.cpl → 變更計畫設定 → 變更進階電源設定
  • 找到「睡眠」→ 允許喚醒計時器 → 必須是「啟用」的狀態
2. 測試喚醒排程 可以檢查是否建立的「喚醒」排程會執行,打開 DOS 命令視窗執行以下指令: powercfg /waketimers 3. 讓滑鼠無法喚醒電腦 在睡眠狀態下,如果不小心碰到鍵盤或滑鼠,都會將電腦喚醒,因為睡眠模式下 USB 還是會供電。 其實不小心誤碰鍵盤的機率比較低,倒是我有時不小心撞到桌角就會喚醒電腦。仔細思考了一下,原因應該是桌子有輕微移動時,會讓滑鼠有輕微位移,導致誤判有操作行為,從而喚醒電腦。 為了避免此狀況,最好進行以下操作,讓滑鼠無法喚醒電腦:
  • Win + X → 裝置管理員 → 叫出滑鼠裝置 → 切換到「電源管理」分頁 → 取消勾選「允許這個裝置喚醒電腦」
更多 Windows 相關技巧:
0 0
如這篇文章對你有幫助,歡迎「分享」到 FB、「追蹤」粉絲團、「訂閱」最新文章

沒有留言:

張貼留言注意事項:

◎ 勾選「通知我」可收到後續回覆的mail!
◎ 請在相關文章留言,與文章無關的主題可至「Blogger 社團」提問。
◎ 請避免使用 Safari 瀏覽器,否則無法登入 Google 帳號留言(只能匿名留言)!
◎ 提問若無法提供足夠的資訊供判斷,可能會被無視。建議先參考這篇「Blogger 提問技巧及注意事項」。
◎ CSS 相關問題非免費諮詢,建議使用「Chrome 開發人員工具」尋找答案。
◎ 手機版相關問題請參考「Blogger 行動版範本的特質」→「三、行動版範本不一定能執行網頁版工具」;或參考「Blogger 行動版範本修改技巧 」,或本站 Blogger 行動版標籤相關文章。
◎ 非官方範本問題、或貴站為商業網站,請參考「Blogger 免費諮詢 + 付費諮詢
◎ 若是使用官方 RWD 範本,請參考「Blogger 推出全新自適應 RWD 官方範本及佈景主題」→ 不建議對範本進行修改!
◎ 若留言要輸入語法,"<"、">"這兩個符號請用其他符號代替,否則語法會消失!
◎ 為了過濾垃圾留言,所有留言不會即時發佈,請稍待片刻。
◎ 本站「已關閉自刪留言功能」。

TOP