在 Windows 11 上通过 RDP 实现多用户同时使用:哪些方法确实可行

12:14Claude 回应道:Windows 11 强制规定同一时间仅允许一个活动的 RDP 会话,当第二位用户连接时,第一位用户会立即被断开,并显示消息 “…Windows 11 强制规定同一时间仅允许一个活动的 RDP 会话,当第二位用户连接时,第一位用户会立即被断开,并显示消息 “另一位用户已登录。若你继续,他们将被断开连接。” 这是一项由 termsrv.dll 强制执行的许可限制,而非硬件上限,而且该机器在技术上完全能够在不出现性能问题的情况下处理多个并发会话。微软在所有标准的 Windows 11 版本(包括专业版和企业版)中都施加了这一限制,而要在 Windows 11 上让多个 RDP 会话同时运行,要么迁移到不同的操作系统,要么完全绕过许可强制机制。

如果你需要多人同时在同一台机器上工作,有几条路径值得了解,它们在成本、复杂性和许可影响方面各不相同;而如果你的真实目标是远程访问而不是彼此独立的并发会话,HelpWire 可能在完全不接触系统文件的情况下就能解决这个问题。

大多数人首先尝试的做法,以及为何会失败

最常见的无效做法是修改组策略设置“将远程桌面服务用户限制到单个远程桌面服务会话”该设置位于 计算机配置 > 管理模板 > Windows 组件 > 远程桌面服务 > 远程桌面会话主机 > 连接。将其设置为“已禁用”并不会使两个不同的用户能够同时连接。它控制的是同一用户帐户是否可以打开第二个会话,而不是重新连接到先前断开的会话。在 Windows 11 工作站版本中,切换该选项对多用户并发没有任何作用。

购买 Windows 11 企业版也是一条死路。标准的 Windows 11 企业版不支持多个并发的本地 RDP 会话。Windows 11 企业版多会话中的多会话功能仅适用于 Azure 虚拟桌面,不支持物理硬件或本地部署的虚拟机。

如何在 Windows 11 上启用多个 RDP 会话

只有一种受支持且符合授权的途径:带有远程桌面服务的 Windows Server。下面所述的其他所有方法都绕过了微软的许可执行机制,并违反了《Windows 最终用户许可协议》之所以在此记录这些方法,是因为它们在论坛中广泛出现,且用户在实践中会遇到它们,而并非因为推荐使用。在业务或生产环境的机器上,这些变通方法在许可和安全方面的风险大到足以完全排除其使用。

包含远程桌面服务的 Windows 服务器 (已授权)

具有 RDSH 角色的 Windows Server 是在单个主机上实现多个并发 RDP 用户的唯一受支持且已授权的解决方案。Windows Server 2025 在无需额外配置的情况下允许两个并发管理员会话。对于超过两名用户或非管理员帐户,请安装 RDSH 角色并购买 RDS CALs。

  1. 在目标计算机上安装 Windows Server 2025 或 Windows Server 2022。

  2. 打开服务器管理器,然后单击“管理”>“添加角色和功能”

  3. 选择远程桌面服务安装,然后选择基于会话的桌面部署。

  4. 将远程桌面会话主机、远程桌面连接代理和远程桌面 Web 访问角色分配给目标服务器,并完成向导。

  5. 在提示时重新启动服务器。

  6. 打开远程桌面授权管理器 (licmgr.exe),并激活授权服务器。

  7. 通过许可向导添加 RDS CALs,选择“每用户”或“每设备”以匹配您的环境。

  8. 打开 gpedit.msc,然后导航到 计算机配置 > 管理模板 > Windows 组件 > 远程桌面服务 > 远程桌面会话主机 > 许可。

  9. 将 “使用指定的远程桌面授权服务器” 设置为 启用,并输入授权服务器名称。

  10. 将“设置远程桌面许可模式”设置为每用户或每设备,以匹配您的 CAL 类型。

  11. 打开计算机管理 (compmgmt.msc) > 本地用户和组 > 用户,为每个需要 RDP 访问的用户创建一个单独的本地账户,并将每个账户添加到远程桌面用户组。

RDP Wrapper (违反最终用户许可协议)

警告:RDP Wrapper 绕过了微软对会话数量限制的许可强制执行机制,并在所有工作站版的 Windows 上违反了 Windows 最终用户许可协议(EULA)它不适用于商业、企业或生产环境。以下步骤仅供信息参考。

RDP Wrapper 在 Windows 与 TermService 进程之间插入一个中间层(shim)在不直接修改该 DLL 的情况下拦截 termsrv.dll 内部的会话限制检查。该工具托管于 github.com/starcorp/rdpwrap。

安装 RDP Wrapper

  1. 从 github.com/starcorp/rdpwrap 下载最新发布的压缩包,并将其解压到本地文件夹。

    安装 RDP Wrapper
  2. 右键单击 install.bat,并以管理员身份运行。

    点击 install.bat
  3. 安装完成后,打开 RDPWConf.exe。三个状态指示器都应显示为绿色。

    RDP 封装器配置
  4. 在 compmgmt.msc > 本地用户和组 > 用户 中创建单独的本地用户帐户。

  5. 将每个帐户添加到远程桌面用户组。

  6. 通过同时从不同的 RDP 客户端使用两个不同的用户账户进行连接测试。

在 Windows 更新后保持 RDP Wrapper 正常工作

每次 Windows 累积更新都可能带来一个新的 termsrv.dll 构建版本,而 RDP Wrapper 需要在 rdpwrap.ini 中为每个构建号提供匹配的条目。缺少该条目时,RDPWConf.exe 状态界面会显示“not supported”或“not listening”并且并发会话将停止工作。starcorp 的主仓库更新较慢,因此,要维持这一变通方案,需要在每次补丁星期二之后,从活跃的 GitHub fork 获取由社区维护的 rdpwrap.ini。

 

要确认你当前的 termsrv.dll 构建号,请在以管理员权限打开的 PowerShell 窗口中运行:

 

(Get-Item “C:\Windows\System32\termsrv.dll”).VersionInfo.FileVersion

  1. 从与您当前 termsrv.dll 构建号匹配的社区派生项目中下载更新的 rdpwrap.ini。

  2. 以管理员身份打开命令提示符,并停止该服务:net stop TermService

  3. 将 C:\Program Files\RDP Wrapper\rdpwrap.ini 替换为下载的文件。

  4. 重新启动该服务: net start TermService

  5. 重新打开 RDPWConf.exe,并确认所有指示器均为绿色。

如果 Windows 安全中心将 RDP Wrapper 标记为威胁,应将其视为重要的风险信号。对于处理敏感数据或在组织内运行的任何计算机,请不要为继续使用此工具而绕过或禁用 Windows Defender。请核实来源,审查许可方面的影响,并考虑采用受支持的 Windows Server 方案是否更适合您的情况。

termsrv.dll 直接修补 (违反最终用户许可协议)

警告:修补 termsrv.dll 会修改受保护的 Windows 系统文件,并在所有工作站版本上违反 Windows EULA。它不适用于商业、企业或生产环境。以下步骤仅供参考。

termsrv.dll 的补丁会在特定构建的字节偏移处移除会话限制检查。每次替换 termsrv.dll 的累积更新都需要重新完整打补丁,而且字节偏移因构建版本而异。在继续之前确认当前的 termsrv.dll 版本,并将其与来自 woshub.com 的最新补丁脚本进行交叉核对,该网站按构建版本维护相应的字节偏移。

正在应用补丁

  1. 以管理员身份打开 PowerShell 窗口,并停止依赖的服务:net stop TermService net stop UmRdpService

  2. 取得 termsrv.dll 的所有权: takeown /F C:\Windows\System32\termsrv.dll icacls C:\Windows\System32\termsrv.dll /grant Administrators:F

  3. 在更改之前先备份原始文件:copy C:\Windows\System32\termsrv.dll C:\Windows\System32\termsrv.dll.bak

  4. 确认已安装的构建版本: (Get-Item
    “C:\Windows\System32\termsrv.dll”).VersionInfo.FileVersion

  5. 使用适用于您的构建号的已确认补丁脚本,应用针对该构建的字节替换补丁。

  6. 重新启动服务:net start UmRdpService net start TermService

  7. 通过使用不同的用户账户连接第二个 RDP 会话来进行测试。

撤销补丁

如果该补丁导致不稳定,或者您想在 Windows 更新之前将其移除,请还原备份:

copy /Y C:\Windows\System32\termsrv.dll.bak C:\Windows\System32\termsrv.dll net stop TermService net start TermService

Windows 11 企业多会话 (仅限 Azure)

Windows 11 企业版多会话原生支持多个并发 RDP 会话。Microsoft 仅将其授权用于 Azure Virtual Desktop 部署。它不支持在物理硬件或本地虚拟机上使用,并且在 Azure 之外进行激活将违反 Windows EULA。

如果你的组织使用 Azure Virtual Desktop,这是一个完全受支持的方案。设置过程包括从 Azure Marketplace 将 Windows 11 企业版多会话映像部署到 AVD 主机池,在主机池属性中配置最大会话限制,并通过 Azure Active Directory 分配用户。任何超出 Azure Virtual Desktop 授权流程之外的激活方式都违反许可条款。

如果你尝试在本地物理机器上运行多个会话,在不违反许可的前提下,此选项并不适用。

HelpWire - 更简单的方式来允许多个 RDP 会话

如果你需要的是连接到他人的计算机以提供帮助、监控,或与其协同工作,HelpWire 无需触及 Windows 会话限制、对系统文件打补丁或购买 Windows Server 许可证,就能解决这一需求。操作员可直接连接到用户当前的会话,用户仍停留在自己的桌面上,也不会涉及 RDP 并发会话限制的强制执行。

HelpWire 可在 Windows、macOS 和 Linux 上运行,无需端口转发,也不依赖 3389 端口开放。它免费,既支持有人值守也支持无人值守的访问,并且在慢速网络下也能工作,无需对主机进行配置更改。

如果你的实际需求是远程支持或共享访问,而不是让多人在同一台机器上同时拥有彼此独立的 Windows 桌面,那么在进行上述任何系统修改之前,值得先试试 HelpWire。

常见问题

常规的 Windows 11 企业版不支持在本地计算机上进行多个并发的 RDP 会话。只有 Windows 11 企业版多会话支持此功能,而且微软仅将其授权用于 Azure 虚拟桌面部署,不适用于物理硬件或本地虚拟机。

每个累积的 Windows 更新都可能将 termsrv.dll 替换为带有新内部版本号的新版本。RDP Wrapper 需要在 rdpwrap.ini 中为每个内部版本提供相应的条目。当 ini 文件缺少该新内部版本的条目时,RDPWConf.exe 会报告 “not supported”,并且多会话会停止工作,直到 rdpwrap.ini 使用该新内部版本的正确偏移量进行更新。

Windows Server 2025 和 Windows Server 2022 在无需 RDS CAL 的情况下允许两个并发的管理员 RDP 会话。第三个并发连接需要远程桌面会话主机角色,并且根据所配置的许可模式,每个额外的用户或设备需要一个 RDS CAL。

在标准的 Windows 11 安装中,无法通过任何受支持的方式实现。受许可的路径是使用带有 RDS CALs 的 Windows Server。确实存在不受支持的变通方案,但它们违反 Windows EULA,并带来安全和维护风险,尤其是在用于商业用途的机器上。