Windows users sometimes experience error message such as "remote desktop services is currently busy" in the process of connecting to a Window Server via RDP.
Here at Ibmi Media, as part of our Server Management Services, we regularly help our Customers to fix Windows related issues.
Now, let us look into what causes this issue and how to get rid of it.
What triggers RDP error "remote desktop services is currently busy"?
When this error occurs, you will see an error message such as;
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.
Different factors can lead to this issue such as;
i. Problem with the Remote Desktop Services operations.
ii. Due to bug in the csrss.exe process.
iii. Issues with the profsvc service or the user profile.
iv. Incorrect Group Policy settings.
v. Lack of disk space or low Ram on the RDSH server.
Now let us look into different methods to solve this error.
How to fix RDP error "remote desktop services is currently busy"?
Checking the RDS Server resources
It is important to check the status of your server resources since Lack of RAM or disk space can trigger this error.
Also check the event log to see if there are any critical errors relating to RDS.
Resetting Stuck Client Remote Desktop Session on RDS
To begin, find and reset a session of the user who cannot log on to the RDS Server.
Also find a user in the Users tab of the Task Manager and click Log off in the context menu.
Sometimes, 4 different processes are available in the hung RDS user session as listed below;
i. Client-Server Runtime Process (csrss.exe)
ii. Desktop Windows Manager (dwm.exe)
iii. Windows Logon Application (winlogon.exe)
iv. Windows Logon User Interface
Now, try to reset all hung (4 RDS sessions in the Task Manager). You can also reboot the server.
To fix this issue without rebooting the server, run the command as shown below;
SESSIONNAME USERNAME ID STATE TYPE DEVICE
services 0 Disc
rdp-tcp#5 bob 2 Active
console 3 Conn
7a78855482a04... 65536 Listen
rdp-tcp 65537 Listen
All Users and their remote sessions on the RDS host will be displayed. You will see 3 columns as, SESSIONNAME, USERNAME and ID respectively.
Now find the (4) user and the corresponding ID, in this example, it is ID 2. We must kill the csrss.exe process that is working in this session.
Next, display the list of the running process in the session ID we received earlier as shown below;
C:\>query process /id 2
USERNAME SESSIONNAME ID PID IMAGE
>system rdp-tcp#5 2 5140 csrss.exe
>system rdp-tcp#5 2 956 winlogon.exe
>umfd-2 rdp-tcp#5 2 2796 fontdrvhost.exe
>dwm-2 rdp-tcp#5 2 5888 dwm.exe
Look for the csrss.exe process (check the IMAGE column) and its PID. In this case, the PID is 5140. We need to kill this process.
Now, Open the Task Manager, go to the Details tab and find the PID and the process from the previous step.
If the PID we need corresponds to the csrss.exe process, kill the process by clicking End task in the context menu or by entering the following command in the command prompt;
taskkill /F /PID 5140
Now do the same for each (4) user.
Resetting an RDS User Session
If you have issues logging off a problem user in the Task Manager, then perform a reset of the RDS user session from the command prompt.
Now, open the command prompt as an administrator and run the command as shown below;
Then copy the "SESSIONNAME" of the problem user.
You have to enter as shown below;
reset session <SESSIONNAME>
Note that "<sessionname>" represents the session name.
You have to do it for each problem RDS user session.
You can try to log on and this problem should be fixed.
Checking the Licensing Settings on the RDS Host
Ensure that the license server and license type (CAL Per User/ CAL Per Device) specified on the RDS host are accurate.
The error 'The task we are trying to do can't be completed because Remote Desktop Services is currently busy’ can be triggered if you forget to specify the hostname/IP address of the server with the Remote Desktop Licensing role.
To specify the address of the server with RDS licenses, do the following;
i. In the RDS collection settings, navigate through "Tasks -> Edit Deployment Properties -> RD Licensing -> Specify a license server".
ii. In GPO, it is recommended to use the specified Remote Desktop license servers (Computer Configuration -> Policies -> Admin Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Licensing).
Removing the RDP Connection Limit in GPO
With the Group Policies, you can set a limit the number of concurrent (simultaneous) RDS connections. By default, this policy setting is disabled.
Ensure that if the policy is enabled and get its value using gpresult. The do the following;
i. First run the following command in the elevated command prompt;
gpresult /H c:\gpresult.html
ii. Now, open the gpresult.html file located in the root of disk C. This is a common .html file and it is recommended to open it in Internet Explorer as it may be displayed incorrectly in other browsers due to compatibility concerns.
iii. Locate the GPO setting named "Limit number of connections" under (Computer Configuration -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host\Connections) or type "Limit number of connections" to search on page.
When you enable the policy and set the Maximum amount of connections, then change as per you needs.
We can also modify a local Group Policy Editor (gpedit.msc), and if the policy is set using domain GPO, edit it in "gpmc.msc".
Do not forget to run the command "gpupdate /force" to apply the new Group Policy settings instantly.