原始需求是不想要小朋友半夜爬起來偷玩電腦,其實有很多解法如
- 付錢給種花電信 ~ 花錢了事解決
- Windows 內建"家長監護" ~ 我覺得是個不錯的方案,但是需要使用微軟帳戶
- 使用教育部網路守護天使 ~ 有解決解決但是有兩個問題 (a) 只能免費使用一年(超過移除重裝?) (2) Windows 11 Home 裝不起來
後來想到偉大的工程師應該都有相同的煩惱,終於找到一個簡單好用的小工具 vasyaod/parental-control
專案首頁 https://github.com/vasyaod/parental-control,我必須說這個比較適合工程師,一般使用者考慮上面幾個方案比較簡單。
安裝不難, 下載 https://github.com/vasyaod/parental-control/blob/windows-assets/parental-control-setup.exe?raw=true 執行按步驟安裝即可。安裝完成後找到 C:\Program Files\parental-control\config.xml
注意!! 這個檔案需要管理者權限才能寫入,我建議使用 Notepad++來修改。檔案打開後我把它分成兩部分,上半部是Web配置我覺得可以忽略
下面是使用者可用時間的設定,每個 “-" 是一個使用者設定
- login 目前 windows 登入帳號的名稱
- timeLimit 每日可用分鐘數
- noticePeriod 這個不太確定用途
- schedule 每天可用時段設定
修改完成後需要重啟服務,如果改了上半部就重啟下面(有Web),改下半部設定就重啟上面那個服務
驗證就不說了,反正不再合理時間內使用就會被強制登出。
這個專案還有個有趣的地方是它用 Haskill 程式語言開發,為什麼我會知道呢?因為我去翻了程式碼… 為什麼我要去翻他的程式碼? 因為 Windows 11 Home 裝不起來(對… 又是 Win11)。原本以為原始釋出是在 Github Action 透過 Windows 2019 編譯的問題,所以我就Fork了一份改了Github Action 用 Windows 2022 重編(偉大的 Github Action 真心覺得好用)結果還是失敗。
後來看了程式碼WindowsCommand.hs發現他的實作是利用 Windows 的工具 query.exe, msg.exe, logoff.exe 來實現,但是問題出在 Windows Home 版沒有包含這些工具,解法可以參考這篇文章。將相關依賴工具補上後一切就都正常了。
想不到原來只是要解決一個簡單的需求,瞬間多了很多其他知識 哈哈~~