Windows 11 专业版多人远程桌面登录:rdpwrap.ini 配置全流程
【免费下载链接】rdpwrap.iniRDPWrap.ini for RDP Wrapper Library by Stas'M项目地址: https://gitcode.com/GitHub_Trending/rd/rdpwrap.ini
周五晚上从家里远程连公司那台 Windows 11 专业版,同事一连进来,你的会话就被挤掉——Windows 工作站版的远程桌面原生只允许一人在线。开源项目 rdpwrap.ini 解决的正是这个 Windows 远程桌面多用户问题:把一份配置文件放进 RDP Wrapper 安装目录,两个人就能同时保持会话不掉线。下面按确认版本、应用配置、验证成功、更新后修复的顺序走一遍。
先弄懂:rdpwrap.ini 改了 termsrv.dll 哪两处
这份文件不碰 RDP 协议本身,它改的是远程桌面服务 termsrv.dll 判断"版本与授权状态"的方式。工作站版的 termsrv.dll 里写死了两段逻辑:一段是单用户检查(只允许一个交互式会话),一段是策略查询函数 CDefPolicy_Query(检测到非 Server 版就返回"不允许多会话")。rdpwrap.ini 告诉 RDP Wrapper 要在这两处偏移量打补丁:一处让单用户检查失效,一处让策略查询恒定返回"允许",SLInit 钩子再把内存中策略结构的 lMaxUserSessions 字段写成 0(0 表示不限制会话数)。补丁生效后,远程桌面服务表现得和 Server 版一样,第二个用户登录时第一个会话原地不动。
文件长这样,节选自仓库autogenerated/下的10.0.26100.7523-autogenerated_x64.ini:
[10.0.26100.7523] LocalOnlyPatch.x64=1 LocalOnlyOffset.x64=91E81 SingleUserPatch.x64=1 SingleUserOffset.x64=9F99B SingleUserCode.x64=mov_eax_1_nop_2 DefPolicyOffset.x64=9BEFF ; 其余配置项保持默认如何确认系统版本有没有对应的配置文件
先查精确 build 号,打开命令提示符执行:
winver弹窗里找到"操作系统内部版本",例如 26100.7523,这个号码是后面找文件的钥匙。
然后用它在仓库autogenerated/目录里对号入座,配置文件按 Windows 版本号命名,带 x64/x86 后缀区分架构,常见对应关系:
- Windows 10 21H2:
10.0.19041.*-autogenerated_x64.ini - Windows 11 22H2:
10.0.22621.*-autogenerated_x64.ini - Windows 11 24H2:
10.0.26100.*-autogenerated_x64.ini - Windows Server 2022:
10.0.20348.*-autogenerated_x64.ini
找不到精确补丁号也别慌:仓库根目录的rdpwrap.ini是合并了全部版本的完整文件,头部Updated=一行标着更新日期。维护者的 Readme 明确建议整文件替换,而不是手动往旧文件里追加段落——新版 termsrv.dll 需要新的 [PatchCodes] 条目,缺了会直接打不上补丁。
四步应用配置并重启远程桌面服务
前提是已装好 RDP Wrapper Library(另一个项目,本仓库只有配置文件),下面的命令都要在管理员权限的命令提示符里执行。
1️⃣ 克隆最新配置:
git clone https://gitcode.com/GitHub_Trending/rd/rdpwrap.ini预期结果:当前目录出现名为 rdpwrap.ini 的目录,里面有 rdpwrap.ini 文件和 autogenerated/ 子目录。
2️⃣ 备份现有配置,再整文件替换(第一条就是你的回滚点):
copy "C:\Program Files\RDP Wrapper\rdpwrap.ini" "C:\Program Files\RDP Wrapper\rdpwrap.ini.bak" copy "rdpwrap.ini\rdpwrap.ini" "C:\Program Files\RDP Wrapper\rdpwrap.ini"预期结果:两条 COPY 提示各复制 1 个文件。
3️⃣ 重启远程桌面服务,RDP Wrapper 会在服务启动时读取新配置并打补丁:
net stop TermService net start TermService预期结果:依次出现"服务已成功停止"和"服务已成功启动"。
如何验证多用户连接成功
运行安装目录下的RDPConf.exe,看三项指标:Listener 显示 Listening,Patch 各项(SingleUser、DefPolicy、SLInit)全绿。
真正的标准是双会话实测:保持你的连接不断开,换一台机器用另一个账号登录。两边会话同时出现在query session列表里且互不挤掉,才算通过。注意一个 Windows 原生行为:有远程会话在线时,本地物理屏幕(控制台)不能直接登录把它挤掉,这与本配置无关。
Windows 更新后三步修复
Windows 更新会替换 termsrv.dll,旧偏移量随之失效。更新后按这个顺序来:
git -C "rdpwrap.ini" pull copy "rdpwrap.ini\rdpwrap.ini" "C:\Program Files\RDP Wrapper\rdpwrap.ini" net stop TermService && net start TermService RDPCheck.exe如果 pull 没有拉到新提交、RDPConf 还是红色,说明新 build 还没进仓库,维护者一般会在每次 Windows 更新后几天内补上配置,期间可以先把 .bak 备份覆盖回去(copy rdpwrap.ini.bak rdpwrap.ini再重启服务)维持旧状态,等新版本。
处理高频问题:RDPConf 红项、第二人掉线等
| 症状 | 可能原因 | 处理办法 |
|---|---|---|
| RDPConf 红色 not patched | 系统更新后 build 号变化 | 重走上面"更新后三步修复" |
| 第二人登录会把第一人挤掉 | 旧配置缺新版 patchcodes | 用仓库最新 rdpwrap.ini 整文件替换 |
| Listener 显示 Not listening | TermService 未启动或 3389 被拦 | 执行net start TermService,检查防火墙 |
| 仓库里没有系统的 x86 文件 | 该版本无 32 位配置 | 以仓库最新提交为准,确认有无 x86 后缀文件 |
最后提醒一句边界:这套方案适合自测、个人机器和评估环境,工作站版多用户上生产环境的取舍由你决定。配置会跟着 Windows 更新节奏走,大更新前养成备份当前 rdpwrap.ini 的习惯,出问题时回滚只要一条命令。
【免费下载链接】rdpwrap.iniRDPWrap.ini for RDP Wrapper Library by Stas'M项目地址: https://gitcode.com/GitHub_Trending/rd/rdpwrap.ini
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考