通过远程桌面连接Windows实例,提示“远程桌面由于以下原因之一无法连接到远程计算机”错误怎么办?

本文介绍通过远程桌面连接Windows实例,提示“远程桌面由于以下原因之一无法连接到远程计算机:未启用对服务器的远程访问、远程计算机已关闭、远程计算机在网络上不可用”错误的解决方案。

问题描述

使用远程桌面连接Windows实例时,提示“远程桌面由于以下原因之一无法连接到远程计算机:未启用对服务器的远程访问、远程计算机已关闭、远程计算机在网络上不可用”错误,具体报错信息如下图所示。

image

使用自助问题排查工具

阿里云的自助问题排查工具可以帮助您快速检测安全组配置、实例内部防火墙以及常见应用端口监听状态,并给出明确的诊断报告。

单击进入自助问题排查页面,并切换至目标地域。

image

如果自助问题排查工具未能定位您的问题,请继续下面的步骤进行手动排查。

手动排查

出现该问题可能有以下原因:

解决方案

为解决因RDP-Tcp会话未处于监听状态而导致远程桌面连接失败的问题,您需要将异常实例中的RDP-TCP注册表项替换为来自正常工作实例的相应注册表项。

  1. 导出正常实例中的RDP-TCP注册表。

    1. 远程连接到一台具有正常远程桌面连接(RDP)功能的Windows实例,确保版本与异常实例相同。

    2. Win键 + R打开运行对话框,输入regedit,然后单击确定

    3. 注册表编辑器对话框中,右键单击HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp注册表,选择导出

      image

    4. 将文件命名为rdp-tcp.reg,然后单击保存

  2. 将已保存的rdp-tcp.reg文件上传至异常实例中。

  3. 替换异常实例中的RDP-TCP注册表。

    1. 通过VNC连接异常Windows实例

    2. 右键image,单击运行,输入regedit,然后单击确定

    3. 注册表编辑器对话框中,右键单击HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp注册表,右键导出至名为rdp-tcp.bak.reg的文件中。

    4. 右键单击HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp注册表,然后选择删除

    5. 注册表编辑器对话框中,选择文件 > 导入,将由正常实例中导出的离线注册表文件rdp-tcp.reg导入到异常实例的注册表中。

      image

  4. 检查Users用户组是否有注册表的读权限。

    1. 右键RDP-Tcp,单击权限,检查Users用户是否有读权限。

      image

    2. 若没有读权限则参考以下步骤分配权限:

      1. 点击高级按钮打开高级配置页面。

      2. 单击更改,输入Administrators后,依次单击检查名称确认,然后在RDP-Tcp的高级安全设置对话框中,单击应用使修改生效。

        image

      3. 点击启用继承按钮(点击后按钮名称变为禁用继承)并勾选按钮下方的选项。最后点击应用,并在后续弹出的兑换框中点击确认。这样会从父对象中继承权限。

        image

        如果继承后的权限中依然没有Users用户组的读权限,需手动分配权限

        1. 点击“添加”按钮,在弹出的界面中点击选择主体按钮,选择Users用户组。

          image

        2. 权限类型选择允许,勾选读取权限并点击确定

          image

        3. 最后点击应用使分配的权限生效

  5. 执行以下任一命令,重启远程桌面连接服务,以使配置生效。

    • PowerShell命令

      Start-Service TermService -Force
    • 命令行

      sc start TermService
  6. 重新使用远程桌面连接Windows实例,确保可以正常连接。