修复:远程桌面服务当前正忙
在某些情况下,用户无法使用内置 RDP 客户端 (mstsc.exe) 登录到运行 Windows Server 的 RDS 场主机,并出现以下错误:
The task you are trying to do can't be completed because Remote Desktop Services is currently busy. Please try again in a few minutes. Other users should still be able to log on.在这种情况下,RDS 主机管理员可以在任务管理器的“用户”选项卡中看到许多名为 (4) 的卡住用户会话,而不是用户名和已断开状态。
该问题出现在所有当前的 Windows Server 版本中:2012 R2、2016、2019 和 2022。
出现该错误的原因可能有多种:
远程桌面服务运行出错;
csrss.exe 进程中的错误;
用户配置文件或 profsvc 服务存在问题;
RDS 主机上的 RAM 或硬盘空间不足;
组策略设置不正确。
不幸的是,微软官方没有提供可以彻底解决该问题的解决方案。您所能做的就是消除症状。
故障排除几乎总是涉及重置有问题的用户 RD 会话或重新启动 RDS 服务器,但在某些情况下,问题仍然存在。让我们从最简单的解决方案开始研究解决方案
检查 RDS 主机性能和可用资源
由于缺少 RAM 或可用磁盘空间可能会出现此错误,因此请确保服务器有足够的资源。检查安装操作系统的位置是否有足够的可用 RAM 和硬盘空间(应至少有 1 GB 可用空间),清理旧文件中的 RDS 用户配置文件,并删除旧的(未使用的)用户配置文件。另外,请检查事件日志中是否有与远程桌面服务和用户配置文件服务 (profsvc) 相关的严重错误。
如果有足够的免费资源,请转到下一个选项。
重置 RDS 上挂起的远程桌面会话
首先,尝试查找并重置无法登录RDS服务器的用户的会话,并出现错误“
Remote Desktop Service is currently busy”。在任务管理器的“用户”选项卡中找到用户,然后单击上下文菜单中的注销。在大多数情况下,这可以解决问题,但有时您可能会在任务管理器中发现多个挂起的会话,其名称为 (4) 而不是用户名。挂起的 RDS 用户会话通常有 4 个正在运行的进程:
客户端服务器运行时进程 (csrss.exe)
桌面 Windows 管理器 (dwm.exe)
Windows 登录应用程序 (winlogon.exe)
Windows 登录用户界面
尝试使用任务管理器重置任何挂起的 (4) RDS 会话,如上所述。如果这没有帮助,您将需要手动终止这些会话中正在运行的进程。
打开提升的命令提示符并运行命令:
query session该命令显示 RDS 主机上的所有用户及其会话。输出中有 3 列:SESSIONNAME、USERNAME 和 ID。查找
(4)用户和相应的 ID,在本例中为ID 2。你必须杀死
csrss.exe在此会话中运行的进程;
运行命令:
query process /id 2该命令显示具有指定 ID 的会话中运行的所有进程。我们需要找到csrss.exe进程的PID。就我而言,PID 为5140。你需要杀死这个进程。
通过 PID 杀死 csrss.exe 进程:
taskkill /F /PID 5140
当 csrss.exe 进程完成时,用户会话中的所有其他进程都会自动终止。这允许您结束挂起的 RDS 用户会话,而无需重新启动服务器。
如果有一些用户,请为每 (4) 个用户执行此操作。
我们的建议是使用 GPO 或集合设置中的 RDS 超时选项来限制用户会话的最大持续时间。这将自动结束挂起的用户会话。
此外,如果您正在处理不可靠的链接,我们建议您将 GPO 选项配置保持活动连接间隔设置为1 分钟(计算机配置 -> 管理模板 -> Windows 组件 -> 远程桌面服务 -> 远程桌面会话主机 -> 连接)。
使用命令提示符终止远程桌面用户会话
如果您无法注销用户,可以尝试从命令提示符重置 RDS 用户会话:
以管理员身份打开命令提示符并运行命令:
query session使用用户的 SESSIONNAME 或 ID 结束用户的会话。例如:
reset session rdp-tcp#16或者:
reset session 3
需要对每个有问题的 RDS 用户执行此操作。现在您可以尝试登录,问题应该已经解决了。
如果 RDS 服务器不允许您使用本地管理员帐户登录,您可以远程获取计算机上的用户会话列表
qwinsta /server:mun-rds01然后,您可以远程结束挂起的会话:
reset session rdp-tcp#16 /server:mun-rds01检查 RDS 主机上的许可设置
确保 RDSH 主机上配置的许可证服务器和许可证类型(每用户 CAL/每设备 CAL)正确。
我收到错误“您尝试执行的任务无法完成,因为远程桌面服务当前正忙”,然后我忘记在安装 RDSH 角色后指定运行远程桌面授权角色的服务器的地址。在这种情况下,两个 RDP 用户照常连接,第三个用户遇到此错误。
可以指定具有RDS许可证的服务器地址:
在 RDS 集合设置中:任务 -> 编辑部署属性 -> RD 许可 -> 指定许可证服务器;
通过组策略选项使用指定的远程桌面许可证服务器(计算机配置 -> 策略 -> 管理模板 -> Windows 组件 -> 远程桌面服务 -> 远程桌面会话主机 -> 许可)
使用 PowerShell(请参阅文章未配置远程桌面会话主机的许可模式)。
禁用 GPO 中的 RDP 最大连接限制
您可以使用组策略来限制并发(同时)RDS 连接的数量。缺省情况下,未配置该策略。这意味着最大连接数不受 RDSH 主机的限制。
使用 gpresult 检查策略是否已启用以及它有什么值。
在提升的命令提示符中运行以下命令:
gpresult /H c:\gpresult.html打开位于 C 盘根目录下的 gpresult.html 文件。它是一个常见的 .html 文件,可以使用浏览器打开(在现代 Windows 版本中默认禁用 Internet Explorer,您应该使用 MS Edge。);
在计算机配置 -> 管理模板 -> Windows 组件 -> 远程桌面服务 -> 远程桌面会话主机\连接下找到名为限制连接数的 GPO 设置,或输入限制连接数在页面上进行搜索。
如果没有这样的策略,则不会应用它,并且对同时连接的数量没有限制。如果有策略并且指示了同时连接数,请将其值更改为您需要的数量。您可以使用本地组策略编辑器(
gpedit.msc),如果策略是通过域 GPO 设置的,请使用域 GPO 编辑器对其进行编辑(
gpmc.msc)。完成后,不要忘记运行
gpupdate /force命令立即应用新的组策略设置。
解决繁忙的 RDP 服务问题的其他方法
如果主机上有足够的可用资源,RDP 日志中没有错误,由于某种原因重置用户会话没有帮助,并且您无法立即重新启动 RDSH 服务器,那么您应该尝试以下选项:
确保 RDS 主机不处于 Drain 模式,这会阻止用户建立新的 RDP 连接:
chglogon.exe /QUERY。如果命令返回“新用户登录已禁用,但重新连接到现有会话已启用”,则禁用 Drain 模式:
chglogon.exe /enable取消选中 RDP 连接设置中的持久位图缓存选项
mstsc.exe客户。尝试使用56kbps调制解调器模式来优化性能;
使用以下命令重新启动远程桌面服务:
net stop termservice和
net start termservice。或者使用 PowerShell 远程重启服务:
Get-Service termservice -ComputerName mun-rdsh1 | Restart-Service杀死所有tstheme.exe进程;
建议安装适用于您的 Windows 版本的所有最新更新。使用标准 Windows 更新工具或 PSWindowsUpdate PowerShell 模块。
在 Windows Server 2012 R2 上,事件查看器中可能会出现事件 ID 20499“远程桌面服务花费太长时间从服务器加载用户配置..”。要解决此问题,请添加 fQueryUserConfigFromLocalMachine 注册表项:
REG ADD "HKLM\SYSTEM\CurrentControlSet\control\Terminal Server\Winstations\RDP-Tcp" /v fQueryUserConfigFromLocalMachine /t REG_DWORD /d 1 /f REG ADD "HKLM\Software\Policies\Microsoft\Windows NT\Terminal Services" /v fQueryUserConfigFromLocalMachine /t REG_DWORD /d 1 /f如果您的 Windows 主机上安装了 Citrix,并且 VDA 服务器上有大量断开连接会话,您可以通过创建 SeTokenDoesNotTrackSessionObject 注册表项来修复问题:
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Kernel" /v SeTokenDoesNotTrackSessionObject /t REG_DWORD /d 1 /f检查用户配置文件服务(
profsvc)日志。如果您在 Windows Server 上使用用户配置文件磁盘 (UPD) 或 FSLogix 配置文件,请检查包含配置文件的文件服务器是否可用并且没有遇到性能问题。此外,在 Windows Server 2019/2016 上使用 UPD 时,创建 DeleteUserAppContainersOnLogoff 注册表参数,该参数将修复每次用户登录时为 UWP Windows 应用商店应用生成的许多 Windows Defender 防火墙规则的问题。
使用用户配置文件光盘的 Windows Server 2016/2019 上的 RDS 性能不佳一文对此进行了描述。









