RDP wrapper 让 win10 家庭版能够通过远程桌面登录

1,446 阅读4分钟

背景

由于Teamviewer账号使用不了了, 向日葵的使用体验一般, 刚好手头有一台闲置的云服务器, 就自己搭建了一个SoftEther VPN服务,计划通过vpn将两台机器连通,然后使用windows自带的远程桌面来替代teamViewer,再申请一个公网ip,搭配上远程唤醒来实现平时电脑休眠待机,需要时远程唤醒它,通过远程桌面登录。这个方案想想还是挺美的, 结果一切都准备好以后发现,关键的地方掉链子了: 目标电脑是win10家庭版的,远程桌面功能被阉割了。不过还好,经过搜索发现github有一个开源的项目:RDP wrapper 刚好就是解决这个问题的。

准备阶段

没啥好准备的, 直接下载RDP wrapper的最新版本 (虽然项目看起来已经好几年没更新了, 但是其实它的配置一直都在更新,只需要获取最新的配置即可): 下载 最新版本的zip包即可

image.png

安装

  1. 下载好之后,解压到任意目录,解压文件如下图所示:

image.png 2. 然后用管理员权限执行install.bat 执行成功后, 在 %ProgramFiles%\RDP Wrapper (一般是:C:\Program Files\RDP Wrapper)下面会出现 rdpwrap.dll 和 rdpwrap.ini两个文件

image.png 3. 然后双击RDPConf.exe 这个是一些高级配置以及环境是否满足的检测, 检查项全绿说明你的环境没问题了。 我的示例图里面有一项是红的,是因为我的配置文件(rdpwrap.ini)未更新到最新(下面会告诉你怎么获取到最新的rdpwrap.ini)

image.png 4. 当RDPConf.exe检查项全绿的时候, 双击RDPCheck.exe检查远程桌面功能是否可以使用了,当出现远程登录界面的时候就说明可以了。

维护

由于windows一直在更新,就会出现某次更新后远程桌面功能又不可以使用了的情况, 所以还需要一直维护,其实就是更新rdpwrap.ini文件。 当某次更新后,你发现RDPCheck.exe检测不通过的时候,应该就是需要更新rdpwrap.ini了 下面提供两种更新方式:

  • 手动更新
  1. 在这个地址:github.com/sebaxakerht… 获取最新的rdpwrap.ini文件,然后替换你本地 %ProgramFiles%\RDP Wrapper (一般是:C:\Program Files\RDP Wrapper)下面的 rdpwrap.ini 文件
  2. 重启电脑 或者 重启termservice ((net stop termservices and net start termservices))。重启termservice的方式我还没试过,但是重启电脑一定可以
  • 自动更新

    自动更新的原理就是加一个开机启动任务, 任务会自动去加载最新的rdpwrap.ini配置。 由于我电脑的网络没配置好,自动更新的时候访问不了github,加上手动更新也不是特别麻烦,所以这个方案我暂时还没用,只是在这里介绍一下 使用步骤在这里:github.com/asmtron/rdp… , 其中第一步 下载RDPWrap的步骤上面已经做过了, 可以跳过,直接从第二步做起。

问题解决

杀毒软件删除了rdpwrap.dll导致RDPConf.exe检测不通过问题

这个问题我有天晚上找了好久的解决方案都没有搞定,结果第二天半个小时就搞定了, 可见睡眠有助于解决问题 这个解决方案是在issue区找到的, 我把地址贴在这里 github.com/stascorp/rd… , 如果谁遇到这个问题了, 请自行去查看一下是不是和里面的问题一样,然后再使用本解决方案 解决方案:

(1. 去注册表找到这个值:

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TermService\Parameters
ServiceDll
%ProgramFiles%\RDP Wrapper\rdpwrap.dll

当前 ServiceDll的值是 %ProgramFiles%\RDP Wrapper\rdpwrap.dll, 而由于rdpwrap.dll被删掉了, 所以检测无法通过,也无法重装

(2. 修改注册表ServiceDll的值为 C:\Windows\System32\termsrv.dll。 注意: 由于不经常操作注册表,修改的时候可能由于点错而删掉ServiceDll这一项。如果不小心删掉了,就需要重建,重建时类型请选择 REG_EXPAND_SZ

(3. 使用管理员权限重新执行安装包里面的install.bat脚本。 如果安装包不在了, 可以重新下载

(4. 执行后就会发现 rdpwrap.dll被重新创建了,注册表的值也改回去了

(5. 问题解决

其他问题

请在rdpwrap 的issue区查找或者提问 github.com/stascorp/rd…