懂事的电脑就应该自觉工作,每天自动开机、联网、睡眠、醒来……

编程

自动开机,nircmd,计划任务、以及睡眠醒来的事件ID

背景描述

办公室电脑,工作需要远程控制,如何实现有很多方案,不赘述,我用的是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后发现又有问题了,无法唤醒,查了半天,原来电源管理中“混合睡眠”需要关闭才可以使定时唤醒生效。

本文来自云海天,作者:supervisor,转载请注明原文链接:https://www.cnblogs.com/repus/p/16223904.html

以上是 懂事的电脑就应该自觉工作,每天自动开机、联网、睡眠、醒来…… 的全部内容, 来源链接: utcz.com/z/520426.html

回到顶部