windows11家庭版使用远程桌面
依赖:
ini配置文件:github仓库页面
RDPwrapper:Github仓库页面、ghproxy代理下载v1.6.2、
(截止2022-8-1)打包下载RDPWrapper和ini配置文件
本文作为对网上其他教程(例如:系统之家的文章、sitebus的文章)的补充存在(本文于2.开始介绍常见问题和处理方法),本文也参考了Github仓库的issues。
0.下载、安装
从本文最上面的依赖下载RDPwrap v1.6.2文件(压缩包),并解压,文件构成大致如下:
install.bat
安装RDPWrapRDPCheck.exe
在本地测试远程连接情况RDPConf.exe
设置远程桌面(也用于检查运行情况)uninstall.bat
卸载RDPWrapupdate.bat
在Github上检查更新
请先通过设置Windows防火墙开放3389端口(TCP、入站规则),然后双击
install.bat
安装。
1. 防火墙规则设置页面在哪里?
在防火墙操作部分,可以直接打开开始菜单,输入“防火墙”,打开设置中的防火墙页面,点击“高级设置”
在接下来的页面中新增入站规则,大体上操作流程如下:
- 左侧点击 入站规则;
- 右侧点击 新建规则;
- 创建“端口”类型的规则,下一步;
- 填写 特定本地端口为 3389,下一步;
- (允许连接)下一步;
- 取消勾选“公用”,下一步;
- 起个名字,完成。
为了安全,请不要在公用网络下开放端口,也不要将公用网络设置为专用网络,专用网络的设置仅用于自己的局域网内。
停止使用远程桌面后,请删除此入站规则。
2. 打开RDPconf.exe,其中的信息并不都是绿色,或者出现ver.N/A
理论上,正常情况如下:(其中ver版本号不必一致)
如果和上图不一致,并且无法连接,此问题有多种情况:
2.1~2.3参考原文:GithubIssue#1883,如果有描述不清楚的地方,还请参考原文。
图片仅用于情况示例,具体的ver只要不是N/A,是多少都无所谓。
2.1. Wrapper ver. N/A
使用的
C:\Program Files\RDP Wrapper\rdpwrap.dll
文件可能已经被破坏,请将
C:\Program Files\RDP Wrapper\
加入杀毒软件白名单,然后重新安装;
如果仍然不行,前往github页面下载对应的文件并替换。如果选择替换文件,文件替换后需要重启电脑。
2.2. Wrapper 3rd-party 且 service unkown
大概率是因为安装时注册表的更改被杀毒软件禁止。
前往github页面下载reg注册表文件,双击写入注册表。写入注册表后,重新安装RDPWrapper。
2.3 Wrapper 3rd-party 且 service stopped
命令行执行
reg add HKLM\SYSTEM\CurrentControlSet\Services\TermService\Parameters /v ServiceDll /t REG_EXPAND_SZ /d "%SystemRoot%\system32\termsrv.dll"/f
如果仍未生效,请重新安装RDPWrapper。
2.4 Listener state 为 Not listening [Not supported]
请记录下Service state 后面的版本号(ver.),然后参考2.5更改ini配置文件。
2.5. Service state ver.N/A, Listener state为 not listening [support level]
Listener state为
not listening
not listening一般是一个独立的问题,需要检查防火墙是否允许对应端口的通过、以及服务是否正常运行。
如果服务未启动,需要运行命令行启动服务:
net start termService
如果防火墙配置正确,也需要确认当前连接的网络没有被设置为公用网络。
此外,也需要检查杀毒软件是否允许其访问网络(请将
C:\Program Files\RDP Wrapper\
列入白名单);如果使用杀毒软件防火墙,需要在杀毒软件中允许其通过端口3389。完成设置之后,运行
uninstall.bat
卸载,然后再次使用
install.bat
重新安装。
Service state
ver.N/A
的临时处理方案
卸载后,双击
install.bat
安装,安装过程中注意控制台的提示信息,其中应该存在一个Terminal Services不被支持的错误提示信息,那里列举出了其版本号,记录下版本号,然后下载并替换原来的ini文件(下一小节说明)。
(下图示例中,版本号为: 10.0.22000.708)
获取和更改ini配置文件
前往ini配置文件Github仓库(或,githubjs.cf代理站),复制
rdpwrap.ini
的全部内容。(打开rdpwrap.ini,点击文件内容右上角的Raw,ctrl+a全选)
如果该文件中能搜索到Service state ver.后的版本号,则理论上可以使用RDPWrapper;否则,您的电脑暂时不支持RDPWrapper。(版本号为N/A,以安装时控制台的版本号为准)
到桌面[计算机]->右键->[管理]->[服务和应用程序]->[服务],停止Remote desktop service服务。
然后,打开
C:\Program Files\RDP Wrapper\rdpwrap.ini
,删除所有原有内容,将复制的配置内容粘贴到文件中,更改配置文件之后,需要手动启动服务。
手动启动服务后,再次运行
RDPconf.exe
,理论上此时应该问题已经解决。
但如果出现Service
Stopped
,请将现有的更改后的
rdpwrap.ini
放置于
install.bat
所在目录,运行
uninstall.bat
卸载后,断开网络,重新使用
install.bat
安装。
在联网下,将会自动从Github下载“最新的”ini配置文件(大概是2017年的),该配置文件没有我们想要的内容,请不要使用联网更新的配置文件。
理论上,显示下述情况也是可以运行的([support level]),请运行
RDPCheck.exe
查看能否正常连接。
3. Fully supported 但无法连接
尝试重启服务(管理员命令行执行):
net stop termService
net start termService
或者使用修改版本:@sebaxakerhtc https://github.com/sebaxakerhtc/rdpwrap/releases。
4. 连接后不显示登录页面
此情况也表现为:
无法验证此远程连接身份。是否仍然要连接?如果远程计算机运行的是早于Windows Vista版本的Windows…
登录验证方式选择后两个。
5. 连接密码不正确
windows绑定了微软账户时,可能需要使用微软账户的密码登录
6. 断开连接
上方的x可以断开,也可以在被控电脑的关机处断开:
7.杂项/其他问题
- Windows设置中仍然不支持打开远程桌面服务。 A:使用RDPWrapper之后,远程桌面服务由其接管,请使用RDPconf.exe设置远程桌面;连接远程桌面时,使用Windows自带的远程桌面连接即可。
- 防火墙高级设置不可以点击。 A:这种情况大多开启了杀毒软件防火墙,请在杀毒软件防火墙中放行端口;并在控制面板->系统和安全->Windows Defender防火墙->高级设置 中创建规则。
- 不支持多账户同时登录远程桌面。 RDPconf.exe中取消勾选Single session per user选项。
- 文件都改了,但仍然Not Listening。 如果ver 为N/A,请检查配置文件(.ini)是否正确保存,如果是,请参考2.5重新安装。 另外,请再次检查杀毒软件的设置,检查杀毒软件日志,检查安装过程和网络访问是否有拦截情况。
- Remote Desktop Services服务无法启动、或启动后很快停止。 如果ini配置文件已经修改,请参考2.5,将配置文件复制到
install.bat
所在目录,运行uninstall.bat
卸载后断开网络,重新安装。 - 版本号为xx.xxxx.xxx,Not support。 请参考2.4.如果Github仓库页面也没有该配置,则你当前使用的系统尚不支持。
- 但凡是涉及杀毒软件、防火墙、注册表的修改,请重新启动电脑,然后重新安装。
- 以上仍未能解决……那我就无能为力了。
设置项详解
- Single session per user:一个用户只允许一个登录会话(如果你的电脑只有一个用户,则你只能打开一个远程桌面窗口)
- Session shadowing mode:用于在被控端显示控制者的操作(在KLARA的电脑上,这些设置项无效,远程操作期间被控电脑无法看到控制者的操作)。该设置项从上至下依次是:- 1.禁用,管理员可在用户同意的情况下与用户的远程桌面服务会话进行交互。- 2.在用户许可下获得完全控制:允许管理员在用户同意的情况与会话进行交互。- 3.无需用户许可获得完全控制:允许管理员无需征得用户同意就可以与会话进行交互。- 4.在用户许可下查看会话:允许管理员在用户同意的情况下查看远程用户的会话。- 5.无需用户许可查看会话:允许管理员无需征得用户同意就可以查看远程用户的会话。
附录~
如果github ini仓库无法访问,可尝试使用gitee等国内git网站,克隆此项目:https://github.com/sebaxakerhtc/rdpwrap.ini
10.0.22000.708-autogenerated_x64.ini
[Main]
Updated=2022-05-25
LogFile=\rdpwrap.txt
SLPolicyHookNT60=1
SLPolicyHookNT61=1
[SLPolicy]
TerminalServices-RemoteConnectionManager-AllowRemoteConnections=1
TerminalServices-RemoteConnectionManager-AllowMultipleSessions=1
TerminalServices-RemoteConnectionManager-AllowAppServerMode=1
TerminalServices-RemoteConnectionManager-AllowMultimon=1
TerminalServices-RemoteConnectionManager-MaxUserSessions=0
TerminalServices-RemoteConnectionManager-ce0ad219-4670-4988-98fb-89b14c2f072b-MaxSessions=0
TerminalServices-RemoteConnectionManager-45344fe7-00e6-4ac6-9f01-d01fd4ffadfb-MaxSessions=2
TerminalServices-RDP-7-Advanced-Compression-Allowed=1
TerminalServices-RemoteConnectionManager-45344fe7-00e6-4ac6-9f01-d01fd4ffadfb-LocalOnly=0
TerminalServices-RemoteConnectionManager-8dc86f1d-9969-4379-91c1-06fe1dc60575-MaxSessions=1000
TerminalServices-DeviceRedirection-Licenses-TSEasyPrintAllowed=1
TerminalServices-DeviceRedirection-Licenses-PnpRedirectionAllowed=1
TerminalServices-DeviceRedirection-Licenses-TSMFPluginAllowed=1
TerminalServices-RemoteConnectionManager-UiEffects-DWMRemotingAllowed=1
[PatchCodes]
nop=90
Zero=00
jmpshort=EB
nopjmp=90E9
CDefPolicy_Query_edx_ecx=BA000100008991200300005E90
CDefPolicy_Query_eax_rcx_jmp=B80001000089813806000090EB
CDefPolicy_Query_eax_esi=B80001000089862003000090
CDefPolicy_Query_eax_rdi=B80001000089873806000090
CDefPolicy_Query_eax_ecx=B80001000089812003000090
CDefPolicy_Query_eax_ecx_jmp=B800010000898120030000EB0E
CDefPolicy_Query_eax_rcx=B80001000089813806000090
CDefPolicy_Query_edi_rcx=BF0001000089B938060000909090
[10.0.22000.708]
LocalOnlyPatch.x64=1
LocalOnlyOffset.x64=98CB1
LocalOnlyCode.x64=jmpshort
SingleUserPatch.x64=1
SingleUserOffset.x64=18F22
SingleUserCode.x64=Zero
DefPolicyPatch.x64=1
DefPolicyOffset.x64=1BA15
DefPolicyCode.x64=CDefPolicy_Query_eax_rcx
SLInitHook.x64=1
SLInitOffset.x64=26C10
SLInitFunc.x64=New_CSLQuery_Initialize
[SLInit]
bServerSku=1
bRemoteConnAllowed=1
bFUSEnabled=1
bAppServerAllowed=1
bMultimonAllowed=1
lMaxUserSessions=0
ulMaxDebugSessions=0
bInitialized=1
[10.0.22000.708-SLInit]
bInitialized.x64 =11FECC
bServerSku.x64 =11FED0
lMaxUserSessions.x64 =11FED4
bAppServerAllowed.x64 =11FEDC
bRemoteConnAllowed.x64=11FEE4
bMultimonAllowed.x64 =11FEE8
ulMaxDebugSessions.x64=11FEF0
bFUSEnabled.x64 =11FEF4
如果有用,麻烦点个赞或关注支持一下,谢谢 。
版权归原作者 克拉拉KLARA 所有, 如有侵权,请联系我们删除。