如何在 Windows 10 和 11 上允许多个 RDP 会话
远程用户可以通过远程桌面服务 (RDP) 连接到其 Windows 10 和 11 计算机。您所需要做的就是启用远程桌面,授予用户 RDP 访问权限,并使用任何远程桌面客户端连接到计算机。但是,Windows 桌面版本中并发 RDP 会话的数量受到限制。仅允许一个活动的远程桌面用户会话。
如果您尝试建立第二个 RDP 连接,将会出现一条警告,要求您断开第一个用户的会话。
Another user is signed in. If you continue, they’ll be disconnected. Do you want to sign in anyway?Windows 上的并发 RDP 连接数
在 Windows 10 和 11 的所有桌面版本中使用远程桌面服务有许多限制:
只有 Windows Professional 和 Enterprise 版本可以接受远程桌面连接。家庭/单语言 Windows 版本不允许 RDP 访问;
-
只有一个同时 RDP 连接可用。尝试启动第二个 RDP 会话将提示用户结束活动会话;
如果用户正在计算机控制台(本地)工作,则当他们建立远程 RDP 连接时,他们的本地会话将断开(锁定)。如果用户从计算机控制台登录 Windows,远程 RDP 会话也将终止。
Windows 上的并发 RDP 连接数实际上是许可证限制。 Microsoft 禁止创建基于工作站的终端 RDP 服务器以供多个用户同时工作。
如果您的任务需要部署终端服务器,Microsoft 建议购买 Windows Server(默认情况下允许两个同时的 RDP 连接)。如果您需要更多并发用户会话,则需要购买 RDS CAL、安装和配置远程桌面会话主机 (RDSH) 角色或部署 RDS 场。
从技术上讲,任何具有足够 RAM 和 CPU 资源的 Windows 版本都可以同时支持数十个远程用户会话。平均而言,RDP 用户会话需要 150-200MB 内存(不包括正在运行的应用程序)。这意味着并发 RDP 会话的最大数量仅受计算机的可用资源的限制。
在本文中,我们将向您展示三种方法来取消 Windows 10 和 11 中并发 RDP 连接数的限制:
RDP 包装
修改termsrv.dll文件
将 Windows 10/11 版本升级到虚拟桌面企业版(多会话)
注意。本文中描述的对操作系统的任何修改均被视为违反 Windows 许可协议,使用时需自行承担风险。
在继续之前,请确保 Windows 中启用了远程桌面协议。
了解如何在 Windows 上启用和配置远程桌面。
RDP 包装器:在 Windows 上启用多个 RDP 会话
RDP 包装库开源项目允许您在 Windows 10/11 上启用多个 RDP 会话,而无需替换 termsrv.dll 文件。该工具充当 SCM(服务控制管理器)和远程桌面服务之间的一层。 RDP 包装器不会对 termsrv.dll 文件进行任何更改,它只是使用修改后的设置加载 termsrv。
因此,即使在 termsrv.dll 文件更新的情况下,RDPWrap 也能正常工作。它让您不再害怕 Windows 更新。
重要。在安装 RDP 包装器之前,请务必确保您使用的是 termsrv.dll 文件的原始(未修补)版本。否则,RDP Wrapper 可能会变得不稳定或根本无法启动。
您可以从 GitHub 存储库 https://github.com/binarymaster/rdpwrap/releases 下载 RDP Wrapper(RDP Wrapper 库的最新可用版本是 v1.6.2)。该项目自 2017 年以来一直没有更新,但它可以在 Windows 10 和 11 的所有新版本中使用。要在现代版本的 Windows 上使用包装器,只需更新 rdpwrap.ini 配置文件即可。
RDP Wrapper 被大多数防病毒扫描程序检测为潜在危险程序。例如,内置 Microsoft Defender 防病毒软件将其归类为威胁级别较低的 PUA:Win32/RDPWrap(潜在有害软件)。如果您的防病毒设置阻止 RDP Wrapper 启动,您需要将其添加到例外中。
RDPWrap-v1.6.2.zip 存档包含一些文件:
RDPWinst.exe — 用于安装/卸载 RDP 包装器库;
RDPConf.exe — RDP Wrapper 配置工具;
RDPCheck.exe — RDP 检查工具(本地 RDP 检查器);
install.bat、uninstall.bat、update.bat — 用于安装、卸载和更新 RDP Wrapper 的批处理文件。
要安装 RDPWrap,请以管理员身份运行 install.bat 文件。该程序安装在C:\Program Files\RDP Wrapper目录中。
安装完成后运行RDPConfig.exe。
最有可能的是,安装后,该工具将立即显示 RDP 包装器正在运行(已安装、正在运行、正在侦听),但无法正常工作。请注意红色的[不支持]警告。据报告,RDPWrapper 不支持此版本的 Windows 10 22H2(版本 10.0.19041.1949)。
这是因为 rdpwrap.ini 配置文件不包含适用于您的 Windows 版本(内部版本)的设置。 +
✅ 在此处下载最新版本的 rdpwrap.ini https://raw.githubusercontent.com/sebaxakerhtc/rdpwrap.ini/master/rdpwrap.ini
手动将此页面的内容复制到
C:\Program Files\RDP Wrapper\rdpwrap.ini文件。或者使用 PowerShell cmdlet Invoke-WebRequest 下载 INI 文件(必须首先停止远程桌面服务):
Stop-Service termservice -Force
Invoke-WebRequest https://raw.githubusercontent.com/sebaxakerhtc/rdpwrap.ini/master/rdpwrap.ini -outfile "C:\Program Files\RDP Wrapper\rdpwrap.ini"您可以创建计划任务来检查 rdpwrap.ini 的更改并自动更新。
此屏幕截图显示最新版本的 rdpwrap.ini 文件 (
Updated=2023-06-26) 在计算机上使用。
重新启动计算机并运行 RDPConfig.exe 工具。检查诊断部分中的所有项目是否均为绿色,并且是否显示[完全支持]消息。在我的例子中,RDP 包装器在 Windows 11 22H2 上成功启动。
现在尝试在不同的用户帐户下与此计算机建立多个并发 RDP 会话(使用您最喜欢的 RDP 客户端:mstsc.exe、RDCMan、mRemoteNG 等)。
您可以使用保存的 RDP 凭据连接到远程计算机。
您可以使用以下命令检查计算机上是否同时有两个(或更多)RDP 会话处于活动状态:
qwinstardp-tcp#0 user1 1 Active
rdp-tcp#1 user2 2 Active所有 Windows 版本均支持 RDPWrap 工具,因此您可以在任何 Windows 设备上构建自己的终端 (RDS) 服务器。因此您可以将任何版本的Windows客户端变成功能齐全的终端服务器。
RDP 包装器中提供以下选项:
启用远程桌面
RDP 端口 — 更改默认远程桌面端口号 (TCP 3389)
在登录屏幕上隐藏用户 - 允许在 Windows 登录屏幕上隐藏用户列表;
每个用户单个会话 - 允许同一用户帐户下多个并发 RDP 会话。此选项将 fSingleSessionPerUser 注册表值设置为 0 (
HKLM\SYSTEM\ CurrentControlSet\Control\Terminal Server\fSingleSessionPerUser)。还可以通过“计算机配置”>“管理模板”>“Windows 组件”>“远程桌面服务”>“远程桌面会话主机”>“连接”下的 GPO 选项将远程桌面服务限制为单个远程桌面服务会话来配置;
会话影子模式允许您配置到 RDP 用户桌面的远程控制(影子)连接模式
您可以使用组策略设置 RDP 用户会话的持续时间限制。这允许空闲用户会话自动断开连接。
RDP 包装器无法在 Windows 上运行
在某些情况下,RDP 包装器可能无法按您的预期工作,并且您可能无法在 Windows 上使用多个 RDP 连接。
termrv.dll 文件版本可以在 Windows 更新安装过程中更新。如果 rdpwrap.ini 文件中缺少您的 Windows 版本的描述,则 RDP 包装器将无法应用必要的设置。在这种情况下,状态为[不支持]。将显示在 RDP 包装器配置窗口中。
✅ 在这种情况下,您必须如上所述更新 rdpwrap.ini 文件。
如果更新 rdpwrap.ini 文件后 RDP Wrapper 不起作用,请尝试打开 rdpwrap.ini 文件并查找适合您的 Windows 版本的部分。
如何了解 rdpwrapper 配置是否支持您的 Windows 版本?
下面的屏幕截图显示,对于我的 Windows 11 版本 (10.0.22621.317),有两部分设置:
[10.0.22621.317]
...
[10.0.22621.317-SLInit]
...如果 rdpwrap 配置文件中没有适合您的 Windows 版本的部分,请尝试在 Web 上搜索 rdpwrap.ini 文件。将您找到的配置设置添加到文件末尾。
如果安装安全更新或升级 Windows 版本后 RDP Wrapper 无法工作,请检查 RDPWrap 诊断部分中是否存在侦听器状态:未侦听 警告。
尝试更新 rdpwrap.ini 文件,然后重新安装 rdpwrapper 服务:
rdpwinst.exe -u
rdpwinst.exe -i当您尝试以其他用户身份建立第二个 RDP 连接时,可能会收到一条错误消息:
The number of connections to this computer is limited and all connections are in use right now. Try connecting later or contact your system administrator.在这种情况下,您可以使用本地组策略编辑器 (gpedit.msc) 在计算机配置 -> 管理模板 -> Windows 组件 -> 远程桌面服务 -> 远程桌面会话主机 -> 连接部分下启用“限制连接数”选项。将“允许的 RD 最大连接”值增加到 999999。
重新启动计算机以更新本地组策略并应用设置。
修补Termsrv.dll以启用多个远程桌面会话
要在不使用 rdpwrapper 的情况下取消 Windows 中并发 RDP 用户连接数的限制,您可以替换原始 termsrv.dll 文件。这是远程桌面服务使用的主要库文件。该文件位于C:\Windows\System32目录中。
建议在编辑或替换 termsrv.dll 文件之前对其进行备份。如有必要,这将帮助您恢复到文件的原始版本。打开提升的命令提示符并运行命令:
copy c:\Windows\System32\termsrv.dll termsrv.dll_backup然后您需要获得 termsrv.dll 文件的所有权。要将文件的所有者从 TrustedInstaller 更改为本地管理员组,请使用以下命令:
takeown /F c:\Windows\System32\termsrv.dll /ASUCCESS: The file (or folder): c:\Windows\System32\termsrv.dll now owned by the administrators group现在使用 icacls.exe 工具向本地管理员组授予对 termsrv.dll 文件的完全控制权限:
icacls c:\Windows\System32\termsrv.dll /grant Administrators:Fprocessed file: c:\Windows\System32\termsrv.dll Successfully processed 1 files; Failed processing 0 files.现在您需要使用以下命令停止远程桌面服务 (TermService)
services.msc控制台或使用命令:
net stop TermService它还会停止远程桌面服务用户模式端口重定向服务。
跑过
winver命令或以下 PowerShell 命令来查找您的 Windows 内部版本号:
Get-ComputerInfo | select WindowsProductName, WindowsVersion就我而言,安装了 Windows 10 build 22H2。
然后使用任意十六进制编辑器(例如 Tiny Hexer)打开 termsrv.dll 文件。根据您使用的 Windows 版本,您需要根据下表查找并替换字符串:
| Windows build | Find the string | Replace with |
| Windows 11 22H2 | 39 81 3C 06 00 00 0F 84 75 7A 01 00 |
B8 00 01 00 00 89 81 38 06 00 00 90
|
| Windows 10 22H2 | 39 81 3C 06 00 00 0F 84 85 45 01 00 | |
| Windows 11 21H2 (RTM) | 39 81 3C 06 00 00 0F 84 4F 68 01 00 | |
| Windows 10 x64 21H2 | 39 81 3C 06 00 00 0F 84 DB 61 01 00 | |
| Windows 10 x64 21H1 | 39 81 3C 06 00 00 0F 84 2B 5F 01 00 | |
| Windows 10 x64 20H2 | 39 81 3C 06 00 00 0F 84 21 68 01 00 | |
| Windows 10 x64 2004 | 39 81 3C 06 00 00 0F 84 D9 51 01 00 | |
| Windows 10 x64 1909 | 39 81 3C 06 00 00 0F 84 5D 61 01 00 | |
| Windows 10 x64 1903 | 39 81 3C 06 00 00 0F 84 5D 61 01 00 | |
| Windows 10 x64 1809 | 39 81 3C 06 00 00 0F 84 3B 2B 01 00
| |
| Windows 10 x64 1803 | 8B 99 3C 06 00 00 8B B9 38 06 00 00
| |
| Windows 10 x64 1709 | 39 81 3C 06 00 00 0F 84 B1 7D 02 00
|
Tiny Hexer 无法直接从 system32 文件夹编辑 termsvr.dll 文件。将其复制到桌面,修改后替换原文件。
例如,我的 Windows 10 x64 版本是 22H2 19045.2006(termsrv.dll 文件版本是 10.0.19041.1949)。在Tiny Hexer中打开termsrv.dll文件,然后找到文本:
39 81 3C 06 00 00 0F 84 75 7A 01 00并将其替换为:
B8 00 01 00 00 89 81 38 06 00 00 90保存文件并启动 TermService。
如果出现问题并且您在远程桌面服务中遇到一些问题,请停止该服务并将修改后的 termsrv.dll 文件替换为原始版本:
copy termsrv.dll_backup c:\Windows\System32\termsrv.dll为了避免使用十六进制编辑器手动编辑 termsrv.dll 文件,您可以使用以下 PowerShell 脚本自动修补 termsrv.dll 文件。 PowerShell 脚本代码可在我的 GitHub 存储库中通过以下链接获取:
https://github.com/maxbakhub/winposh/blob/main/termsrv_rdp_patch.ps1
此脚本是为 Windows PowerShell 版本编写的,不适用于现代 PowerShell Core。
? 通过替换 termsrv.dll 文件在 Windows 10 或 11 中启用多个 RDP 会话的方法的优点是防病毒软件不会对其做出反应(与 RDPWrap 不同,RDPWrap 被许多防病毒产品检测为恶意软件/黑客工具/木马)。
?这样做的缺点是,每次更新 Windows 版本时(或者每月累积补丁更新 termsrv.dll 的版本),您都必须手动编辑该文件。
Windows 10 企业多会话中的多个并发 RDP 连接
Microsoft 最近发布了名为 Windows Enterprise Multi-Session 的操作系统特别版本(以前称为Windows 10 Enterprise for Remote Sessions 和Windows 10 Enterprise for Virtual Desktops)
该版本的主要特点是它支持多个并发 RDP 用户会话。尽管 Windows 多会话版本仅允许在 Azure VM 中运行,但您可以在本地网络上安装此版本并将该计算机用作终端服务器(即使这违反 Microsoft 的许可政策)。
企业多会话版本适用于 Windows 10 和 Windows 11。
接下来,我们将向您展示如何将Windows 10 专业版升级到Windows 10 虚拟桌面企业版,并同时将其用于多个 RDP 用户。
打开命令提示符并检查您当前的 Windows 版本(
Professional在此示例中):
DISM /online /Get-CurrentEdition使用以下命令将 Windows 10 版本从专业版升级到企业版:
changepk.exe /ProductKey NPPR9-FWDCX-D2C8J-H872K-2YT43现在安装 Windows 10 Enterprise 的 GVLK 密钥以进行远程会话:
slmgr.vbs /ipk CPWHC-NT2C7-VYW78-DHDB2-PG3GK检查您的 Windows 10 版本现已更改为 ServerRdsh(适用于虚拟桌面的 Windows 10 企业版)。
在 KMS 服务器上激活 Windows 10 企业多会话版本的副本:
slmgr /skms kms-srv.a-d.local:1688
slmgr /ato请参阅密钥管理服务 (KMS) 激活常见问题解答。
打开本地 GPO 编辑器 (
gpedit.msc)并在设置远程桌面许可模式(计算机配置 -> 策略 -> 管理模板 -> Windows 组件 -> 远程桌面服务 -> 远程桌面会话主机 -> 许可)中启用每用户许可模式。
激活后必须重新启动 Windows。现在尝试使用 RDP 使用不同的用户帐户连接到计算机。如您所见,Windows 10 企业版多会话开箱即用地支持同时 RDP 连接。
Get-ComputerInfo | select WindowsProductName, WindowsVersion, OsHardwareAbstractionLayerWindows 10 Enterprise for Virtual Desktops 2009 10.0.19041.2728qwinsta在本文中,我们研究了多种摆脱并发 RDP 用户连接数量限制并在 Windows 10/11 桌面版上运行免费终端服务器的方法。每种方法都有其自身的优点和缺点。您选择哪一个取决于您。






















