rdpwrap.ini 部署指南:Windows 多用户远程桌面五步跑通
【免费下载链接】rdpwrap.iniRDPWrap.ini for RDP Wrapper Library by Stas'M项目地址: https://gitcode.com/GitHub_Trending/rd/rdpwrap.ini
Windows 多用户远程桌面并不是服务器版的特权。这个仓库是 RDP Wrapper Library 的配套配置库:按系统 build 号归档的 rdpwrap.ini,每种 build 一份。部署匹配的那一份,专业版、家庭版也能同时接入多个远程会话。
五分钟上手:从 clone 到 RDPConf 全绿
这一节直接完成目标:五分钟内让 RDPConf 全绿。前提是已装好 RDP Wrapper Library,本仓库只提供配置,不提供程序本身。以下命令都在管理员 cmd 里执行。
第 1 步:拿到配置仓库
git clone https://gitcode.com/GitHub_Trending/rd/rdpwrap.iniclone 到一个固定目录,之后每次换配置都从这里取。
第 2 步:确认本机的 build 号
winver例如 Build 26100.7523,对应的 build 号就是 10.0.26100.7523。想看完整系统信息可以改用systeminfo | findstr /B /C:"OS Name" /C:"OS Version"。build 号决定从仓库里取哪份文件,先记下来。
第 3 步:找到对应 ini
在 autogenerated/ 目录里,文件名就是「build 号 + 架构」:
- 64 位系统找
10.0.26100.7523-autogenerated_x64.ini - 32 位系统找对应的
_x86文件
如果目录里没有完全一致的版本号,先别硬套临近版本,按下一节的思路确认仓库是否已更新。
第 4 步:备份旧配置
copy "C:\Program Files\RDP Wrapper\rdpwrap.ini" "C:\Program Files\RDP Wrapper\rdpwrap.ini.bak"备份的是 RDP Wrapper 安装目录下的现网配置,安装位置不同就改路径。旧文件留着,出问题才能退回去。
第 5 步:替换配置并重启服务
copy "autogenerated\10.0.26100.7523-autogenerated_x64.ini" "C:\Program Files\RDP Wrapper\rdpwrap.ini" net stop TermService net start TermService第一条把匹配 ini 拷到现网配置上(在 clone 出来的仓库目录里执行),后两条重启远程桌面服务,让新配置生效。
第 6 步:验证
运行 RDP Wrapper 自带的 RDPConf.exe:Listener 应为 Listening,补丁项全部 Patches applied。到这一步,两台客户端可以同时 mstsc 进同一台机器,第二个会话不会把第一个挤掉。如果第二个连接还是顶掉第一个,直接跳到文末的踩坑表。
三分钟看懂 rdpwrap.ini:一份配置干四类事
排障前把结构弄清楚。一份 rdpwrap.ini 里的工作分成四类段,排障时真正会用到的是后两类。
[Main]:配置自身的指路牌
[Main] Updated=2025-12-23 LogFile=\rdpwrap.txtUpdated 是配置的更新日期,一眼判断新旧;LogFile 告诉你日志写在哪,RDPConf 报错时先翻 \rdpwrap.txt。SLPolicyHookNT60/NT61 是给老系统的开关,不懂含义就别动。
[SLPolicy]:多用户开关
核心就两条:
TerminalServices-RemoteConnectionManager-AllowMultipleSessions=1 TerminalServices-RemoteConnectionManager-MaxUserSessions=0前者打开多会话开关,后者 0 表示不限会话数。其余条目都是围绕多用户的配套项:多显示器、设备重定向、高级压缩等,不用逐条记。多用户不生效时,优先检查这一段是否完整。
[PatchCodes]:字节码字典
nop=90、CDefPolicy_Query_eax_rcx_jmp=B80001000089813806000090EB这类条目是命名的内存补丁字节序列。RDP Wrapper 运行时把它们写进 termsrv.dll 的指定偏移,把「只许一个会话」的检查改掉。不需要逐条看懂,只需要记住:这段永远不要手工改。
[10.0.26100.7523]:版本号段
每个 build 号一段,内容是「往哪里打、打字典里哪条」:
[10.0.26100.7523] LocalOnlyPatch.x64=1 LocalOnlyOffset.x64=91E81 LocalOnlyCode.x64=jmpshort SingleUserOffset.x64=9F99B SingleUserCode.x64=mov_eax_1_nop_2 DefPolicyOffset.x64=9BEFF DefPolicyCode.x64=CDefPolicy_Query_eax_rcx_jmpxxxOffset是 termsrv.dll 内的偏移,xxxCode对应 [PatchCodes] 里的名字。新版 build 还会有 [SLInit] 段和对应的 [版本号-SLInit] 块。排障时 RDPConf 变红,基本就是这一段跟当前 build 对不上。
系统更新后如何换配置
更新完系统多用户突然失效,按这一节修。Windows 更新会改变 build 号并替换 termsrv.dll,旧偏移随之作废,处理路径四步:
winver确认新的 build 号;- 在仓库目录里
git pull拉最新配置,pull 的输出能看到仓库新增了哪些 build,对照一下; - 用新文件整体替换安装目录里的 rdpwrap.ini;
- 重启 TermService,RDPConf 验证。
第 3 步最容易翻车。不要只把新的 build 段手动追加到旧文件里:较新的 termsrv.dll 需要新的 patchcode,[PatchCodes] 缺了条目,版本号段看着对也会失败。仓库维护者的建议也是整份替换,而不是逐段拼。
两条路线:手动就是上面这套,单机足够;管多台机器可以写个小批处理——脚本跑 winver 拿 build 号、到 autogenerated/ 找对应文件、拷贝、重启服务、打开 RDPConf 核对。逻辑不长,关键始终是「整份替换 + 重启 + 验证」。
进阶可选:性能参数非必要不动
这一节不在主流程上。仓库默认配置已经能让多用户正常工作,动这些参数只是按个人偏好微调。
TerminalServices-RDP-7-Advanced-Compression-Allowed=1:高级压缩,拿 CPU 换带宽。默认就是 1,不用动。TerminalServices-RemoteConnectionManager-MaxUserSessions=0:不限并发。机器配置一般、只想留 2 个并发,可改成 2。- 分辨率和颜色深度不在 rdpwrap.ini 里管,在 mstsc 客户端连接时选。
原则:看不懂的条目不删、不注释,新 build 的某些条目是必需依赖;改之前确认有备份(第 4 步已经做了)。
踩坑自检表
出问题时先对照这张表,对不上号就回到部署主线整份重做一遍。
| 现象 | 可能原因 | 动作 |
|---|---|---|
| RDPConf 显示红色 | build 号不匹配 | winver 确认号码,换 autogenerated/ 里对应 ini |
| Listener 是 Not listening | 服务未运行或端口被占 | 重启 TermService,netstat -an \| findstr :3389查端口 |
| 全绿但只能一人连接 | 手工追加过配置,[SLPolicy]/[PatchCodes] 不完整 | 用仓库最新文件整份替换,重启服务 |
| 更新后一度有效又失效 | termsrv.dll 变了,旧偏移作废 | 按「换配置」一节重走四步 |
| 连接中途被断开 | LocalOnly 检查未移除 | 看版本号段里LocalOnlyPatch.x64=1是否存在且代码匹配 |
拿不准时按这个顺序走:查 build 号 → 换文件 → 重启服务 → 看 RDPConf,多数问题在这个循环里解决。
写在最后
rdpwrap.ini 决定多用户能不能生效,核心规则只有一条:让它始终和系统 build 号同步。入口是两个:autogenerated/ 配置目录(每个 build 一份)和 Readme.md(更新历史与维护说明)。
【免费下载链接】rdpwrap.iniRDPWrap.ini for RDP Wrapper Library by Stas'M项目地址: https://gitcode.com/GitHub_Trending/rd/rdpwrap.ini
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考