懂事的電腦就應該自覺工作,每天自動開機、聯網、睡眠、醒來……

supervisor發表於2022-05-05

背景描述

辦公室電腦,工作需要遠端控制,如何實現有很多方案,不贅述,我用的是frp加密轉發。

但是遇到停電、斷網等情況,如何自動恢復(單位使用了銳捷認證系統)?

另外,一天24小時開著又太浪費,只需要某些時候接受可能的遠端遙控。

在此情況下,我需要自動開機、自動聯網、定時睡眠、定時喚醒。

分項加以說明,重點是計劃任務的設定,以及睡眠醒來的事件ID。

自動開機

這是最好處理的,BIOS設定定時開機即可。每天還是每週,都按自己意願設定。

將電源設定為恢復到上次的情況,如果停電,則來電自動開機,是我主動關機,則到了設定時間才自動開機。

自動聯網

勾選銳捷認證軟體的記住密碼、自動登入和開機自啟選項,將銳捷服務(rj supplicant service)設定成自動啟動。

從睡眠中醒來後能否自動登入聯網,另見後面章節。

定時睡眠

定時執行操作,無需任何第三方軟體,Windows自帶的計劃任務就很好了,還可以把許多不必要的任務關閉。

睡眠命令是怎樣呢?網上搜尋有若干結果,不外是以下幾種,大多都不確切。

rundll32.exe powrprof.dll,SetSuspendState 0,1,0

shutdown -h

它們的功能都一樣,執行系統休眠,如果關閉了休眠功能(比如命令用powercfg -h off),則進入睡眠狀態。

如果不想關閉休眠功能又不想程式設計讓電腦按指令睡眠,目前感覺nircmd最強大穩定。

nircmd.exe cmdwait [延時毫秒數] standby

中間的cmdwait [延時毫秒數]這一節,看自己需求,可以不要

進入睡眠只是它若干功能之九牛一毛,相當好用!

定時喚醒

同樣也是使用計劃任務來完成,與普通的任務相比,需要勾選“條件”選項卡中的“喚醒計算機執行此任務”。

實驗表明,任務執行完成後,發現沒有鍵鼠動作,計算機又倒頭睡著了……

怎麼保持清醒?

所以,這個任務不能太簡單,太複雜則浪費計算機效能。

其實隨便執行一個不會自動結束、也不會重複開啟多個副本的軟體就行。

我編寫了一個小指令碼,每分鐘ping一下閘道器,迴圈8個小時,或直到下次此計劃任務啟動。✌️

怎麼醒來聯網?

聯網簡單,執行認證軟體即可,但是“醒來”這個時機如何把握?

計劃任務中,觸發器,發生事件時。

查了若干資料,計劃任務中,有方法定位到計算機醒來的事件。

主要有這麼幾種:

Windows-Kernel-Power with event ID 42
Windows-Power-Troubleshooter with event ID 1
Windows-Kernel-General with ID 1

經實驗,對不同的系統(Win7/Win10/Win11)有不同的效果,都加進去更保險。

其它問題

事後再想想,醒來聯網是不是搞複雜了?

多此一舉?

把聯網認證的命令寫到喚醒指令碼的第一行應該就可以了。

Win11喚醒

系統換成Windows11後發現又有問題了,無法喚醒,查了半天,原來電源管理中“混合睡眠”需要關閉才可以使定時喚醒生效。

相關文章