是否有一个 GPO 选项可以禁用 RDP 连接的空闲时间屏幕保护程序,但保留交互式登录的空闲时间屏幕保护程序选项?
编辑:所有用户都是 TS 用户,也是本地用户,因此他们位于同一个 OU 中。我们需要在他们使用 RDP 时“禁用”屏幕保护程序。
答案1
几个月前,我在这里发布了我对此问题的解决方案。作为对 tfrederick74656 帖子的回应(如下),我表示使用远程桌面的项目级定位有一个更好的解决方案。
在我发布这篇文章后,它工作了一两天,然后就不再起作用了。经过几个月做其他事情并想知道到底发生了什么之后,我又重新开始了。这次我真的找到了解决问题的方法!
目标:除 RDP 外,所有笔记本电脑、台式机和服务器都具有锁屏策略。
它不再是项目级定位解决方案,而是 GPO 中的一个脚本和一个设置。正如其他地方所述,您需要四个设置:
启用屏幕保护程序
启用密码保护屏幕保护程序
启用强制特定屏幕保护程序
已启用 ScreenSaveTimeOut [时间(秒)]
因为我不知道什么设置负责这个东西的工作,所以我想把它们都放到脚本中。有一个设置我找不到,所以这个设置与其他设置分开:强制特定屏幕保护程序。(您不必告诉系统您需要什么屏幕保护程序。)我们需要的另一个东西是一个脚本:LockDesktopAfter3MinutesExceptRDP.PS1
这是 GPO:用户配置 - 策略 - 管理模板 - 控制面板 - 个性化 - 强制特定屏幕保护程序:已启用(您不必告诉系统您需要什么屏幕保护程序。)
以下是我添加到 GPO 中的脚本:
$File = "c:\temp\sessions.txt"
query session > $File
$text = Get-Content $File
ForEach ($Line in $text)
{
If ($Line -like '*>console*')
{
#console session
Set-ItemProperty -Path "HKCU:\Software\Policies\Microsoft\Windows\Control Panel\Desktop\" -Name ScreenSaveActive -Value 1
Set-ItemProperty -Path "HKCU:\Software\Policies\Microsoft\Windows\Control Panel\Desktop\" -Name ScreenSaverIsSecure -Value 1
Set-ItemProperty -Path "HKCU:\Software\Policies\Microsoft\Windows\Control Panel\Desktop\" -Name ScreenSaveTimeOut -Value 180
}
ElseIf ($Line -like '*>rdp-tcp*')
{
#RDP session
Set-ItemProperty -Path "HKCU:\Software\Policies\Microsoft\Windows\Control Panel\Desktop\" -Name ScreenSaveActive -Value 0
Set-ItemProperty -Path "HKCU:\Software\Policies\Microsoft\Windows\Control Panel\Desktop\" -Name ScreenSaverIsSecure -Value 0
Set-ItemProperty -Path "HKCU:\Software\Policies\Microsoft\Windows\Control Panel\Desktop\" -Name ScreenSaveTimeOut -Value 86400
}
}
# Apply this new policy now (immediately after this registry change)
Start-Sleep -s 10
Start-Process -FilePath "rundll32.exe" -ArgumentList "user32.dll, UpdatePerUserSystemParameters 1, True"
剧本内容如下:
当您在 cmd 框中输入“查询会话”时,您将在几行内获得您的会话以及可能的其他会话。您自己的会话在行首有一个“大于号”。
powershell 脚本逐行读取此输出并检查是否存在 '>console' 或 '>rdp-tcp'。现在您知道您正在处理的是远程桌面还是控制台桌面。现在,您可以通过更改注册表项根据情况更改锁定桌面行为。
但这只是解决方案的一半。
真正的问题是你必须告诉系统你现在想要结果。这可以通过运行脚本的最后一行来实现。
我希望这对你有帮助。
答案2
正如@ELT 评论的那样,您需要实施环回策略,因此完整设置将是:
- 在服务器的 OU 上创建 GPO。
- 将用户配置分支中的“启用屏幕保护程序”策略设置为“已禁用”。
- 在计算机配置分支中,将“配置用户组策略环回处理模式”设置为“已启用”,模式为“合并”。
最后一个策略将强制计算此 GPO 的设置,就好像用户属于服务器所在的 OU 一样。因此,将采用“启用屏幕保护程序:已禁用”。
答案3
我会将 TS 用户放入单独的 OU 中Microsoft 的 Technet 文章。
在组策略管理单元中更改此 PO:
答案4
从未对屏幕保护程序进行过这样的操作,但对打印机实施了类似的策略。
仅针对具有终端服务器的特定 OU 的 GPO -注意*我们针对的是计算机对象。使用环回策略强制用户执行屏幕保护程序设置;如果配置正确,它应该适用于所有用户登录。