我有一台装有 Win 10 build 18362 的机器和一台装有 Win 7 Ultimate SP1 的机器。我可以通过远程桌面从 Win 7 顺利连接到 Win 10 机器,但当我尝试从 Win 10 转到 Win 7 时,它会提示标准登录凭据,并且在第一次使用新用户帐户尝试时,我看到远程计算机身份验证提示要求验证连接是否可信。当我接受后,我看到一个非常短暂的“请稍候……”(或类似内容)的闪烁,这是登录时所期望的,但随后连接断开了。
在使用 Wireshark 检查流量时,我发现建立了 TLS 1.2 连接,但随后发送了 TCP 重置。根据网上的各种修复方法,我还尝试过:
- 将端口从 3389 更改为其他端口
- 确保 Win 7 计算机上的帐户是管理员
- 已验证在 Win 7 计算机上设置了密码
- 将 Win 10 计算机上的网络配置文件设置为私有
- 在 Win 10 计算机上使用不同的用户名设置一个新的 Windows 帐户,并尝试使用该帐户登录 Win 7 计算机
- 确保 Win 7 计算机上已启用 TLS 1.1 和 1.2
- 已验证 Win 7 计算机上已启用远程连接
- 在远程桌面登录窗口的“本地资源”选项卡上的“本地设备和资源”组中(单击更多...),取消选中“智能卡或 Windows Hello for Business”
- 在远程桌面登录窗口的“高级”选项卡上,将“如果服务器身份验证失败:”更改为“连接但不警告我”
- 已验证 Windows 防火墙传入连接中存在远程桌面 TCP-in 和远程桌面条目
- 将 TCP-in 防火墙规则范围设置为仅公共(删除私人和域)
- 在注册表和组策略编辑器中启用了 UDP 传输协议(在注册表中将 HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services 处的 SelectTransport 键从“1”更改为“2”,在 GPO 中的计算机配置->管理模板->Windows 组件->远程桌面服务->远程桌面会话主机->连接中,启用选项“选择 RDP 传输协议”并设置为“使用 UDP 或 TCP”。
我已经尝试了 Microsoft 提供的选项这里(步骤 3 和 4),在 PowerShell 中发出以下命令来查看哪些应用程序正在监听端口 3389:
cmd /c 'netstat -ano | find "3389"'
cmd /c 'tasklist /svc | find "<pid listening on 3389>"'
起初我以为我发现了什么问题,因为报告显示哪些应用程序正在使用该端口,它们是“CryptSvc、Dnscache、LanmanWorkstation”。我以为这些与 RDP 无关,但在将端口更改为 3390 并重复相同的命令后,相同的 3 个应用程序名称现在出现在 3390 上,这让我相信这些实际上与 RDP 有关,尽管根据该文章的第 6 步,只有 TermServe.exe 应该使用该端口,所以我对这个结果有点不确定。不过那篇文章写于 2019 年,我使用的是 Win 7,所以 Win 7 可能只列出了这 3 个,而不仅仅是 TermServe.exe。
检查事件查看器后,我在 TerminalServices-ClientActiveXCore -> Microsoft-Windows-TerminalServices-RDPClient/Operational 分支下看到一个警告条目,内容为:
RDPClient_SSL:响应 TsSslEventInvalidState(错误代码 0x8000FFFF)从 TsSslStateDisconnected 转换到 TsSslStateDisconnected 时遇到错误。
此外,在 TerminalServices-LocalSessionManager -> Operational 下,我看到一个信息事件,内容是:
会话 1 已断开连接,原因代码 5
当我查看 RDS 会话主机服务器断开连接代码列表时这里,原因代码 5 是“另一个用户连接到服务器,强制断开当前连接。”......这很奇怪,因为我是唯一的用户。
看来我可以通过本地网络正常连接 Win 7 计算机。身份验证后连接就断开了。有人能从这些症状中看出我可以尝试修复的提示吗?
谢谢你!