试用我们的虚拟代理 - 它可以帮助你快速识别和修复常见的 RD 会话连接问题
当远程桌面客户端无法连接到远程桌面,但未提供有助于确定原因的消息或其他症状时,请使用这些步骤。
检查 RDP 协议的状态
检查本地计算机上的 RDP 协议状态
若要在本地计算机上检查和更改 RDP 协议的状态,请参阅如何启用远程桌面。
备注
如果远程桌面选项不可用,请参阅检查组策略对象是否正在阻止 RDP。
检查远程计算机上的 RDP 协议状态
重要
此部分(或称方法或任务)介绍了修改注册表的步骤。 但是,注册表修改不当可能会出现严重问题。 因此,请务必严格按照这些步骤操作。 出于防范目的,请在修改之前备份注册表,以便在出现问题时还原注册表。 有关如何备份和还原注册表的详细信息,请参阅如何备份和还原 Windows 中的注册表。
若要在远程计算机上检查和更改 RDP 协议的状态,请使用网络注册表连接:
首先,转到“ 开始 ”菜单,然后选择“ 运行”。 在显示的文本框中,输入 regedt32。
在“注册表编辑器,选择”文件“,然后选择”连接网络注册表”。
在 “选择计算机 ”对话框中,输入远程计算机的名称,选择“ 检查名称”,然后选择“ 确定”。
导航到
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server
和HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services
。如果 fDenyTSConnections 键的值为 0,则启用 RDP。
如果 fDenyTSConnections 键的值为 1,则禁用 RDP。
若要启用 RDP,请将 fDenyTSConnections 的值从 1 更改为 0。
检查组策略对象 (GPO) 是否阻止了本地计算机上的 RDP
如果无法在用户界面中打开 RDP,或者 fDenyTSConnections 的值在更改后恢复为 1 ,则 GPO 可能会重写计算机级设置。
若要在本地计算机上检查组策略配置,请以管理员身份打开命令提示符窗口,并输入以下命令:
控制台gpresult /H c:\gpresult.html
此命令完成后,打开 gpresult.html。 在“计算机配置\管理模板\Windows 组件\远程桌面服务\远程桌面会话主机\Connections”中,找到“允许用户使用远程桌面服务进行远程连接”策略。
如果此策略的设置为“已启用”,则组策略未阻止 RDP 连接。
如果此策略的设置为“禁用”,检查赢得 GPO。 这是阻止 RDP 连接的 GPO。
检查 GPO 是否阻止远程计算机上的 RDP
若要在远程计算机上检查组策略配置,命令几乎与本地计算机的命令相同:
控制台gpresult /S <computer name> /H c:\gpresult-<computer name>.html
此命令生成的文件 (gpresult-computer< 名称>.html) 使用的信息格式与) 使用的本地计算机版本 gpresult.html( 相同。
修改阻止 GPO
可以在 组策略 Object 编辑器 (GPE) 和 组策略 管理控制台中修改这些设置, (GPM) 。 有关如何使用组策略的详细信息,请参阅高级组策略管理。
若要修改阻止策略,请使用以下方法之一:
在 GPE 中,访问适当级别的 GPO ((例如本地或域) ),并导航到计算机配置>管理模板>Windows 组件>远程桌面服务>远程桌面会话主机>Connections>允许用户使用远程桌面服务进行远程连接。
将策略设置为 “已启用” 或“ 未配置”。
在受影响的计算机上,以管理员身份打开命令提示符窗口,然后运行 命令
gpupdate /force
。在 GPM 中,导航到组织单位 (OU) ,其中阻止策略应用于受影响的计算机,并从 OU 中删除策略。
检查 RDP 服务的状态
在本地 (客户端) 计算机和远程 (目标) 计算机上,应运行以下服务:
远程桌面服务 (TermService)
远程桌面服务 UserMode 端口重定向程序 (UmRdpService)
可以使用服务 MMC 管理单元在本地或远程管理服务。 如果远程计算机配置为接受远程 PowerShell cmdlet () ,则还可以使用 PowerShell 在本地或远程管理服务。
在任一计算机上,如果一个或两个服务未运行,请启动它们。
备注
如果启动远程桌面服务服务,请选择“ 是 ”以自动重启远程桌面服务 UserMode 端口重定向程序服务。
检查 RDP 侦听器是否正常运行
重要
此部分(或称方法或任务)介绍了修改注册表的步骤。 但是,注册表修改不当可能会出现严重问题。 因此,请务必严格按照这些步骤操作。 出于防范目的,请在修改之前备份注册表,以便在出现问题时还原注册表。 有关如何备份和还原注册表的详细信息,请参阅如何备份和还原 Windows 中的注册表。
检查 RDP 侦听器的状态
对于此过程,请使用具有管理权限的 PowerShell 实例。 对于本地计算机,还可以使用具有管理权限的命令提示符。 但是,此过程使用 PowerShell,因为相同的 cmdlet 在本地和远程工作。
若要连接到远程计算机,请运行以下 cmdlet:
PowerShell
Enter-PSSession -ComputerName <computer name>
输入
qwinsta
。如果列表包含
rdp-tcp
的状态Listen
为 ,则 RDP 侦听器正常工作。 继续 检查 RDP 侦听器端口。 否则,请继续执行步骤 4。从工作计算机导出 RDP 侦听器配置。
登录到操作系统版本与受影响计算机相同的计算机,并使用注册表编辑器) (访问该计算机的注册表。
导航到以下注册表项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
将条目导出到
.reg
文件。 例如,在“注册表编辑器”中,右键单击条目,选择“导出”,然后输入导出设置的文件名。将导出
.reg
的文件复制到受影响的计算机。若要导入 RDP 侦听器配置,请打开对受影响计算机具有管理权限的 PowerShell 窗口 (,或打开 PowerShell 窗口,) 远程连接到受影响的计算机。
若要备份现有注册表项,请输入以下 cmdlet:
PowerShell
cmd /c 'reg export "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-tcp" C:\Rdp-tcp-backup.reg'
若要删除现有注册表项,请输入以下 cmdlet:
PowerShell
Remove-Item -path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-tcp' -Recurse -Force
若要导入新的注册表项,然后重启服务,请输入以下 cmdlet:
PowerShell
cmd /c 'regedit /s c:\<filename>.reg' Restart-Service TermService -Force
将文件名>替换为<导出
.reg
的文件的名称。通过再次尝试远程桌面连接来测试配置。 如果仍无法连接,请重启受影响的计算机。
如果仍无法连接,检查 RDP 自签名证书的状态。
检查 RDP 自签名证书的状态
如果仍无法连接,请打开“证书 MMC”管理单元。 当系统提示选择要管理的证书存储时,选择“ 计算机帐户”,然后选择受影响的计算机。
在“远程桌面”下的“证书”文件夹中,删除 RDP 自签名证书。
在受影响的计算机上,重启远程桌面服务服务。
刷新“证书”管理单元。
如果尚未重新创建 RDP 自签名证书,检查 MachineKeys 文件夹的权限。
检查 MachineKeys 文件夹的权限
在受影响的计算机上,打开“资源管理器”,然后导航到 C:\ProgramData\Microsoft\Crypto\RSA\。
右键单击“ MachineKeys”,选择“ 属性>安全>高级”。
请确保配置了以下权限:
Builtin\Administrators: 完全控制
每个人: 读取、 写入
检查 RDP 侦听器端口
在本地 (客户端) 计算机和远程 (目标) 计算机上,RDP 侦听器应在端口 3389 上侦听。 其他任何应用程序都不应使用此端口。
重要
此部分(或称方法或任务)介绍了修改注册表的步骤。 但是,注册表修改不当可能会出现严重问题。 因此,请务必严格按照这些步骤操作。 出于防范目的,请在修改之前备份注册表,以便在出现问题时还原注册表。 有关如何备份和还原注册表的详细信息,请参阅如何备份和还原 Windows 中的注册表。
若要检查或更改 RDP 端口,请使用注册表编辑器:
转到“开始”菜单,选择“ 运行”,然后在出现的文本框中输入 regedt32 。
若要连接到远程计算机,请选择“ 文件”,然后选择“ 连接网络注册表”。
在 “选择计算机 ”对话框中,输入远程计算机的名称,选择“ 检查名称”,然后选择“ 确定”。
打开注册表并导航到
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\<listener>
。如果 PortNumber 的值为 3389 以外的值,请将其更改为 3389。
重要
可以使用其他端口操作远程桌面服务。 但是,我们不建议这样做。 本文不介绍如何对此类配置进行故障排除。
更改端口号后,重启远程桌面服务服务。
检查另一个应用程序是否未尝试使用相同的端口
对于此过程,请使用具有管理权限的 PowerShell 实例。 对于本地计算机,还可以使用具有管理权限的命令提示符。 但是,此过程使用 PowerShell,因为相同的 cmdlet 在本地和远程工作。
打开一个 PowerShell 窗口。 若要连接到远程计算机,请输入
Enter-PSSession -ComputerName <computer name>
。输入以下命令:
PowerShell
cmd /c 'netstat -ano | find "3389"'
查找 TCP 端口 3389(或分配的 RDP 端口)的条目,该端口的状态为正在侦听。
备注
使用该端口的进程或服务的进程标识符 (PID) 显示在 PID 列下。
若要确定哪个应用程序正在使用端口 3389 (或分配的 RDP 端口) ,请输入以下命令:
PowerShell
cmd /c 'tasklist /svc | find "<pid listening on 3389>"'
从输出) 查找与端口 (
netstat
关联的 PID 编号条目。 与该 PID 关联的服务或进程显示在右侧列中。如果远程桌面服务以外的应用程序或服务 (TermServ.exe) 正在使用端口,则可以使用以下方法之一解决冲突:
将其他应用程序或服务配置为使用不同的端口, (建议) 。
卸载其他应用程序或服务。
将 RDP 配置为使用其他端口,然后重启远程桌面服务服务, (不建议) 。
检查防火墙是否阻止了 RDP 端口
psping
使用 该工具测试是否可以使用端口 3389 访问受影响的计算机。
转到其他不受影响的计算机并下载 psping。
以管理员身份打开命令提示符窗口,切换到安装
psping
的目录,然后输入以下命令:psping -accepteula <computer IP>:3389
检查命令的
psping
输出以获取如下所示的结果:Connecting to \<computer IP\>
:可以访问远程计算机。(0% loss)
:所有连接尝试都成功。The remote computer refused the network connection
:无法访问远程计算机。(100% loss)
:所有尝试连接都失败。在多台计算机上运行
psping
以测试其连接到受影响计算机的能力。请注意,受影响的计算机是阻止来自所有其他计算机、某些其他计算机还是仅阻止来自其他一台计算机的连接。
建议的后续步骤:
Engage网络管理员验证网络是否允许将 RDP 流量发送到受影响的计算机。
调查源计算机和受影响计算机之间的任何防火墙配置, (包括受影响计算机上的 Windows 防火墙) ,以确定防火墙是否正在阻止 RDP 端口。
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://www.hqyman.cn/post/6680.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~