RDPWrap.ini 快速上手指南:从零配好 Windows 多用户远程桌面【免费下载链接】rdpwrap.iniRDPWrap.ini for RDP Wrapper Library by Stas'M项目地址: https://gitcode.com/GitHub_Trending/rd/rdpwrap.iniRDPWrap.ini 是 RDP Wrapper Library 的配套配置仓库:它按 Windows 版本整理了对termsrv.dll的补丁偏移,让专业版、家庭版这类只有单用户限制的 Windows 也能多人同时远程登录。读完本文,你能完成配置获取、选对版本文件、重启验证,并在系统更新导致失效后快速恢复。它解决了什么问题Windows 专业版/家庭版的termsrv.dll在编译时就写死了"单用户"判断,组策略里改不出多会话。RDP Wrapper 的思路是在内存里改写这几处判断,而 RDPWrapper.ini 负责告诉它改哪里、怎么改:纯配置仓库,不含程序:程序本体是 RDP Wrapper(安装后提供RDPConf.exe、RDPWInst.exe等工具),本仓库只存偏移数据。按构建号精确匹配:autogenerated/下每个文件对应一个具体 build,例如10.0.26100.7523-autogenerated_x64.ini,文件名里的x64/x86表示目标架构。覆盖范围广:从 Win7(6.1.7601.*)、Win8(6.2.9200.*)到 Win10(10.0.19041.*)、Win11(10.0.22000.*/10.0.22621.*/10.0.26100.*/10.0.28000.*),以及 Server 2019(10.0.17763.*)、Server 2022(10.0.20348.*)。更新频率高:Readme.md里的 History 记录了维护者逐次提交新偏移的历史,几乎每次 Windows 更新后几天内就有对应条目。📌 理解这一点很关键:程序装错了查程序,配置不对查这里。动手前:环境与前置检查在目标 Windows 机器上先确认三件事。确认系统构建号(这是选配置文件唯一依据)::: 查看 OS Name / OS Version,重点是 build 号(如 26100.7523) systeminfo | findstr /B /C:"OS Name" /C:"OS Version" :: 或直接弹窗查看 winver确认架构:wmic os get osarchitecture,输出64-bit就选_x64文件。确认 RDP Wrapper 已安装且远程桌面服务存在:sc query TermService常见构建号对照,方便对号入座:构建号前缀系统19041Windows 10 20H2/21H2/22H222000Windows 11 21H222621Windows 11 22H226100Windows 11 24H228000Windows 11 25H217763Windows Server 201920348Windows Server 2022⚠️ 注意:systeminfo给出的 build 是带更新补丁的完整号(第四段也要),选配置时优先精确匹配,匹配不到再退一档选同主版本里最接近的。三步完成首次配置以"已装好 RDP Wrapper、装完不能多人连"为前提。获取配置。两种途径:直接下载仓库根目录的 rdpwrap.ini——这是维护者合并所有构建的完整文件(Updated字段标注维护日期,覆盖从 Win7 到 Win11 25H2);或 clone 整个仓库,按需取单个构建文件:git clone https://gitcode.com/GitHub_Trending/rd/rdpwrap.ini整文件替换,不要拼段。先备份再覆盖:copy "C:\Program Files\RDP Wrapper\rdpwrap.ini" "C:\Program Files\RDP Wrapper\rdpwrap.ini.bak" copy "rdpwrap.ini" "C:\Program Files\RDP Wrapper\rdpwrap.ini"Readme.md里的 Important Notice 明确警告:新版termsrv.dll需要新的[PatchCodes],只往旧文件追加一个[10.0.xxxx]段而不更新[PatchCodes],会出现"偏移段对得上但补丁失败"的情况。整文件替换是最稳的做法。重启服务并验证:net stop TermService net start TermService然后运行安装目录下的RDPConf.exe:预期输出:Patch、Listener、Single user、DefPolicy 等项全部显示OK(绿色对勾);实测:本机登录一个账号,另一台机器用另一个账号连同一台主机,两个会话应并存,而不是顶掉对方。核心配置逐项解读拿仓库里真实的10.0.26100.7523-autogenerated_x64.ini做例子,一个构建的完整配置由这几块组成:[Main] Updated=2025-12-23 LogFile=\rdpwrap.txt SLPolicyHookNT60=1 SLPolicyHookNT61=1 [SLPolicy] TerminalServices-RemoteConnectionManager-AllowMultipleSessions=1 TerminalServices-RemoteConnectionManager-MaxUserSessions=0 ... [10.0.26100.7523] SingleUserPatch.x64=1 SingleUserOffset.x64=9F99B SingleUserCode.x64=mov_eax_1_nop_2 DefPolicyPatch.x64=1 DefPolicyOffset.x64=9BEFF DefPolicyCode.x64=CDefPolicy_Query_eax_rcx_jmp逐项说"是什么 / 为什么 / 填错会怎样":AllowMultipleSessions=1([SLPolicy] 段):告诉策略层"允许多会话"。这是写入给termsrv.dll策略查询接口的值,不是组策略键。填 0 等于没改,依旧单用户。MaxUserSessions=0:0 表示不限会话数。填成 1 就退回单用户;这个值与[SLInit]段的lMaxUserSessions=0含义一致。SingleUserPatch / Offset / Code三件套:补丁本体。Patch=1表示启用,Offset是termsrv.dll内单用户判断处的十六进制偏移,Code引用[PatchCodes]里的一段机器码(如mov_eax_1_nop_2)写过去。三者必须同属一个构建——把 A 版本的偏移配 B 版本的代码,轻则补丁打不进去(RDPConf报 Fail),重则服务崩溃。DefPolicyPatch / Offset / Code:另一处"默认策略查询"函数的改写点,让策略层返回"服务器版"结果。漏配它,RDPConf里 DefPolicy 项会红。[PatchCodes]段:上面引用的机器码片段池(nop=90、Zero=00、jmpshort=EB等),新构建往往需要新片段,所以更新构建段时必须连它一起更新。[SLInit]+[10.0.26100.7523-SLInit](较新构建才需要):SLInitHook在termsrv初始化时直接写入一组运行时值(bServerSku=1、lMaxUserSessions=0…),-SLInit段记录这些值在内存结构里的偏移。这是新版termsrv.dll的第三道关,老配置没有这段,所以更新后单用户限制会"复活"。真实场景怎么用场景一:小团队共用一台主机按上文装好配置,主机上创建多个本地账号;每个成员用自己的账号登录自己的远程会话,互不顶号;效果:一台机器同时开 2~5 个会话,各自有独立桌面、独立文件权限。注意 Windows 工作站本身对并发会话数没有硬性承诺,实际以机器性能为准。场景二:开发测试机多会话测试环境用固定账号,开发机用另一账号,同一台机器上并行跑"部署"和"验证"两条线;配合AllowAppServerMode=1,还可以只远程单个应用而非整个桌面(RDP 客户端勾选"应用程序模式");效果:不用来回切换任务管理器杀会话,调试和验收互不干扰。场景三:多台机器批量部署写个脚本先取构建号:(Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion').CurrentBuildNumber;按构建号从autogenerated/取对应 ini(或统一用根目录rdpwrap.ini);推送文件 →net stop/start TermService→ 拉RDPConf.exe输出留档;效果:十几台机器一次巡检,哪台补丁失败从输出里一眼看出来了。出问题了查这里现象可能原因处理RDPConf显示 Patch: Fail / 红叉当前 build 没有对应偏移,或配置文件太旧查Readme.mdHistory 里有没有你的构建号;没有就取同主版本最近的构建试试Listener 状态 Not listeningTermService 未启动或端口被占sc query TermService看状态,不行就net start TermService能连但只能一个人在线配置是旧的,缺[PatchCodes]新片段或-SLInit段整文件替换为最新rdpwrap.ini,重启服务提示"只能本地连接"(LocalOnly 生效)LocalOnlyPatch未打上(新构建需要它)确认配置里有LocalOnlyPatch.x64=1及其偏移,重启服务连接秒断或登录失败会话数/许可相关策略值被改坏核对MaxUserSessions=0、lMaxUserSessions=0是否被手动改动更新 Windows 后全部失效更新换掉了termsrv.dll,偏移全变走下面的恢复流程系统更新后的恢复流程(最高频故障):更新重启后先跑systeminfo记新的完整 build 号;到仓库autogenerated/按新 build 找文件,看Readme.mdHistory 确认该构建已被支持;用仓库里的完整rdpwrap.ini整体替换本地文件(再次强调:不要只复制构建段);net stop TermService && net start TermService,RDPConf.exe复查四项全绿;用第二个账号实测并发登录,通过才算恢复。✅ 如果仓库里还没有你的新构建号,先拿同主版本(如都是26100.*)的最新构建文件顶着用,多数小更新兼容;等维护者提交新偏移后再换精确版本。可选进阶调优标准配置里这些开关默认都是开着的,按需调整(改动前记得留一份.bak):TerminalServices-RDP-7-Advanced-Compression-Allowed=1([SLPolicy] 段):启用 RDP 7 高级压缩。按需关闭:弱网环境保留它省带宽;服务器端 CPU 紧张、画面卡顿时可改成 0,用服务端 CPU 换流畅度。TerminalServices-RemoteConnectionManager-AllowMultimon=1:允许多显示器映射。单屏客户端把它关掉可略减握手开销,多屏用户勿动。TerminalServices-RemoteConnectionManager-UiEffects-DWMRemotingAllowed=1:保留 DWM 桌面特效的远程渲染。关掉(=0)后远程画面更"素"但更省流量,适合纯命令行/服务器场景。TerminalServices-DeviceRedirection-Licenses-TSEasyPrintAllowed=1:远程打印重定向。用不到打印的功能可以关闭,减少会话初始化时的设备枚举。TerminalServices-DeviceRedirection-Licenses-PnpRedirectionAllowed=1:USB 等 PnP 设备重定向。按需启用;开得多意味着会话占用更多主机资源。会话上限:8dc86f1d-...-MaxSessions=1000这类条目是协议层会话数上限,一般保持原值,没有实际并发压力时不用动。⚠️ 所有[SLPolicy]值最终写进termsrv的策略查询结果,改错不会导致系统崩溃,但可能把功能关掉。建议一次只改一项、重启服务、用RDPConf加实测验证。资料入口与收尾仓库内三处值得收藏:Readme.md:更新历史(哪个日期支持了哪些构建)、"整文件替换"的官方说明、社区 Discord 入口;rdpwrap.ini:全构建合并的完整配置,日常替换就用它;autogenerated/:按"构建号_架构"拆分的单版本文件,适合只取一个目标版本。三条收尾提醒:每次 Windows 更新之前把当前能用的rdpwrap.ini备份一份,更新后失效就恢复备份、别瞎改;备份文件名里记下当时 build 号(如rdpwrap.ini.26100.7523.bak),方便回溯是哪次更新弄坏的;配置是版本强绑定的,跨大版本(22621 → 26100)复用旧文件基本无效,换 build 就换整份配置。【免费下载链接】rdpwrap.iniRDPWrap.ini for RDP Wrapper Library by Stas'M项目地址: https://gitcode.com/GitHub_Trending/rd/rdpwrap.ini创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RDPWrap.ini 快速上手指南:从零配好 Windows 多用户远程桌面【免费下载链接】rdpwrap.iniRDPWrap.ini for RDP Wrapper Library by Stas'M项目地址: https://gitcode.com/GitHub_Trending/rd/rdpwrap.iniRDPWrap.ini 是 RDP Wrapper Library 的配套配置仓库:它按 Windows 版本整理了对termsrv.dll的补丁偏移,让专业版、家庭版这类只有单用户限制的 Windows 也能多人同时远程登录。读完本文,你能完成配置获取、选对版本文件、重启验证,并在系统更新导致失效后快速恢复。它解决了什么问题Windows 专业版/家庭版的termsrv.dll在编译时就写死了"单用户"判断,组策略里改不出多会话。RDP Wrapper 的思路是在内存里改写这几处判断,而 RDPWrapper.ini 负责告诉它改哪里、怎么改:纯配置仓库,不含程序:程序本体是 RDP Wrapper(安装后提供RDPConf.exe、RDPWInst.exe等工具),本仓库只存偏移数据。按构建号精确匹配:autogenerated/下每个文件对应一个具体 build,例如10.0.26100.7523-autogenerated_x64.ini,文件名里的x64/x86表示目标架构。覆盖范围广:从 Win7(6.1.7601.*)、Win8(6.2.9200.*)到 Win10(10.0.19041.*)、Win11(10.0.22000.*/10.0.22621.*/10.0.26100.*/10.0.28000.*),以及 Server 2019(10.0.17763.*)、Server 2022(10.0.20348.*)。更新频率高:Readme.md里的 History 记录了维护者逐次提交新偏移的历史,几乎每次 Windows 更新后几天内就有对应条目。📌 理解这一点很关键:程序装错了查程序,配置不对查这里。动手前:环境与前置检查在目标 Windows 机器上先确认三件事。确认系统构建号(这是选配置文件唯一依据)::: 查看 OS Name / OS Version,重点是 build 号(如 26100.7523) systeminfo | findstr /B /C:"OS Name" /C:"OS Version" :: 或直接弹窗查看 winver确认架构:wmic os get osarchitecture,输出64-bit就选_x64文件。确认 RDP Wrapper 已安装且远程桌面服务存在:sc query TermService常见构建号对照,方便对号入座:构建号前缀系统19041Windows 10 20H2/21H2/22H222000Windows 11 21H222621Windows 11 22H226100Windows 11 24H228000Windows 11 25H217763Windows Server 201920348Windows Server 2022⚠️ 注意:systeminfo给出的 build 是带更新补丁的完整号(第四段也要),选配置时优先精确匹配,匹配不到再退一档选同主版本里最接近的。三步完成首次配置以"已装好 RDP Wrapper、装完不能多人连"为前提。获取配置。两种途径:直接下载仓库根目录的 rdpwrap.ini——这是维护者合并所有构建的完整文件(Updated字段标注维护日期,覆盖从 Win7 到 Win11 25H2);或 clone 整个仓库,按需取单个构建文件:git clone https://gitcode.com/GitHub_Trending/rd/rdpwrap.ini整文件替换,不要拼段。先备份再覆盖:copy "C:\Program Files\RDP Wrapper\rdpwrap.ini" "C:\Program Files\RDP Wrapper\rdpwrap.ini.bak" copy "rdpwrap.ini" "C:\Program Files\RDP Wrapper\rdpwrap.ini"Readme.md里的 Important Notice 明确警告:新版termsrv.dll需要新的[PatchCodes],只往旧文件追加一个[10.0.xxxx]段而不更新[PatchCodes],会出现"偏移段对得上但补丁失败"的情况。整文件替换是最稳的做法。重启服务并验证:net stop TermService net start TermService然后运行安装目录下的RDPConf.exe:预期输出:Patch、Listener、Single user、DefPolicy 等项全部显示OK(绿色对勾);实测:本机登录一个账号,另一台机器用另一个账号连同一台主机,两个会话应并存,而不是顶掉对方。核心配置逐项解读拿仓库里真实的10.0.26100.7523-autogenerated_x64.ini做例子,一个构建的完整配置由这几块组成:[Main] Updated=2025-12-23 LogFile=\rdpwrap.txt SLPolicyHookNT60=1 SLPolicyHookNT61=1 [SLPolicy] TerminalServices-RemoteConnectionManager-AllowMultipleSessions=1 TerminalServices-RemoteConnectionManager-MaxUserSessions=0 ... [10.0.26100.7523] SingleUserPatch.x64=1 SingleUserOffset.x64=9F99B SingleUserCode.x64=mov_eax_1_nop_2 DefPolicyPatch.x64=1 DefPolicyOffset.x64=9BEFF DefPolicyCode.x64=CDefPolicy_Query_eax_rcx_jmp逐项说"是什么 / 为什么 / 填错会怎样":AllowMultipleSessions=1([SLPolicy] 段):告诉策略层"允许多会话"。这是写入给termsrv.dll策略查询接口的值,不是组策略键。填 0 等于没改,依旧单用户。MaxUserSessions=0:0 表示不限会话数。填成 1 就退回单用户;这个值与[SLInit]段的lMaxUserSessions=0含义一致。SingleUserPatch / Offset / Code三件套:补丁本体。Patch=1表示启用,Offset是termsrv.dll内单用户判断处的十六进制偏移,Code引用[PatchCodes]里的一段机器码(如mov_eax_1_nop_2)写过去。三者必须同属一个构建——把 A 版本的偏移配 B 版本的代码,轻则补丁打不进去(RDPConf报 Fail),重则服务崩溃。DefPolicyPatch / Offset / Code:另一处"默认策略查询"函数的改写点,让策略层返回"服务器版"结果。漏配它,RDPConf里 DefPolicy 项会红。[PatchCodes]段:上面引用的机器码片段池(nop=90、Zero=00、jmpshort=EB等),新构建往往需要新片段,所以更新构建段时必须连它一起更新。[SLInit]+[10.0.26100.7523-SLInit](较新构建才需要):SLInitHook在termsrv初始化时直接写入一组运行时值(bServerSku=1、lMaxUserSessions=0…),-SLInit段记录这些值在内存结构里的偏移。这是新版termsrv.dll的第三道关,老配置没有这段,所以更新后单用户限制会"复活"。真实场景怎么用场景一:小团队共用一台主机按上文装好配置,主机上创建多个本地账号;每个成员用自己的账号登录自己的远程会话,互不顶号;效果:一台机器同时开 2~5 个会话,各自有独立桌面、独立文件权限。注意 Windows 工作站本身对并发会话数没有硬性承诺,实际以机器性能为准。场景二:开发测试机多会话测试环境用固定账号,开发机用另一账号,同一台机器上并行跑"部署"和"验证"两条线;配合AllowAppServerMode=1,还可以只远程单个应用而非整个桌面(RDP 客户端勾选"应用程序模式");效果:不用来回切换任务管理器杀会话,调试和验收互不干扰。场景三:多台机器批量部署写个脚本先取构建号:(Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion').CurrentBuildNumber;按构建号从autogenerated/取对应 ini(或统一用根目录rdpwrap.ini);推送文件 →net stop/start TermService→ 拉RDPConf.exe输出留档;效果:十几台机器一次巡检,哪台补丁失败从输出里一眼看出来了。出问题了查这里现象可能原因处理RDPConf显示 Patch: Fail / 红叉当前 build 没有对应偏移,或配置文件太旧查Readme.mdHistory 里有没有你的构建号;没有就取同主版本最近的构建试试Listener 状态 Not listeningTermService 未启动或端口被占sc query TermService看状态,不行就net start TermService能连但只能一个人在线配置是旧的,缺[PatchCodes]新片段或-SLInit段整文件替换为最新rdpwrap.ini,重启服务提示"只能本地连接"(LocalOnly 生效)LocalOnlyPatch未打上(新构建需要它)确认配置里有LocalOnlyPatch.x64=1及其偏移,重启服务连接秒断或登录失败会话数/许可相关策略值被改坏核对MaxUserSessions=0、lMaxUserSessions=0是否被手动改动更新 Windows 后全部失效更新换掉了termsrv.dll,偏移全变走下面的恢复流程系统更新后的恢复流程(最高频故障):更新重启后先跑systeminfo记新的完整 build 号;到仓库autogenerated/按新 build 找文件,看Readme.mdHistory 确认该构建已被支持;用仓库里的完整rdpwrap.ini整体替换本地文件(再次强调:不要只复制构建段);net stop TermService && net start TermService,RDPConf.exe复查四项全绿;用第二个账号实测并发登录,通过才算恢复。✅ 如果仓库里还没有你的新构建号,先拿同主版本(如都是26100.*)的最新构建文件顶着用,多数小更新兼容;等维护者提交新偏移后再换精确版本。可选进阶调优标准配置里这些开关默认都是开着的,按需调整(改动前记得留一份.bak):TerminalServices-RDP-7-Advanced-Compression-Allowed=1([SLPolicy] 段):启用 RDP 7 高级压缩。按需关闭:弱网环境保留它省带宽;服务器端 CPU 紧张、画面卡顿时可改成 0,用服务端 CPU 换流畅度。TerminalServices-RemoteConnectionManager-AllowMultimon=1:允许多显示器映射。单屏客户端把它关掉可略减握手开销,多屏用户勿动。TerminalServices-RemoteConnectionManager-UiEffects-DWMRemotingAllowed=1:保留 DWM 桌面特效的远程渲染。关掉(=0)后远程画面更"素"但更省流量,适合纯命令行/服务器场景。TerminalServices-DeviceRedirection-Licenses-TSEasyPrintAllowed=1:远程打印重定向。用不到打印的功能可以关闭,减少会话初始化时的设备枚举。TerminalServices-DeviceRedirection-Licenses-PnpRedirectionAllowed=1:USB 等 PnP 设备重定向。按需启用;开得多意味着会话占用更多主机资源。会话上限:8dc86f1d-...-MaxSessions=1000这类条目是协议层会话数上限,一般保持原值,没有实际并发压力时不用动。⚠️ 所有[SLPolicy]值最终写进termsrv的策略查询结果,改错不会导致系统崩溃,但可能把功能关掉。建议一次只改一项、重启服务、用RDPConf加实测验证。资料入口与收尾仓库内三处值得收藏:Readme.md:更新历史(哪个日期支持了哪些构建)、"整文件替换"的官方说明、社区 Discord 入口;rdpwrap.ini:全构建合并的完整配置,日常替换就用它;autogenerated/:按"构建号_架构"拆分的单版本文件,适合只取一个目标版本。三条收尾提醒:每次 Windows 更新之前把当前能用的rdpwrap.ini备份一份,更新后失效就恢复备份、别瞎改;备份文件名里记下当时 build 号(如rdpwrap.ini.26100.7523.bak),方便回溯是哪次更新弄坏的;配置是版本强绑定的,跨大版本(22621 → 26100)复用旧文件基本无效,换 build 就换整份配置。【免费下载链接】rdpwrap.iniRDPWrap.ini for RDP Wrapper Library by Stas'M项目地址: https://gitcode.com/GitHub_Trending/rd/rdpwrap.ini创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考