允许非管理员用户 RDP 访问 Windows Server

Jacki

默认情况下,对 Windows Server 成员服务器或 Active Directory 域控制器桌面的 RDP 访问仅限于添加到本地管理员或域管理员组的用户。在这篇文章中,我们将向您展示如何向非管理员用户授予对 Windows Server 主机或域控制器的 RDP 访问权限,而不为其分配本地管理员权限。

内容:

默认情况下,Windows 安全设置允许远程用户通过远程桌面服务 (TermService) 建立 RDP 连接,如果:

  • 该用户是本地的成员管理员或者远程桌面用户团体;
  • 当地的允许通过远程桌面服务登录策略允许用户连接。

要远程登录,您需要通过远程桌面服务登录的权限

用户尝试远程连接到 Windows Server 桌面时收到错误:

To sign in remotely, you need the right to sign in Remote Desktop Services. By default only members of the Administrators group have this right. If the group you’re in doesn’t have this right, or if the right has been removed from Administrators group, you need to be granted this right manually.

如果在远程主机上的 RDP 设置中启用了网络级别身份验证 (NLA),则连接时会出现另一个错误:

The connection was denied because the user account is not authorized for remote login.

在这种情况下,您只需将用户添加到本地即可远程桌面用户组以允许他们通过 RDP 连接到 Windows Server:

  1. 打开本地用户和组 MMC 管理单元 (lusrmgr.msc) 并导航至“组”部分;
  2. 双击远程桌面用户团体;
  3. 单击“添加”按钮并输入您要授予 RDP 访问权限的用户(或组)的名称;
  4. 然后,用户可以通过 RDP 连接到 Windows 主机。

还可以从命令行将用户添加到 RDP 访问组:

net localgroup "Remote Desktop Users" /add woshubtestuser

或使用 PowerShell:

Add-LocalGroupMember -Group "Remote Desktop Users" -Member testuser

列出远程桌面用户组中的用户:

Get-LocalGroupMember -Group 'Remote Desktop Users'

同样,您可以授予用户对 Windows 10 或 11 工作站的 RDP 访问权限(不要忘记在这些设备上启用 RDP。)。

参见:如何允许非管理员用户在 Windows 中启动/停止服务

默认情况下,Windows Server 允许两个并发远程桌面会话。这意味着两个用户可以在自己的远程桌面会话中同时工作。如果您需要更多并发 RDP 连接,则需要在 RDS 许可证服务器上购买并激活许可证 (RDP CAL),并安装远程桌面服务角色(这可以是独立的 RDSH 服务器或由多个主机组成的完整 RDS 场)。

您可以使用 RDS 集合在 RDS 场中提供远程桌面访问。打开服务器 经理->远程桌面服务 –>任务->编辑部署属性

打开集合并用户组部分将列出允许连接到该集合中的 RDSH 主机的安全组。

如果您需要授予常规(非管理员)用户远程访问域控制器桌面的权限,则上述方法将不起作用。

服务器角色升级为 Active Directory 域控制器后,无法从计算机管理 MMC 管理单元管理本地用户和组。当您尝试打开本地用户和组安慰 (lusrmgr.msc),出现如下错误:

The computer xxx is a domain controller. This snip-in cannot be used on a domain controller. Domain accounts are managed with the Active Directory Users and Computers snap-in.

正如您所看到的,域控制器上没有本地组。而不是本地组远程桌面用户,DC使用内置域组远程桌面用户(位于内置容器)。您可以从 ADUC 控制台或 DC 命令提示符管理此组。

但是,不建议使用此组来授予远程桌面访问权限,因为这将使用户能够访问域中的所有 DC。在这种情况下,最好使用允许通过远程桌面服务登录政策。

许多人可能会合理地问为什么非管理员需要远程访问 DC 桌面。事实上,在中小型基础设施中,整个基础设施由多个具有域管理权限的管理员管理,这不太可能是必要的。在大多数情况下,在 Active Directory 中委派一些管理权限或使用 PowerShell Just Enough Administration (JEA) 就足够了。

然而,在拥有大量员工的大型企业网络中,通常需要为不同组的服务器管理员、值班管理员或其他技术人员提供对 DC(通常是分支 DC 或 RODC)的 RDP 访问。还有一种情况是,DC上部署了非域管理员管理的第三方服务,并且需要维护这些服务。

如何允许通过远程桌面服务登录?

要允许域用户或组通过 RDP 远程连接到 Windows,您必须向他们授予SeRemoteInteractiveLogonRight特权。您可以使用以下方式授予此权限允许通过远程桌面服务登录政策。

该政策称为允许通过终端服务登录在 Windows Server 2003 及更早版本中。

要允许远程桌面用户组的成员远程连接到域控制器,您需要在域控制器上更改此策略的设置:

  1. 打开本地组策略编辑器(gpedit.msc);
  2. 转到 GPO 部分计算机配置 -> Windows 设置 -> 安全设置 -> 本地策略 -> 用户权限分配;
  3. 查找政策允许通过远程桌面服务登录;服务器升级为 DC 后,此本地策略中保留的唯一组是管理员组(这些是域管理员)。
  4. 编辑策略并直接添加域用户或组(domainCA_Server_Admins) 到它;
  5. 使用以下命令更新 DC 上的本地组策略设置:gpupdate /force

请注意,您添加到的组允许通过远程桌面服务登录政策不应出现在“拒绝通过远程桌面服务登录”策略,因为它具有更高的优先级(请查看文章阻止本地用户帐户下的远程访问)。此外,如果限制用户可以登录的计算机列表,则必须将服务器名称添加到 AD 中的用户帐户属性(LogonWorkstations 用户属性)。

笔记。要允许用户本地登录 DC(通过服务器控制台),还必须将其帐户或组添加到“允许本地登录”政策。默认情况下,以下内置域组具有此权限:

  • 备份操作员
  • 管理员
  • 打印操作员
  • 服务器运营商
  • 账户运营商

如果您不这样做,当您尝试连接到远程桌面时,您将收到一条错误消息:不允许您尝试使用的登录方法。

为了使事情变得更容易,您可以在域中创建一个新的安全组,例如AllowDCLogin。接下来,将需要允许远程访问DC的帐户添加到策略中。如果您需要一次性允许所有AD域控制器的访问,而不是编辑每个DC上的本地策略,最好将用户组添加到AD域控制器中。默认域控制器策略使用组策略管理控制台 (GPMC.msc)。编辑政策项目允许通过远程桌面服务登录在“计算机配置”“Windows 设置”“安全设置”“本地策略”“用户权限分配”部分下。

警告。如果更改默认域控制器策略,请不要忘记将域/企业管理员组添加到策略中允许通过远程桌面服务登录,否则,他们将失去对 DC 的远程访问。

您添加到策略中的用户现在可以通过 RDP 连接到 AD 域控制器的桌面。

如果您需要允许非管理员用户启动/停止 DC 上的某些服务,请使用以下指南。

请求的 RDP 会话访问被拒绝

在某些情况下,当您使用 RDP 连接到 Windows Server 域成员主机或域控制器时,可能会收到以下错误:

The requested session access is denied.

使用非管理员帐号连接DC可能会出现以下问题:

  • 您正在尝试连接到服务器控制台(使用mstsc /admin模式)。此连接模式仅允许管理员使用。尝试在正常 RDP 模式下使用 mstsc.exe 客户端连接到服务器(无需/admin选项);
  • 主机上可能已经存在两个活动 RDP 会话(默认情况下,在未部署 RDS 角色的情况下,不能连接到 Windows Server 的并发 RDP 会话超过两个)。您可以使用以下命令获取远程计算机上的活动会话和登录用户的列表:
    qwinsta /server:dc01
    没有管理员权限,您无法结束其他用户的会话。您必须等待管理员释放或结束会话;
  • 在 Windows Server 主机上启用受限管理模式或 Windows Defender Remote Credential Guard