远程桌面断开连接或无法连接到运行 Windows Server 2003 的远程计算机或远程桌面服务器(终端服务器)

本文可帮助你了解影响在企业环境中建立终端服务会话的最常见设置。

适用于: Windows Server 2003
原始 KB 数: 2477023

Terminal Server (终端服务器)

终端服务器是托管基于 Windows 的程序或终端服务客户端的完整 Windows 桌面的服务器。 用户可以连接到终端服务器以运行程序、保存文件以及使用该服务器上的网络资源。 用户可以从企业网络内部或 Internet 访问终端服务器。

用于管理目的的远程连接

终端服务支持两个与计算机的并发远程连接。 这些连接不需要终端服务客户端访问许可证(TS CAL)。

若要允许两个以上的管理连接或多个用户连接,必须安装终端服务角色并具有适当的 TS CAL。

排查建立终端服务会话的问题

以下部分介绍可能遇到的问题并提供解决方案。

可以同时连接到终端服务会话的用户数受到限制

由于终端服务配置中配置错误的组策略或 RDP-Tcp 属性,RDP 连接数有限。 默认情况下,连接配置为允许无限数量的会话连接到服务器。 尝试建立远程桌面连接(RDC)时,会出现以下错误:

远程桌面已断开连接。
此计算机无法连接到远程计算机。
请再次尝试连接。 如果问题持续出现,请与远程计算机的所有者或网络管理员联系。

验证远程桌面是否已启用

  1. 启动系统工具。 若要启动系统工具,请单击“开始>”控制面板>“系统”图标,然后单击“确定”。
  2. 单击“远程”选项卡。在“远程桌面”下,单击“在此计算机上启用远程桌面”复选框。

验证终端服务 限制连接 策略数

  1. 启动组策略管理单元,打开本地安全策略或相应的组策略
  2. 导航到该位置:本地计算机策略>计算机配置>管理模板>Windows 组件>终端服务限制连接数。
  3. 单击“已启用”。
  4. 在“允许的 TS 最大连接数”框中,键入要允许的最大连接数,然后单击“确定”。

验证终端服务 RDP-Tcp 属性,并通过终端服务配置设置

  1. 依次单击“开始”、“控制面板”、“管理工具,然后双击“终端服务配置”。
  2. 在控制台树中,单击“ 连接”。
  3. 在详细信息窗格中,右键单击要为其指定最大会话数的连接,然后单击“ 属性”。
  4. “网络适配器”选项卡上,单击“最大连接,键入可连接到服务器的最大会话数,然后单击“应用”。

验证 Terminal ServicesLogon 权限并配置远程桌面用户组

终端服务器上的远程桌面用户组用于向用户和组授予远程连接到终端服务器的权限。

可通过以下方式将用户和组添加到远程桌面用户组:

  • 本地用户和组管理单元
  • 在 RD 会话主机服务器上的“系统属性”对话框中的“远程”选项卡上
  • 如果 RD 会话主机服务器安装在域控制器上,Active Directory 用户和计算机管理单元

可以使用以下过程将用户和组添加到远程桌面用户组,方法是使用终端服务器上的“系统属性”对话框中的“远程”选项卡。

计划配置的终端服务器上的本地 Administrators 组中的成员身份或等效的成员身份是完成此过程所需的最低要求。

使用“远程”选项卡将用户和组添加到远程桌面用户组

  1. 启动系统工具。 若要启动系统工具,请单击“开始>”控制面板>“系统”图标,然后单击“确定”。
  2. “系统属性 ”对话框中的 “远程 ”选项卡上,单击“ 选择远程用户”。 添加需要连接到终端服务器的用户或组。 添加的用户和组将添加到远程桌面用户组。

如果未在“远程”选项卡上选择“允许用户远程连接到此计算机”,则用户将无法远程连接到此计算机,即使他们是远程桌面用户组的成员也是如此。

使用本地用户和组管理单元将用户和组添加到远程桌面用户组

  1. 单击“启动>管理工具”,打开“计算机管理”。
  2. 在控制台树中,单击“ 本地用户和组” 节点。
  3. 在详细信息窗格中,双击“ 组” 文件夹。
  4. 双击 远程桌面用户,然后单击“ 添加”。
  5. “选择用户”对话框中,单击“位置以指定搜索位置。
  6. 单击“对象类型可指定要搜索的对象类型。
  7. 在“输入对象名称”框中键入要添加的名称(示例)。
  8. 单击“ 检查名称”。
  9. 当名称位于位置时,单击“ 确定”。

注意

  • 无法连接到处于睡眠或休眠状态的计算机,因此请确保远程计算机上的睡眠和休眠设置设置为“永不”。 (所有计算机上都不提供休眠功能)。有关进行这些更改的信息,请参阅“更改”、“创建或删除电源计划”(方案)。
  • 即使这些成员未列出,本地管理员组的成员也可以进行连接。

可能存在端口分配冲突

此问题可能表明终端服务器上的另一个应用程序使用与远程桌面协议(RDP)相同的 TCP 端口。 分配给 RDP 的默认端口为 3389。

若要解决此问题,请确定哪个应用程序使用与 RDP 相同的端口。 如果无法更改该应用程序的端口分配,请通过编辑注册表更改分配给 RDP 的端口。 编辑注册表后,必须重启终端服务服务。 重启终端服务服务后,应确认 RDP 端口已正确更改。

终端服务器侦听器可用性

侦听器组件在终端服务器上运行,负责侦听和接受新的远程桌面协议(RDP)客户端连接,从而允许用户在终端服务器上建立新的远程会话。 终端服务器上存在每个终端服务连接的侦听器。 可以使用终端服务配置工具创建和配置连接。

若要执行这些任务,请参阅以下部分。

确定哪个应用程序使用与 RDP 相同的端口

可以运行 netstat 工具来确定终端服务器上的另一个应用程序是否正在使用端口 3389(或分配的 RDP 端口)。

  1. 在终端服务器上,单击“开始,单击“运行”,键入 cmd,然后单击“确定”。
  2. 在命令提示符下,键入 netstat -a -o 并按 Enter。
  3. 查找状态为“正在监听”的 TCP 端口 3389(或分配的 RDP 端口)条目 。 这表示另一个应用程序使用此端口。 使用此端口的服务或进程的 PID(进程标识符)将出现在 PID 列下。

若要确定哪个应用程序使用端口 3389(或分配的 RDP 端口),请使用任务列表命令行工具以及 netstat 工具中的 PID 信息。

  1. 在终端服务器上,单击“开始,单击“运行”,键入 cmd,然后单击“确定”。
  2. 键入 tasklist /svc,然后按 Enter。
  3. 查找与该端口关联的 PID 号条目(查看 netstat 输出)。 与该 PID 关联的服务或进程将显示在右侧。

更改分配给 RDP 的端口

应确定此应用程序是否可以使用不同的端口。 如果无法更改应用程序的端口,则必须更改分配给 RDP 的端口。

重要

Microsoft不建议更改分配给 RDP 的端口。

如果必须更改分配给 RDP 的端口,则必须编辑注册表。

若要执行此过程,必须在本地管理员组中拥有成员身份,或者必须已委派相应的颁发机构。

若要更改分配给 RDP 的端口,请执行以下步骤:

注意

注册表编辑不当可能会严重损坏系统。 在对注册表进行更改之前,应备份任何值数据。

  1. 在终端服务器上,打开注册表编辑器。 若要打开注册表编辑器,请单击“开始”,单击“运行,键入 regedit,然后单击“确定”。

  2. 找到并单击下面的注册表子项:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations

RDP-TCP 是默认连接名称。 若要更改终端服务器上的特定连接的端口,请选择 WinStations 密钥下的连接。

  1. 在右窗格中,双击 PortNumber 注册表项。
  2. 在“值”数据框中键入要分配给 RDP 的端口号。 PortNumber 输入为十六进制值。
  3. 单击“确定保存更改,然后关闭注册表编辑器。
  4. 重启终端服务器。

确认 RDP 端口已更改

若要确认 RDP 端口分配已更改,请使用 netstat 工具。

  1. 在终端服务器上,单击“开始,单击“运行”,键入 cmd,然后单击“确定”。
  2. 在命令提示符下,键入 netstat -a 然后按 Enter。
  3. 查找分配给 RDP 的端口号的条目。 端口应显示在列表中,并且状态为“侦听”。

远程桌面连接和终端服务器 Web 客户端默认使用端口 3389 连接到终端服务器。 如果更改终端服务器上的 RDP 端口,则需要修改远程桌面连接和终端服务器 Web 客户端使用的端口。

验证终端服务器上的侦听器是否正常工作

注意

RDP-TCP 是默认连接名称,3389 是默认 RDP 端口。 使用特定于终端服务器配置的连接名称和端口号。

  • 方法 1:使用 RDP 客户端(如远程桌面连接)与终端服务器建立远程连接。

  • 方法 2:使用 qwinsta 工具查看终端服务器上的侦听器状态。

    1. 在终端服务器上,单击“开始,单击“运行”,键入 cmd,然后单击“确定”。
    2. 在命令提示符下,键入 qwinsta ,然后按 Enter。
    3. RDP-TCP 会话状态应为 “侦听”。
  • 方法 3:使用 netstat 工具查看终端服务器上的侦听器状态。

    1. 在终端服务器上,单击“开始,单击“运行”,键入 cmd,然后单击“确定”。
    2. 在命令提示符下,键入 netstat -a 然后按 Enter。
    3. TCP 端口 3389 的条目应为 听。
  • 方法 4:使用 telnet 工具连接到终端服务器上的 RDP 端口。

    1. 在另一台计算机中,单击“开始”,单击“运行”,键入 cmd,然后单击“确定”。
    2. 在命令提示符下,键入telnet <servername> 3389<服务器名称>是终端服务器的名称,然后按 Enter。

    如果 telnet 成功,将收到 telnet 屏幕和光标。

    如果 telnet 未成功,将收到此错误:

    正在连接到 servername...无法在端口 3389 上打开与主机的连接:连接失败

    qwinsta、netstat 和 telnet 工具也包含在 Windows XP 中。 还可以下载和使用其他故障排除工具,例如 Portqry。

可能配置不正确身份验证和加密设置

使用终端服务配置配置配置身份验证和加密

  1. 在管理工具中,打开终端服务配置。

  2. 在控制台树中,单击“ 连接”。

  3. “详细信息 ”窗格中,右键单击要修改的连接,然后单击“ 属性”。

  4. “常规 ”选项卡上的安全层中,选择安全方法。 选择的安全方法确定终端服务器是否向客户端进行身份验证,以及可以使用的加密级别。 可以从以下安全方法中进行选择:

    • 如果支持 TLS,则 Negotiate 方法使用 TLS 1.0 对服务器进行身份验证。 如果不支持 TLS,则不会对服务器进行身份验证。

    • RDP 安全层方法使用本机远程桌面协议加密来保护客户端和服务器之间的通信。 如果选择此设置,则不会对服务器进行身份验证。

    • SSL 方法需要使用 TLS 1.0 对服务器进行身份验证。 如果不支持 TLS,连接将失败。 仅当选择有效的证书时,此方法才可用,如步骤 6 中所述。

      如果选择“协商”或“SSL”,以便 TLS 正常工作,则还必须将加密级别 设置为“高”,或者必须使用组策略或终端服务器配置启用符合 FIPS 的加密。 还必须满足其他服务器和客户端配置要求。 有关配置终端服务器以支持 TLS 身份验证的要求和任务的详细信息,请参阅配置身份验证和加密。

  5. 在“加密级别”中,单击所需的级别。 可以选择“低”、“客户端兼容”、“高”或“符合 FIPS”。 有关这些级别的详细信息,请参阅本主题末尾的备注。

  6. 若要使用 TLS 1.0 对服务器进行身份验证,请在“证书”中单击“浏览”,单击“选择证书”,然后单击要使用的证书。 证书必须是具有相应私钥的 X.509 证书。 有关如何验证证书是否具有相应的私钥的说明,请参阅本主题末尾的注释。

  7. 若要通过在默认 Windows 登录对话框中键入其凭据来指定客户端登录到终端服务器,请选中“使用标准 Windows 登录接口”复选框。

注意

  • 若要执行该过程,你必须是本地计算机上 Administrators 组的成员,或你必须已被委派适当的权限。 如果计算机已加入域,则 Domain Admins 组的成员也许能够执行该过程。 作为安全方面的最佳做法,请考虑使用“运行方式”来执行该过程。
  • 若要打开终端服务配置,请单击“开始”,单击控制面板,双击“管理工具”,然后双击“终端服务配置”。
  • 在组策略中配置的任何加密级别设置都替代使用终端服务配置工具设置的配置。 此外,如果启用 系统加密:对加密、哈希和签名 组策略设置使用符合 FIPS 的算法,则此设置将替代“设置客户端连接加密级别组策略”设置。
  • 更改加密级别后,新的加密级别将在用户下一次登录时生效。 如果需要在一台服务器上使用多个加密级别,请安装多个网络适配器并单独配置每个适配器。
  • 若要验证证书是否具有相应的私钥,请在终端服务配置中右键单击要查看证书的连接,单击“常规”选项卡,单击“编辑,单击要查看的证书,然后单击“查看证书”。“常规 ”选项卡底部的语句中, 应显示与此证书 对应的私钥。 也可以使用“证书”管理单元查看此信息。
  • 符合 FIPS 的设置(系统加密:在组策略中使用符合 FIPS 的算法或终端服务器配置中的 FIPS 兼容设置)加密和解密从客户端发送到服务器和从服务器发送到客户端的数据,使用联邦信息处理标准 (FIPS) 140-1 加密算法, 使用Microsoft加密模块。 有关详细信息,请参阅 Windows Server 2003 技术参考中的终端服务。
  • “高”设置使用强式 128 位加密算法对从客户端发送到服务器以及从服务器发送到客户端的数据进行加密。
  • “客户端兼容”设置以客户端支持的最大密钥强度加密客户端与服务器之间发送的数据。
  • “低”设置使用 56 位加密算法对从客户端发送到服务器的数据进行加密。

无法完全断开终端服务器连接

终端服务器客户端失去与终端服务器的连接后,终端服务器上的会话可能无法转换为断开连接状态,即使客户端与终端服务器物理断开连接,它也可能保持活动状态。 如果客户端重新登录到同一终端服务器,可能会建立一个新会话,并且原始会话可能仍保持活动状态。

若要解决此问题,请执行以下步骤:

  1. 依次单击“开始”和“运行”,键入“gpedit.msc”,然后单击“确定”
  2. 展开计算机配置,展开管理模板,展开 Windows 组件,然后单击终端服务
  3. 在右窗格中,双击“ 保持连接连接”。
  4. 单击“启用”,然后单击“确定”
  5. 关闭组策略对象编辑器,单击“确定,然后退出Active Directory 用户和计算机。

RDP 服务当前正忙

当 Windows Server 2003 SNP 功能打开时,可能会出现以下问题:

现象

尝试使用 VPN 连接连接到服务器时,会收到以下错误消息:

错误 800:无法建立连接。

  • 无法创建与服务器的远程桌面协议(RDP)连接。
  • 无法从局域网上的计算机连接到服务器上的共享。
  • 无法将客户端计算机加入域。
  • 无法从运行 Microsoft Outlook 的计算机连接到 Exchange 服务器。
  • 可能无法清理到 Exchange 服务器的非活动 Outlook 连接。
  • 遇到网络性能缓慢的问题。
  • 与基于 Windows Vista 的计算机通信时,可能会遇到网络性能缓慢的问题。
  • 无法从服务器创建传出 FTP 连接。
  • 动态主机配置协议(DHCP)服务器服务崩溃。
  • 登录到域时性能缓慢。
  • 位于 Windows Small Business Server 2003 或 Internet 安全性和加速(ISA)服务器后面的网络地址转换(NAT)客户端遇到间歇性连接故障。
  • 遇到间歇性 RPC 通信失败。
  • 服务器停止响应。
  • 服务器在非分页池内存上运行较低

证书损坏

终端服务客户端可能会反复拒绝访问终端服务器。 如果使用终端服务客户端登录到终端服务器,可能会收到以下错误消息之一:

  • 错误消息 1

    由于出现安全错误,客户端无法连接到终端服务器。 确保已登录到网络后,重试连接到服务器。

  • 错误消息 2

    远程桌面已断开连接。 由于出现安全错误,客户端无法连接到远程计算机。 请验证是否已登录到网络,然后重试连接。

重要

此部分(或称方法或任务)介绍了修改注册表的步骤。 但是,注册表修改不当可能会出现严重问题。 因此,按以下步骤操作时请务必谨慎。 作为额外保护措施,请在修改注册表之前先将其备份。 如果之后出现问题,您就可以还原注册表。 有关如何备份和还原注册表的详细信息,请参阅:如何备份和还原 Windows 中的注册表

若要解决此问题,请备份并删除 X509 证书注册表项,重新启动计算机,然后重新激活终端服务许可服务器。 要设置部门,请按照以下步骤操作。

注意

在每个终端服务器上执行以下过程。

  1. 确保终端服务器注册表已成功备份。

  2. 启动“注册表编辑器”。

  3. 找到并单击下面的注册表子项:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TermService\

  4. “注册表 ”菜单上,单击“ 导出注册表文件”。

  5. “文件名 ”框中键入导出参数,然后单击“ 保存”。

    注意

    如果以后必须还原此注册表子项,请双击在此步骤中保存的Exported-parameters.reg文件。

  6. “参数”注册表子项下,右键单击以下每个值,单击“删除,然后单击“是以确认删除:

    • Certificate
    • X509 Certificate
    • X509 Certificate ID
  7. 退出注册表编辑器,然后重启服务器。

  8. 使用许可向导中的电话连接方法重新激活终端服务许可服务器。

参考

如果本文不帮助你解决问题,或者遇到与本文中所述症状不同的症状,请搜索Microsoft 支持部门。 然后,键入收到的错误消息的文本,或在“搜索支持”(KB)框中键入问题的说明。

数据收集

如果需要Microsoft支持方面的帮助,建议按照使用 TSS 收集信息中的 步骤收集用户体验问题来收集信息。