仅当通过 RDP 连接时,GPO 才禁用屏幕保护程序

仅当通过 RDP 连接时,GPO 才禁用屏幕保护程序

是否有一个 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 -注意*我们针对的是计算机对象。使用环回策略强制用户执行屏幕保护程序设置;如果配置正确,它应该适用于所有用户登录

相关内容