我们需要在笔记本电脑上配置屏幕锁定超时,以便不活动时间根据连接动态变化:如果笔记本电脑通过以太网直接连接到公司网络,则屏幕应在 15 分钟后锁定,但在任何其他情况下(笔记本电脑未连接到任何网络,或通过 VPN 连接)这个时间应该减少(比如说,减少到 5 分钟)...
所有客户端机器均在 Windows 7 或 10 Enterprise 上运行。
请注意,这必须独立于电源选项,并且屏幕锁定超时可能会在单个用户会话期间多次更改。例如,用户将笔记本电脑从扩展坞上取下(屏幕锁定超时从 15 分钟更改为 5 分钟),然后关闭它,在断开网络连接的情况下启动它(屏幕锁定超时仍为 5 分钟),通过 VPN 工作一段时间(仍为 5 分钟),然后将其放回扩展坞上,笔记本电脑通过以太网重新连接到公司网络(屏幕锁定超时恢复为 15 分钟)...
GPO 的管理模板不允许根据网络连接配置屏幕锁定。有什么最佳方法可以实现这一点吗?
到目前为止,我一直在考虑使用事件触发的计划任务。但我不知道可以使用什么事件来准确地链接此类任务触发器...
答案1
实现此目的的一种方法是监视 NetworkProfile 事件 ID 10000 和 10001,并在这些事件的每个实例之后运行脚本。
要设置用户断开网络连接时 5 分钟的屏幕保护程序超时,请创建一个新的计划任务,为其指定相关名称,并为触发器选择“当记录事件时”。然后在下一个屏幕上指定:
- 日志:Microsoft-Windows-NetworkProfile/Operational
- 来源:NetworkProfile
- 事件 ID:10001(网络断开连接)
对于该操作,使用 PowerShell 脚本(或任何您熟悉的脚本)来设置屏幕保护程序超时期限。
要为受信任网络设置 15 分钟的超时时间,您需要做更多的准备工作,以确定您是否有足够一致的网络名称或 IP 范围,以便将此脚本标识为受信任的网络。触发此事件时,您可以从最近的事件 ID 10000 中检查网络名称,如果网络名称受信任,则减少屏幕保护程序超时时间。
当然,这两种方法都不是万无一失的。网络名称可能总是被伪造或偶然与您信任的网络的名称匹配。一种可能的解决方法是 (1) 检查与您的内部域名匹配的网络名称,然后 (2) 使用 Get-ADDomainController PowerShell cmdlet 查看您是否可以访问域控制器并确认您确实已连接到此网络。
可能还有其他/更好的方法,包括可能具有项目级别定位的组策略首选项。同样,在时间方面存在挑战(重新评估和重新应用策略的频率)以及如何识别当前网络状态。带有 WMI 查询的 ILT 可能是最接近的,但这种方法不像使用记录的事件 ID 触发的任务那样“实时”。
这里没有适合您的脚本,但如果您(或任何其他人)仍在寻找解决方案,希望这能让事情朝着正确的方向发展。