使用 RDP 连接到 Windows Server 2012 R2 时服务器冻结或用户登录速度缓慢

本文提供了使用远程桌面协议(RDP)连接到计算机时计算机冻结或用户登录速度缓慢的问题的解决方案。

原始 KB 数: 4021856

现象

创建与运行 Windows Server 2012 R2 的计算机的 RDP 连接时,计算机将冻结。

在其他情况下,你可能会看到新用户登录速度减慢到其出现挂起的程度。 用户输入凭据之前也可能发生延迟。

原因

由于存在涉及远程桌面服务(RDS)(termsrv.dll)、lsass(kerberos)和重定向器的死锁条件,因此会出现此问题。 RDS 服务尝试通过向域控制器发出远程注册表调用来加载用户配置数据时,会发生死锁。

当你遇到缓慢或挂起的登录时,RDS 服务会调用域控制器的 API,并且这些服务的往返会导致严重的延迟。 这可能是由于以下原因造成的:

  • 与域控制器的网络链接速度缓慢、拥堵,并看到帧丢失,并且重试传输数据花费了大量时间。
  • 域控制器遇到本地性能问题并缓慢响应请求。

解决方法

现在可以选择在用户登录期间关闭域控制器请求。 这可避免死锁窗口,并修复性能问题。

在 Windows Server 2012 R2 中,根据以下步骤创建 fQueryUserConfigFromLocalMachine 注册表项。

重要

请认真遵循本部分所述的步骤。 如果注册表修改不正确,可能会发生严重问题。 在修改注册表之前,请备份注册表,以便在出现问题时可以还原。

若要更改注册表,请执行以下步骤:

  1. 启动“注册表编辑器”。 (按 Windows 徽标键 + R,在“打开”框中键入regedit.exe,然后单击“确定”。

  2. 在注册表编辑器中,找到并单击以下注册表子项之一:

    • HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\Terminal Services
    • HKEY _LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\<Connection Name>

    注意

    默认情况下,连接名称>的值<为 RDP-Tcp。 此值 RDP-Tcp 可以重命名或配置为其他内容。

    屏幕截图显示了如何配置 RDP-Tcp。

  3. 在“编辑”菜单上,选择“新建”,然后选择“DWORD 值”。

  4. 类型 fQueryUserConfigFromLocalMachine

  5. 按住(或右键单击 fQueryUserConfigFromLocalMachine),然后选择“ 修改”。

  6. 在“值”数据框中,键入“1”,然后选择“确定”。

  7. 退出注册表编辑器。

还可以升级到 Windows Server 2016 以解决此问题。

注意

无需更新 Windows Server 2016 中的注册表项,更新后的行为是默认值。