当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话

作者:精品下载站 日期:2024-12-15 00:52:15 浏览:47 分类:玩电脑

如何在 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 10 和 11 上允许多个 RDP 会话

Windows 上的并发 RDP 连接数

在 Windows 10 和 11 的所有桌面版本中使用远程桌面服务有许多限制:

  1. 只有 Windows Professional 和 Enterprise 版本可以接受远程桌面连接。家庭/单语言 Windows 版本不允许 RDP 访问;

  2. 只有一个同时 RDP 连接可用。尝试启动第二个 RDP 会话将提示用户结束活动会话;

  3. 如果用户正在计算机控制台(本地)工作,则当他们建立远程 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 10 和 11 上允许多个 RDP 会话

  • 或者使用经典的控制面板:运行命令

    SystemPropertiesRemote

    并选中选项允许远程连接到此计算机

了解如何在 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 启动,您需要将其添加到例外中。

[玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话

RDPWrap-v1.6.2.zip 存档包含一些文件:

  • RDPWinst.exe — 用于安装/卸载 RDP 包装器库;

  • RDPConf.exe — RDP Wrapper 配置工具;

  • RDPCheck.exe — RDP 检查工具(本地 RDP 检查器);

  • install.bat、uninstall.bat、update.bat — 用于安装、卸载和更新 RDP Wrapper 的批处理文件。

[玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话

要安装 RDPWrap,请以管理员身份运行 install.bat 文件。该程序安装在C:\Program Files\RDP Wrapper目录中。

[玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话

安装完成后运行RDPConfig.exe

[玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话

最有可能的是,安装后,该工具将立即显示 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"

[玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话

您可以创建计划任务来检查 rdpwrap.ini 的更改并自动更新。

此屏幕截图显示最新版本的 rdpwrap.ini 文件 (

Updated=2023-06-26

) 在计算机上使用。

重新启动计算机并运行 RDPConfig.exe 工具。检查诊断部分中的所有项目是否均为绿色,并且是否显示[完全支持]消息。在我的例子中,RDP 包装器在 Windows 11 22H2 上成功启动。

[玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话

现在尝试在不同的用户帐户下与此计算机建立多个并发 RDP 会话(使用您最喜欢的 RDP 客户端:mstsc.exe、RDCMan、mRemoteNG 等)。

您可以使用保存的 RDP 凭据连接到远程计算机。

您可以使用以下命令检查计算机上是否同时有两个(或更多)RDP 会话处于活动状态:

qwinsta
rdp-tcp#0         user1                 1  Active
rdp-tcp#1         user2                 2  Active

[玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话

[玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话

所有 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]
...

[玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话

如果 rdpwrap 配置文件中没有适合您的 Windows 版本的部分,请尝试在 Web 上搜索 rdpwrap.ini 文件。将您找到的配置设置添加到文件末尾。

如果安装安全更新或升级 Windows 版本后 RDP Wrapper 无法工作,请检查 RDPWrap 诊断部分中是否存在侦听器状态:未侦听 警告。

[玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话

尝试更新 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.

[玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话

在这种情况下,您可以使用本地组策略编辑器 (gpedit.msc) 在计算机配置 -> 管理模板 -> Windows 组件 -> 远程桌面服务 -> 远程桌面会话主机 -> 连接部分下启用“限制连接数”选项。将“允许的 RD 最大连接”值增加到 999999。

[玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话

重新启动计算机以更新本地组策略并应用设置。

修补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 /A
SUCCESS: 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:F
processed file: c:\Windows\System32\termsrv.dll Successfully processed 1 files; Failed processing 0 files.

[玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话

现在您需要使用以下命令停止远程桌面服务 (TermService)

services.msc

控制台或使用命令:

net stop TermService

它还会停止远程桌面服务用户模式端口重定向服务。

[玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话

跑过

winver

命令或以下 PowerShell 命令来查找您的 Windows 内部版本号:

Get-ComputerInfo | select WindowsProductName, WindowsVersion

就我而言,安装了 Windows 10 build 22H2。

然后使用任意十六进制编辑器(例如 Tiny Hexer)打开 termsrv.dll 文件。根据您使用的 Windows 版本,您需要根据下表查找并替换字符串:

Windows buildFind the stringReplace withWindows 11 22H239 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 22H239 81 3C 06 00 00 0F 84 85 45 01 00Windows 11 21H2 (RTM)39 81 3C 06 00 00 0F 84 4F 68 01 00Windows 10 x64 21H239 81 3C 06 00 00 0F 84 DB 61 01 00Windows 10 x64 21H139 81 3C 06 00 00 0F 84 2B 5F 01 00Windows 10 x64 20H239 81 3C 06 00 00 0F 84 21 68 01 00Windows 10 x64 200439 81 3C 06 00 00 0F 84 D9 51 01 00Windows 10 x64 190939 81 3C 06 00 00 0F 84 5D 61 01 00Windows 10 x64 190339 81 3C 06 00 00 0F 84 5D 61 01 00Windows 10 x64 180939 81 3C 06 00 00 0F 84 3B 2B 01 00

Windows 10 x64 18038B 99 3C 06 00 00 8B B9 38 06 00 00

Windows 10 x64 170939 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

[玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话

保存文件并启动 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 SessionsWindows 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 和 11 上允许多个 RDP 会话

使用以下命令将 Windows 10 版本从专业版升级到企业版:

changepk.exe /ProductKey NPPR9-FWDCX-D2C8J-H872K-2YT43

现在安装 Windows 10 Enterprise 的 GVLK 密钥以进行远程会话:

slmgr.vbs /ipk CPWHC-NT2C7-VYW78-DHDB2-PG3GK

[玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话

检查您的 Windows 10 版本现已更改为 ServerRdsh(适用于虚拟桌面的 Windows 10 企业版)。

[玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话

在 KMS 服务器上激活 Windows 10 企业多会话版本的副本:

slmgr /skms kms-srv.a-d.local:1688
slmgr /ato

[玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话

请参阅密钥管理服务 (KMS) 激活常见问题解答。

打开本地 GPO 编辑器 (

gpedit.msc

)并在设置远程桌面许可模式(计算机配置 -> 策略 -> 管理模板 -> Windows 组件 -> 远程桌面服务 -> 远程桌面会话主机 -> 许可)中启用每用户许可模式。

[玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话

激活后必须重新启动 Windows。现在尝试使用 RDP 使用不同的用户帐户连接到计算机。如您所见,Windows 10 企业版多会话开箱即用地支持同时 RDP 连接。

Get-ComputerInfo | select WindowsProductName, WindowsVersion, OsHardwareAbstractionLayer
Windows 10 Enterprise for Virtual Desktops 2009           10.0.19041.2728
qwinsta

[玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话

在本文中,我们研究了多种摆脱并发 RDP 用户连接数量限制并在 Windows 10/11 桌面版上运行免费终端服务器的方法。每种方法都有其自身的优点和缺点。您选择哪一个取决于您。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯