5.启用服务依赖
尝试启动主要的远程桌面服务时,需要启用两个关键的服务要求。在尝试启动主要服务之前,请确保远程桌面服务 (TermService)和远程桌面服务用户模式端口重定向器 (UmRdpService)均已启用。
您可以通过访问“服务”屏幕并确保这两项服务均已启用来检查这是否是问题的根源。
请按照以下说明执行此操作的具体步骤:
- 按Windows 键 + R打开“运行”对话框。
- 接下来,在文本框中键入“services.msc” ,然后按Ctrl + Shift + Enter打开具有管理员权限的“服务”屏幕。
- 在用户帐户控制 (UAC)窗口中,单击是以授予管理员访问权限。
- 进入“服务”屏幕后,搜索以下服务并确保两者都在运行:
Remote Desktop Services (TermService) Remote Desktop Services UserMode Port Redirector (UmRdpService)
- 如果任何服务未运行,请右键单击每个服务,然后单击“开始”。
- 启动这两项服务后,重复之前导致错误的操作,看看“Windows 无法在本地计算机上启动远程桌面服务” 错误消息现在是否可以避免。
如果您仍然无法启用远程连接到其他电脑,请向下移动到下面的下一个方法。
6.检查RDP监听器是否开启
如果系统的 RDP 侦听器确实被禁用,则主远程桌面连接也可能无法启用。如果上述情况适用,您可以通过执行一组命令来导入一个 cmdlet 来解决问题,该 cmdlet 将确保 RDP 侦听器始终处于启用状态。
注意:请密切注意本节中的说明。寄存器的错误修改会导致严重的问题。在开始编辑注册表之前备份注册表,以便在出现问题时可以恢复它。
我们将为此方法使用具有管理权限的 PowerShell 实例。您还可以使用具有本地计算机管理权限的命令提示符。但是,此过程中使用了 PowerShell,因为相同的 cmdlet 在本地和远程运行。
这是您需要做的:
- 按Windows 键 + R打开“运行”对话框。
- 接下来,在文本框中键入“powershell” ,然后按Ctrl + Shift + Enter打开提升的 Powershell。
- 当用户帐户控制提示您时,单击是以授予管理员访问权限。
- 进入 Powershell 窗口后,键入以下 cmdlet 以连接到远程计算机:
Enter-PSSession -ComputerName <computer name>
注意: 计算机名称是一个占位符。将此占位符替换为计算机的实际名称。
- 接下来,输入以下代码并按Enter键运行诊断:
quinsta
- 诊断完成后,查看结果。如果列表包含状态为 Listen 的rdp-tcp,则 RDP 侦听器可以运行。
- 如果 RDP 侦听器已打开,请忽略以下步骤并直接转到下面的其他方法。另一方面,如果rdp-tcp的状态显示为Disc (Disconnected),请继续执行其余步骤。
- 通过登录并打开具有管理员访问权限的注册表编辑器,访问与受影响计算机具有相同操作系统版本的计算机上的注册表(Windows 键 + R,键入“regedit”并按Enter)
- 进入注册表编辑器后,使用左侧的菜单导航至以下位置:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
- 要创建 .reg 文件,请导出条目。为此,请右键单击注册表编辑器中的条目,选择导出,然后为导出的设置键入文件名。
- 将 exported.reg 文件传输到受影响的机器。
- 现在,在有问题的计算机上,在同一 Powershell 提示符下使用以下命令导入您之前导出的注册表项:
cmd /c 'regedit /sc:\<filename>.reg' Restart-Service TermService -Force
- 重试远程桌面连接将验证设置。如果仍然无法连接,请重新启动受影响的计算机。
如果问题仍未解决,请转到下面的下一个方法。
7.修改RDP监听端口
您必须确保本地和远程计算机都使用相同的 RDP 侦听器端口才能使此连接正常工作。如果端口不匹配,请确保它们都使用端口 3389。
RDP 侦听器必须在本地(客户端)和远程(目标)计算机上的端口 3389 上打开。此端口不应被任何其他程序使用。
如果您不确定正在使用哪个端口,请按照以下说明检查当前使用情况并根据需要修改当前 RDP 侦听器端口:
- 按Windows 键 + R 打开“运行”对话框。接下来,在文本框中键入“regedit” ,然后按Ctrl + Shift + Enter打开注册表编辑器以进行管理员访问。
- 在用户帐户控制中,单击是以授予管理员访问权限。
- 进入注册表编辑器后,使用左侧的菜单导航至以下位置:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\<listener>
- 接下来,双击PortNumber并查看值。如果它不同于3389,请相应地更改它。
- 确定使用的端口为3389 后,单击是保存更改,然后重新启动远程桌面服务服务并查看问题现在是否已解决。
我仍然出现同样的问题,请转到下面的下一个方法。
8.确保没有应用程序端口重叠
此外,另一个程序极有可能正在尝试使用与 RDP 侦听器相同的端口。在这种情况下,您应该执行 CMD 扫描以查看是否属于这种情况,如果是,则解决争议。
使用具有此过程管理权限的 PowerShell 实例。您还可以使用具有本地计算机管理权限的命令提示符。但是,此过程中使用了 PowerShell,因为相同的 cmdlet 可在本地和远程运行。
以下是您需要执行的操作,以确保没有应用程序端口重叠间接导致“Windows 无法在本地计算机上启动远程桌面服务”:
- 按Windows 键 + R打开“运行”对话框。
- 接下来,在文本框中键入“powershell” ,然后按Ctrl + Shift + Enter打开具有管理权限的提升的 Powershell 窗口。
- 在用户帐户控制 (UAC) 中,单击是以授予管理员访问权限。
- 进入提升的 Powershell 窗口后,键入以下命令并按 Enter 键以获取有关3389端口使用情况的报告:
cmd /c 'netstat -ano | 找到“3389”'
注意:使用该端口的进程或服务的进程标识符 (PID) 出现在 PID 列下。
- 接下来,要确定哪个应用程序正在使用指定的RDPport(3389),请输入以下命令:
cmd /c '任务列表 /svc | 找到“<pid listening on 3389>”'
- 查找包含连接到端口的 PID 号的记录(来自netstat 输出)。右栏显示连接到该 PID 的服务或进程。
- 如果远程桌面服务 (TermServ.exe) 以外的程序或服务正在使用该端口,以下技术之一将帮助您解决冲突:
- 为其他应用程序或服务设置单独的端口(推荐)。
- 删除其他程序或服务。
- 更改 RDP 使用的端口,然后重新启动远程桌面服务服务(不推荐)。
如果此方法对您的情况没有帮助,请转到下面的下一个方法。
9.防止防火墙阻塞RDP端口(如果适用)
尽管 Windows 防火墙应该可以防止您遇到此问题,但据报道,受影响计算机的防火墙实际上已阻止 RDP 端口。如果在这种情况下防火墙实际上阻止了 RDP 端口,您可以调查问题并创建端口例外。
为了找出这种情况是否适用,最好的做法是使用psping 工具测试是否可以到达受影响的计算机端口。
以下是如何做到这一点:
- 打开默认浏览器并导航至https://live.sysinternals.com/psping.exe下载psping工具并进行安装。
- 接下来,按Windows 键 + R打开“运行”对话框。接下来,在文本框中键入“cmd” ,然后按Ctrl + Shift + Enter以管理员权限打开CMD。
- 在用户帐户控制 (UAC) 中,单击是以授予管理员访问权限。
- 进入命令提示符后,切换到安装psing工具的目录并运行以下命令:
psping -accepteula <计算机IP>:3389
- 根据结果,得出以下结论:
- 正在连接到 <计算机 IP>:可以访问远程计算机。
- (0% 损失):所有连接尝试均成功。
- 远程计算机拒绝网络连接:无法访问远程计算机。
- (100% 丢失):所有连接尝试均失败。
- 如果连接不可达或所有连接尝试均失败,则很明显此问题是由您的防火墙引起的。如果这些怀疑得到证实,您可以建立白名单规则,也可以完全禁用过度保护的防火墙。
如果这不能让您解决问题,请转到下面的下一个方法。
10.以安全模式启动远程桌面服务
有很多移动部件可能最终会干扰 RDP 端口,从而破坏远程桌面服务。如果您想从罪魁祸首列表中排除第 3 方程序或服务干扰,您应该以安全模式启动并再次尝试打开该服务。
如果错误没有返回,很明显您正在处理某种第 3 方干扰。
在这种情况下,您可以尝试使用网络以安全模式启动并尝试启动远程桌面服务,同时您确定没有导致此行为的潜在干扰。
以下是如何做到这一点:
- 按Windows键调出“开始”菜单,然后在按住Shift键的同时选择“重新启动”(同时按住Shift键)。
- 重新启动后,您的计算机将直接进入恢复菜单。
- 最终到达恢复菜单后,从下拉菜单中选择疑难解答。
- 从“高级选项”菜单的下拉选项中,选择“启动设置”。
- 在后续页面上,按F5以带网络连接的安全模式启动您的计算机。
- PC 以安全模式启动后,在文本框中键入“services.msc” ,然后按Ctrl + Shift + Enter以打开具有管理员访问权限的 “服务”屏幕。
- 在用户帐户控制 (UAC)窗口中,单击是以授予管理员访问权限。
- 进入“服务”屏幕后,搜索以下服务并确保两者都在运行:
Remote Desktop Services (TermService) Remote Desktop Services UserMode Port Redirector (UmRdpService)
- 看看您是否可以在不看到“Windows 无法在本地计算机上启动远程桌面服务”的情况下启用这两项服务。
如果仍然出现相同类型的问题,请转到下面的下一个方法。