In some cases users cannot sing-in to an RDS farm host running Windows Server using the built-in RDP client (mstsc.exe) with the following error:
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.
In this case, the RDS host may see many suspended user sessions with the administrator name (4) instead of username and disconnected Status in the Users tab of Task Manager.
The issue occurs in all current Windows Server editions: 2012 R2, 2016, 2019, and 2022.
The error may appear for several reasons:
- Error in operation of Remote Desktop Services;
- A bug in the csrss.exe process;
- a problem with the user profile or the profsvc service;
- Running out of RAM or hard drive space on the RDS host;
- Incorrect Group Policy settings.
Unfortunately, there is no official Microsoft solution that can completely fix the problem. All you can do is relieve the symptoms.
Troubleshooting almost always involves resetting the problematic user RD session or restarting the RDS server, but in some cases, the problem persists. Let’s study the solutions starting with the easiest
Check RDS Host Performance and Available Resources
Since this error can be caused by lack of RAM or free disk space, make sure that the server has sufficient resources. Check that there is enough RAM and hard disk space when the operating system is installed (must have at least 1 GB free), clean up RDS user profiles from old files, and delete old (unused) user profiles. Also, check the event log for critical errors regarding Remote Desktop Services and User Profile Service (ProfessVC).
If there are enough free resources, go to the next option.
reset hung remote desktop session on RDS
First, try to find and reset the session of the user who cannot log in to the RDS server with the error “Remote Desktop Service is currently busy
, Find and click a user in the Users tab of Task Manager log off in the context menu. In most cases, this will solve the problem, but sometimes you can find in the Task Manager several hung sessions with the name (4) instead of the username. A hung RDS user session will typically have 4 running processes::
- Client Server Runtime Process (csrss.exe)
- Desktop Windows Manager (dwm.exe)
- Windows Logon Application (winlogon.exe)
- windows logon user interface
Try resetting any hanging (4) RDS sessions using Task Manager as described above. If this does not help, you will need to manually end the processes running in these sessions.
- Open an elevated command prompt and run the command:
query session
The command displays a list of all users and their sessions on the RDS host. In the output we need 3 columns: SESSIONNAME, USERNAME and ID. search
(4)
User and associated ID, in this example, it is id 2, you must killcsrss.exe
process that is running in this session; - Run command:
query process /id 2
The command shows all processes running in the session with the specified ID. We need to find the PID of the csrss.exe process. In my case, PID is 5140, You need to kill the process.
- End the csrss.exe process by its PID:
taskkill /F /PID 5140
When the csrss.exe process is terminated, all other processes in the user’s session are terminated automatically. This allows you to end a hung RDS user session without restarting the server.
Do this for each (4) user if there are a few of them.
Also, if you are working on untrusted links, we recommend that you set the GPO option Configure keep-alive connection interval To 1 minute (Computer Configuration -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Connections).
End a Remote Desktop User Session with Command Prompt
If you are unable to log off a user, you can try resetting the RDS user session from the command prompt:
- Open command prompt as administrator and run the command:
query session
- End a user’s session using their SESSIONNAME or ID. For example:
reset session rdp-tcp#16
Or:reset session 3
This should be done for every problematic RDS user. You can now try to log in, the problem should be resolved.
If the RDS server doesn’t allow you to sign in under a local administrator account as well, you can get a list of user sessions on a remote computer by
qwinsta /server:mun-rds01
Then you can end the hung session remotely:
reset session rdp-tcp#16 /server:mun-rds01
Check Licensing Settings on Your RDS Host
Make sure the license server and license type (CAL per user/CAL per device) configured on your RDSH host are correct.
The address of the server with the RDS license can be specified:
- In the RDS collection settings: Tasks -> Edit deployment properties -> RD Licensing -> Specify a license server;
- with group policy options Use the specified Remote Desktop license server (Computer Configuration -> Policies -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Licensing)
- Using PowerShell (see Licensing mode not configured article for Remote Desktop Session Host).
Disable RDP Max Connection Limit in GPO
You can use Group Policies to limit the number of concurrent (simultaneous) RDS connections. By default, this policy is not configured. This means that the maximum number of connections is not limited by the RDSH host.
Use gpresult to check if the policy is enabled and what its value is.
- Run the following command in an elevated command prompt:
gpresult /H c:\gpresult.html
- Open the gpresult.html file located at the root of C drive. This is a normal .html file that can be opened using your browser (Internet Explorer is disabled by default in modern Windows builds, and you must use MS Edge.);
- Find the named GPO setting limit the number of connections under Computer Configuration -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host\connections or type limit the number of connections to find on the page.
If there is no such policy, it is not enforced and there is no restriction on the number of simultaneous connections. If there is a policy and the number of simultaneous connections is indicated, change its value to the number you need. You can configure the GPO option using the Local Group Policy Editor (gpedit.msc
), and if the policy is set through a domain GPO, it can be set in the Domain GPO Editor (gpmc.msc
, After doing this, don’t forget to run gpupdate /force
Command to apply new Group Policy settings immediately.
Other ways to fix busy RDP service problems
If there is enough free resources on the host, there are no errors in the RDP log, resetting the user’s session did not help for some reason, and you cannot immediately restart the RDSH server, then you should try the following options :
- Make sure the RDS host is not in drain mode, which prevents users from making new RDP connections:
chglogon.exe /QUERY
, If the command says ‘Disable new user logons, but enable reconnection to existing sessions,’ disable drain mode:chglogon.exe /enable
- uncheck persistent bitmap caching Options in RDP connection settings
mstsc.exe
Customer. try it out 56Kbps modem mode to optimize performance; - Restart Remote Desktop Services using the command:
net stop termservice
Andnet start termservice
, Or restart the service remotely using PowerShell:Get-Service termservice –ComputerName mun-rdsh1 | Restart-Service
- kill all tstheme.exe procedures;
- It is recommended to install all the latest updates for your Windows version. Use the standard Windows Update tool or the PSWindowsUpdate PowerShell module.
- On Windows Server 2012 R2, event ID 20499 may appear in Event Viewer”Remote Desktop Services took too long to load user configuration from the server..“. To resolve this issue, add fQueryUserConfigFromLocalMachine Registry Entry:
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 - If you have Citrix installed on your Windows host and there are many disconnected session on the VDA server, you can fix the problem by creating SeTokenDoesNotTrackSessionObject Registry Entry:
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Kernel" /v SeTokenDoesNotTrackSessionObject /t REG_DWORD /d 1 /f
- Check User Profile Service (
profsvc
) log. If you are using User Profile Disk (UPD) or FSLogix profiles on Windows Server, verify that the file server containing the profile files is available and is not experiencing performance issues. Also, when using UPD on Windows Server 2019/2016, Delete UserAppContainersOnLogoff Registry parameter that will fix issues with multiple Windows Defender Firewall rules that are generated for UWP Windows Store apps every time a user logs in.
Leave a Comment