閩人

我們可以通過“組策略+開關機腳本”來記錄孩子使用電腦的時間。為了方便查看,我們先在“G:\”(盤符可自行修改)下新建“開機查詢”和“關機查詢”這兩個文件夾,然后啟動記事本程序,新建兩個空白文本文件“開機查詢.t xt”和“關機查詢.t xt”并放置在上述對應的文件夾里。
接著再啟動記事本程序,輸入下面的命令:
" $(Get-Date -Format 'y y y y-MMdd')的開機時間是:" | Out-File -Append"G:\開機查詢\開機時間查詢.txt"
Get-Date -Format 'H時:m分:s秒' |Out-File -Append "G:\開機查詢\開機時間查詢.txt"
然后將其保存為“kaiji.ps1”,放置在“G:\開機查詢”文件夾中備用(圖1)。
命令解釋:第一行命令是把“Get-Date”當作一個變量,使用"$()"進行引用,日期使用“年月日”的格式(表示開機日期),并將該內容以追加輸入的方式輸出到“G:\開機查詢\開機時間查詢.txt”文件中。第二行命令則是使用“Get-Date”獲取當前時間(格式為“時分秒”,表示開機時間),也追加輸出到同一個文件中。
操作同上,再新建一個名為“guanji.ps1”的文件(把“kaiji.ps1”中的“開機”改為“關機”,其他的代碼相同),然后保存在“G:\關機查詢”文件夾中備用。
接著在桌面的任務欄搜索框中輸入“組策略”,啟動組策略編輯器后依次展開“計算機配置→Windows設置→腳本(啟動關機)→啟動”,在打開的窗口中切換到“PowerShell腳本”,點擊“添加”,將“G:\開機查詢\kaiji.ps1”添加到運行列表中(圖2)。
操作同上,繼續添加“G:\關機查詢\guanji.ps1”到關機腳本中。這樣每次開關機后都會自動運行上述的腳本,并將開關機時間寫入到對應的文本文件中。我們只要打開該文件進行查看即可(圖3)。

PowerShell腳本還能用來監控進程的創建時間和持續運行的時間,并且可以根據預設的時間對進程進行管理。比如現在要限制孩子最多玩90分鐘的游戲,游戲進程是“C:\dnf \地下城與勇士\DNFchina.exe”。
首先啟動記事本程序,輸入下面的命令,然后將其保存為“3.ps1”,放置在“G:\”根目錄下備用。
get-processDNFchina|?{([DateTime]::Now-$_.StartTime).TotalSeconds-gt3600}|stop-process
命令解釋:
使用“get-process”查詢指定進程(DNFchina)的信息,然后用當前時間減去游戲進程的創建時間,如果結果大于3600秒(即60分鐘),那么就執行“stopprocess”命令來終止進程。
接著在桌面的任務欄搜索框中輸入“任務計劃”,啟動任務計劃程序后新建一個基本任務,在創建任務窗口中切換到“常規”,任務的名稱設置為“禁止游戲”,并勾選“使用最高權限運行”。再切換到“觸發器→新建觸發器”,建立一個2021年3月23日8:00開始運行的任務(開始時間可自行修改),具體參數設置參考圖4所示的界面(圖4)。
繼續切換到“操作”,新建一個啟動程序的操作,“運行程序或腳本”處選擇“C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe”,“添加參數”處選擇“G:\3.ps1”,“起始于”處選擇“G:\”(圖5)。
這樣從2021年3月23日的8:00開始,系統就會在后臺每隔半小時運行一次上述設置的腳本“G:\3.ps1”,它會對游戲進程(DNFchina.exe)的持續時間進行統計(如果游戲未運行則自動忽略)。假設孩子是在8:01分開始啟動游戲的,那么8:30、9:00運行的任務不會終止游戲進程(因為當前時間減去進程的啟動時間小于60分鐘),而9:30運行的任務則會自動終止游戲進程(因為此時的持續時間為89分鐘,大于60分鐘,也就意味著孩子每次的最長游戲時間實際為89分鐘)。如果需要修改限制時間,請自行更改“3.ps1”中的時間代碼,并重新設置“重復任務間隔”等選項(圖6)。
為了防止進程結束后孩子再次運行該游戲,還可以在“3.ps1”中添加一行代碼(代碼為:echoy|cacls"C:\dnf\地下城與勇士\DNFchina.exe"/gcfan:F),表示只授予cfan賬戶有完全控制權限(cfan為家長的用戶名,孩子不知道該賬戶的密碼)。這樣進程結束后,孩子的賬戶將沒有權限再次運行“DNFchina.exe”。