当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] Windows Server 2019/2016 上的 RDS 和 RemoteApp 性能问题

作者:精品下载站 日期:2024-12-14 23:24:17 浏览:15 分类:玩电脑

Windows Server 2019/2016 上的 RDS 和 RemoteApp 性能问题


在本文中,我针对我在基础设施中遇到的 RDS 服务器或已发布的 RemoteApp 的常见性能问题整理了一些解决方案。在实施任何解决方案或解决方法之前,请检查其是否适合您的基础架构和环境。

使用 UPD 修复 Windows Server 2016/2019 上的 RDS 性能

使用用户配置文件磁盘时,运行 Windows Server 2019/2016 并拥有大量用户的 RDS 服务器可能会遇到性能下降的情况。

问题在于,每次用户登录时,Windows Defender 防火墙中都会创建新的入站和出站规则。当用户注销时,这些防火墙规则不会自动删除。

随着时间的推移,防火墙中会出现大量重复的规则,从而导致RDS服务器的性能急剧下降(登录缓慢、通过RDP登录时黑屏、RDS主机冻结、菜单打不开、开始按钮不出现)。

[玩转系统] Windows Server 2019/2016 上的 RDS 和 RemoteApp 性能问题

使用 PowerShell 命令检查 Windows Defender 防火墙中的规则数量:

(Get-NetFirewallRule).count

[玩转系统] Windows Server 2019/2016 上的 RDS 和 RemoteApp 性能问题

就我而言,其中一台 RDS 主机有 18,000 防火墙规则!这些规则是在用户每次登录时为 Windows UWP Store 应用创建的。

要解决此问题,您必须首先安装适用于您的 Windows Server 版本的最新安全更新(Windows Server 2016 上至少安装 KB4467684,Windows Server 2019 至少安装 KB4490481)。然后在 RDSH 上创建以下注册表参数:

  • 注册表项: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy

  • 类型:REG_DWORD

  • 属性:DeleteUserAppContainersOnLogoff

  • 价值:

    1

您可以使用 PowerShell 命令创建注册表属性:

New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy" -Type DWord -Name DeleteUserAppContainersOnLogoff -Value 1

如果您的域中有多个 RDS 主机,则可以使用 GPO 部署此注册表参数。

不要忘记手动清除 Windows Defender 防火墙中的入站和出站规则。如果防火墙规则很少,您可以使用 TechNet 线程 (https://social.microsoft.com/Forums/Azure/en-US/992e86c8-2bee-4951-9461-e3d7710288e9/windows-servr-2016-rdsh-firewall-rules-created-at-every-login?forum=winserverTS) 中的 PowerShell 脚本。

您可以使用现代 FSLogix 容器来存储用户配置文件,而不是在 RDS 服务器上使用用户配置文件磁盘。

由于鼠标轮询率高而导致 RDS/RemoteApp 性能较差

许多用户抱怨将 RDS 场迁移到 Windows Server 2019 后,RDP 会话性能差、延迟高、鼠标滞后。鼠标对移动的响应非常慢、光标抖动和冻结。

此问题可能与某些光学鼠标(通常是游戏鼠标)的高 DPI 和轮询率设置有关。例如,流行的罗技 G203 鼠标的默认轮询率为每秒 1000 次(

1000 Hz

)。高鼠标轮询率似乎会导致 RDP 连接负载较高,并且在使用 RemoteApps 时可能会遇到延迟。如果将此值减少到每秒 125 次 (125 Hz),RDP 会话中的鼠标问题将会消失。

您可以使用供应商的鼠标工具降低轮询率。

[玩转系统] Windows Server 2019/2016 上的 RDS 和 RemoteApp 性能问题

如果无法降低轮询率,请尝试禁用鼠标光标阴影(取消选中启用指针阴影选项),并在 Windows 控制面板的鼠标设置中为指针选择方案(

main.cpl

)。

[玩转系统] Windows Server 2019/2016 上的 RDS 和 RemoteApp 性能问题

Windows 10 升级后 RemoteAPP、鼠标和菜单速度缓慢

Windows 10 版本升级后,用户可能会遇到在 Windows Server 2019/2016/2012R2 RDS 服务器上发布的 RemoteApp 的性能问题。 RDS RemoteApps 开始工作的速度可能会慢得多,由鼠标单击引起的任何操作的执行(绘制)时间会延长 2-3 倍,并且 RemoteApps 中的上下文菜单显示缓慢(菜单项闪烁,您必须单击它们几次,有时根本不显示)。将客户端上的 Windows 10 版本升级到 1803 和 20H2 时,也出现了类似的问题。

这种情况下,使用内置的RDP连接方式建立的全屏RDP连接方式不会出现问题。

Mstsc.exe

或 RDCMan 客户端。

要解决此问题,您可以尝试使用本地 GPO 编辑器 (gpedit.msc) 将使用RemoteApp 的高级 RemoteFX 图形参数的值更改为禁用(GPO 部分:计算机配置 -> 策略 -> 管理模板 -> Windows 组件 -> 远程桌面服务 -> 远程桌面会话主机 -> 远程会话环境)。

[玩转系统] Windows Server 2019/2016 上的 RDS 和 RemoteApp 性能问题

如果图形程序(通常是 CAD 应用程序)作为 RemoteAPP 发布,那么如果没有 Remote FX 支持,它们将无法工作。

不过,还有一种解决方法可以将 RDP 客户端版本替换为旧版本。由于 RemoteApp 的性能问题在 Windows 10 1709 中也遇到过,因此最好使用 1607 或 1703 中的 RDP 库。问题是,升级 Windows 10 版本后,安装了新版本的 RDP 客户端,该客户端无法与通过 RDS RemoteApp 发布的程序正常运行。

您可以通过将 C:\Windows\System32 文件夹中的 mstsc.exe 和 mstscax.dll 文件替换为 Windows 10 早期版本(1703 或 1607)中的版本来修复客户端上 RemoteApp 性能不佳的问题。

如何在 Windows 10 中替换 RDP 客户端文件?

  1. 关闭所有 RDP 连接并运行 RemoteApp(最好重新启动计算机);

  2. 从 Windows 10 1607 版本下载包含 mstsc.exe 和 mstscax.dll 版本的存档 (mstsc-w10-1607.zip);

  3. 使用以下命令将原始 mstsc.exe 和 mstscax.dll 文件从 C:\windows\system32\ 复制到 C:\BackUp:

    md c:\backup\
    copy C:\windows\system32\mstsc.exe c:\backup
    copy C:\windows\system32\mstscax.dll c:\backup
  4. 然后,您需要将您的帐户分配给C:\windows\system32\目录中的mstsc.exe和mstscax.dll文件的所有者,禁用继承并授予自己修改文件的权限:

    takeown /F C:\windows\system32\mstsc.exe
    takeown /F C:\windows\system32\mstscax.dll
    icacls C:\windows\system32\mstsc.exe /inheritance:d
    icacls C:\windows\system32\mstscax.dll /inheritance:d
    icacls C:\windows\system32\mstsc.exe /grant root:F
    icacls C:\windows\system32\mstscax.dll /grant root:F

    [玩转系统] Windows Server 2019/2016 上的 RDS 和 RemoteApp 性能问题

    在此示例中,具有管理员权限的本地帐户的名称是root。将其替换为您的帐户名。

  5. 将 C:\windows\system32\ 目录中的文件替换为存档中的文件;

  6. 恢复复制文件的原始权限。为此,请启用 NTFS 权限继承并使用 ICACLS 工具将文件的所有者设置为“NT Service\TrustedInstaller”:

    icacls C:\windows\system32\mstsc.exe /inheritance:e
    icacls C:\windows\system32\mstscax.dll /inheritance:e
    icacls C:\windows\system32\mstsc.exe /setowner "NT Service\TrustedInstaller" /T /C
    icacls C:\windows\system32\mstscax.dll /setowner "NT Service\TrustedInstaller" /T /C
  7. 仍然需要重新注册该库::

    regsvr32 C:\Windows\System32\mstscax.dll

提示。您还可以通过代表 SYSTEM 帐户运行命令提示符来替换系统文件。此外,您还可以在 Active Directory 域中的多台计算机上复制并替换 mstsc.exe 和 mstscax.dll 文件。

这将暂时修复 Windows 10 客户端上的 RemoteApp 性能问题。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯