【发布时间】:2019-08-23 21:08:11
【问题描述】:
目标描述:
我需要在我工作场所的所有计算机上个性化屏幕保护程序以显示特定的文本或图片。
我需要能够通过脚本设置和强制此屏幕保护程序及其所有自定义,而不是通过 UI 或 GPO。
我需要屏幕保护程序处于活动状态,开启(5-10 分钟后)并保持开启(无屏幕黑屏) - 无论用户登录、注销或锁定状态如何。
我需要将它应用于所有机器,主要是 Win 10,一些 Win 7,家庭版和专业版
我需要能够每周左右更改自定义/更改文字或图片。
以下是我的问题和疑虑:
1) 限制:
这些更改的任何部署都需要通过 Atera 使用脚本进行。 Atera 是一个 RMM,它支持执行 .bat 和 .ps1 (power-shell) 文件,这些文件将以 SYSTEM 或本地用户帐户在本地计算机上运行。 这是因为所有 150 台计算机都分布在 7 个不同的位置,并且没有连接到任何域或各种服务器。所以,不能使用组策略。
我不确定如何在脚本中为(幻灯片放映?)屏幕保护程序指定一张或多张图片。
我不确定如何确保屏幕保护程序将应用于系统级别 - 例如在注销时 - 而不仅仅是每个用户级别(我见过的大多数基于 REG 的脚本都针对 HKCU屏幕保护程序设置 - 参见 here 例如) 此外,一个重要的注意事项 - 当脚本以 SYSTEM 身份运行(并且需要以管理员权限运行)时,对 HKCU 的引用不会影响当前登录的用户。因此,为了实现“HKCU”注册表编辑,我需要编辑 HKEY_USERS 配置单元下的所有配置文件。不确定如何在脚本中引用这些配置文件。我可以使用“*”吗?另外,如果我在当前用户登录时从 HKEY_USERS 目录编辑他们的注册表配置单元,它将如何影响当前用户?
有些电脑是专业版,有些是家庭版。家庭版可能不允许我使用某些会创建系统策略的注册表项,尽管我对此不确定。由于我们希望强制执行此操作,因此我们希望阻止更改屏幕保护程序设置选项的能力 - 就像在 here 中找到的一样。如果我们可以让脚本每天运行以重置设置,这可能不是问题。
我见过的大多数更改屏幕保护程序设置的 REG 脚本都需要重新启动计算机或让用户注销才能生效。这应该不是必需的,但还没有弄清楚如何告诉计算机在不重新启动的情况下识别新设置
2) 冲突
Windows 上的默认设置是在空闲几分钟后锁定时使屏幕超时(黑色)(我相信注册表编辑可以改变这一点)
某些计算机在空闲后会进入睡眠状态(可能 HKLM_currentcontrolset 注册表项可以解决此问题)。
我目前有一个计划任务在空闲(10 分钟后)运行,它使用我创建的 .bat 文件锁定屏幕并在一个小时后关闭 methasoft(EMR 程序)。以我的经验,我已经看到屏幕保护程序启动了,并且在设备被锁定时,它会消失并显示登录屏幕(就像按 Start+L 后一样)。另外,我发现在测试 methasoft 关闭的过程中(我测试了它在几分钟内关闭的位置)我发现它会使屏幕重新打开(在黑屏之后),我担心它也会杀死屏幕保护程序并带回锁定屏幕。 如果在锁定屏幕上空闲时屏幕保护程序会再次出现,这可能不是问题。
【问题讨论】:
-
我发现了这个,它可能对我有用,但我想在使用它之前理解代码 - reddit.com/r/PowerShell/comments/5fglby/comment/daoepvj
-
我认为这不适用于 Windows 7 机器,因为它们没有“锁屏”图像。
-
我还发现了这个 displayfusion.com/Discussions/View/… 参见答案 #26,它可能有助于屏幕消隐。
-
上面链接的两个项目都不适合我。见下文,我发现一个脚本可以设置背景锁定屏幕图像。
标签: powershell registry lockscreen screensaver windows-scripting