参考文章:
1.Windows多用户远程桌面----采用RDP Wrapper Library支持所有的Windows版本
2.Win10家庭版实现远程桌面 RDPWraper -解决not supported ,not listening问题
3.Windows10 家庭版(1903/1909)中用RDPWrapper-v1.6.2和autoupdate补丁开启远程桌面功能
如果我没有猜错的话,RDPWrapper将核心功能模块实现放在了rdpwrap.dll中,也就是软件原理里面提到了那一层(管道),采用Hook技术,通过加载配置文件rdpwrap.ini,Hook了termsrv.dll,从而实现其提到的:RDPWrapper 不修改termsrv.dll,它用不同的参数加载termsrv.dll,以及我前面提到的,软件拆分,将核心模块和配置文件拆分独立,通过修改配置文件rdpwrap.ini,就可以让软件支持最新版本的Windows。这涉及到汇编,Hook技术,Dll技术,我就不展开讲了。
所以,目前最重要的就是配置文件,其他的东西对我们不重要,我们来看看这段:
[10.0.17763.1-SLInit] RDPWrapper能支持的termsrv.dll版本号
bInitialized.x86 =CD798 X86这是针对32位系统的配置
bServerSku.x86 =CD79C
lMaxUserSessions.x86 =CD7A0
bAppServerAllowed.x86 =CD7A8
bRemoteConnAllowed.x86=CD7AC
bMultimonAllowed.x86 =CD7B0
ulMaxDebugSessions.x86=CD7B4
bFUSEnabled.x86 =CD7B8
bInitialized.x64 =ECAB0 x64这是针对64位系统的配置
bServerSku.x64 =ECAB4
lMaxUserSessions.x64 =ECAB8
bAppServerAllowed.x64 =ECAC0
bRemoteConnAllowed.x64=ECAC4
bMultimonAllowed.x64 =ECAC8
ulMaxDebugSessions.x64=ECACC
bFUSEnabled.x64 =ECAD0
是不是明白了?RDPWrapper支持哪些Windows版本的termsrv.dll(就是下面图片中那个讨厌的不支持not supported),就是看配置文件里面有没有类似上面这段代码,所以,问题清楚了,RDPWrapper不支持最新的Windows10 1909版本怎么办?上RDPWrapper的GitHub去Issue里面找,找到别人提供的和上面类似的配置代码或者配置文件,将它复制添加到我们自己计算机上面对应的配置文件rdpwrap.ini或者直接替换掉我们自己计算机里面的配置文件rdpwrap.ini,再重新执行一次 install.bat
- 下载解压,地址https://github.com/stascorp/rdpwrap,好像已经不再更新,只在issues里更新ini文件
- 执行 install.bat,会在C:\Program Files\RDP Wrapper下面生成2个文件:rdpwrap.dll(核心模块),rdpwrap.ini(配置文件),没错,这就是我们要修改的配置文件
- 执行RDPWrapper软件中自带的RDPConf.exe软件直接检测,如果显示全绿,那么恭喜你,RDPWrapper支持你当前计算机的termsrv.dll版本,如果显示不支持not supported,那就说明当前配置文件不支持这个版本的termsrv.dll,本人这里显示不支持
4. 如若检测结果为not support,查看自己的电脑操作系统版本是什么,然后去GitHub上找,链接,相信会找到对应的配置,添加到位于C:\Program Files\RDP Wrapper\rdpwrap.ini下面rdpwrap.ini配置文件中1.公司电脑操作系统版本:18363.1316
- 在gitHub上找到的rdpwrap.ini如下,追加到rdpwrap.ini文件中,就可以支持系统了
解决不是[fully supported] ,显示[no supported]
notepad C:\Program Files\RDP Wrapper\rdpwrap.ini
这一步作用是以管理员身份编辑这个ini文件。(直接打开无法保存)
[10.0.18362.1316]
LocalOnlyPatch.x86 = 1
LocalOnlyOffset.x86 = B67C6
LocalOnlyCode.x86 = jmpshort
LocalOnlyPatch.x64 = 1
LocalOnlyOffset.x64 = 83075
LocalOnlyCode.x64 = jmpshort
SingleUserPatch.x86 = 1
SingleUserOffset.x86 = 35735
SingleUserCode.x86
SingleUserPatch.x64 = 1
SingleUserOffset.x64 = 0DC4C
SingleUserCode.x64 =零
DefPolicyPatch.x86 = 1
DefPolicyOffset.x86 = 4D679
DefPolicyCode.x86 = CDefPolicy_Query_eax_ecx
DefPolicyPatch.x64 = 1
DefPolicyOffset.x64 = 1FE65
DefPolicyCode.x64 = CDefPolicy_Query_eax_rcx
SLInitHook.x86 = 1
SLInitOffset.x86 = 5C18A
SLInitFunc.x86 = New_CSLQuery_Initialize
SLInitHook.x64 = 1
SLInitOffset.x64 = 22E9C
SLInitFunc.x64 = New_CSLQuery_Initialize
[10.0.18362.1316-SLInit]
bInitialized.x86 = D377C
bServerSku.x86 = D3780
lMaxUserSessions.x86 = D3784
bAppServerAllowed.x86 = D378C
bRemoteConnAllowed.x86 = D3790
bMultimonAllowed.x86 = D3794
ulMaxDebugSessions.x86 = D3798
bFUSEnabled.x86 = D379C
bInitialized.x64 = F6A8C
bServerSku.x64 = F6A90
lMaxUserSessions.x64 = F6A94
bAppServerAllowed.x64 = F6A9C
bRemoteConnAllowed.x64 = F6AA0
bMultimonAllowed.x64 = F6AA4
ulMaxDebugSessions.x64 = F6AA8
bFUSEnabled.x64 = F6AAC
家里电脑