初始情况
我在一个域中使用多个工作站,不允许更改屏幕保护程序或省电选项,而这在当今非常常见。我经常需要在 PC 之间切换,而它们在闲置 10 分钟后就会被锁定。太可怕了。
目前我正在使用咖啡因以防止屏幕保护程序和系统锁定。但这会导致我的电脑全天候连接到网络。即使在晚上,我也手动用Win+锁定了我所有的工作站L。
我想要实现的目标
我的想法是使用 AutoIt 或 AutoHotKey 自动执行这四个任务,并丢弃所有第三方软件
- 当系统锁定且时间在晚上 8 点至早上 6 点之间时,禁用特定网络接口一次
- 系统解锁后重新启用特定网络接口一次
- 当系统未锁定时 ping 特定 IP(这是为了保持防火墙打开)
- 每分钟模拟一次按键,这样系统就不会锁定屏幕或激活屏幕保护程序
到目前为止我尝试过
由于 SU 不是关于给我代码,我开始在谷歌上搜索如何确定如果 Windows 被锁定,则安全的方法。事实证明,使用WinExist("A")
不够可靠,我陷入了困境。
答案1
我将使用 powershell 脚本来自动执行此操作,并使用计划任务来运行脚本。你可以
1)每个事件(登录/注销、锁定/解锁)都有一个单独的脚本2)根据事件向单个脚本传递不同的参数(例如 auto.ps1 /unlock)
我个人喜欢 #2,前期工作量稍微多一点,但管理起来更容易。您可能希望查看事件日志以对应您希望触发计划任务的事件,我不认为 sch. 任务设置中存在针对所有这 4 个事件的操作,尽管我可能弄错了。
最后,确保您的机器可以直接运行 powershell 脚本或使用适当的参数调用 powershell.exe:
powershell.exe -noprofile -executionpolicy bypass -file C:\autoping.ps1