|
1 | 1 | --- |
2 | | -title: User receives Remote Desktop Service is currently busy message on connecting |
| 2 | +title: Remote Desktop Service Is Currently Busy Message on Connecting |
3 | 3 | description: Troubleshoot the Remote Desktop Service is currently busy error when users start a remote desktop connection. |
4 | | -ms.date: 01/27/2025 |
| 4 | +ms.date: 02/08/2025 |
5 | 5 | manager: dcscontentpm |
6 | 6 | audience: itpro |
7 | 7 | ms.topic: troubleshooting |
8 | 8 | ms.reviewer: kaushika, rklemen, v-lianna |
9 | 9 | ms.custom: sap:Remote Desktop Services and Terminal Services\Session connectivity, csstroubleshoot |
10 | 10 | --- |
11 | | -# User receives "Remote Desktop Service is currently busy" message on connecting |
| 11 | + |
| 12 | +# "Remote Desktop Service is currently busy" message during RDP connections |
12 | 13 |
|
13 | 14 | This article provides guidance on troubleshooting the "Remote Desktop Service is currently busy" message encountered during Remote Desktop Protocol (RDP) connections. |
14 | 15 |
|
15 | 16 | ## Initial triage troubleshooting |
16 | 17 |
|
17 | | -To begin troubleshooting, an important test is to access the affected computer by using the console (Either through a physical console locally, or, when you're using a virtual machine (VM), through the Hypervisor's VM console.) |
| 18 | +To begin troubleshooting, an important test is to access the affected computer by using the console (either a local physical console or, when you're using a virtual machine (VM), the hypervisor's VM console). |
18 | 19 |
|
19 | | -It isn't expected to receive the "Remote Desktop Service is currently busy" error message during the test because we aren't using RDP. The test helps us find whether we have other types of issue during the logon. For example, a different error message, a slow logon or any other type of abnormal behavior. |
| 20 | +You aren't expected to receive the "Remote Desktop Service is currently busy" error message during the test because you aren't using RDP. The test helps find out if there are other types of issues during the logon, such as a different error message, a slow logon, or any other type of abnormal behavior. |
20 | 21 |
|
21 | 22 | If you encounter any other issues while logging in via the console, such as different error messages or unexpected behaviors, it likely indicates that the "Remote Desktop Service is currently busy" error is caused by another underlying issue on the system. We strongly recommend addressing the underlying issue before troubleshooting RDP. |
22 | 23 |
|
23 | 24 | > [!NOTE] |
24 | | -> In case we're using Hyper-V console to access the computer, make sure to use **Basic session** to do the test. This is because **Enhanced session** relies on RDP and we might receive the same "Remote Desktop Service is currently busy" message. |
| 25 | +> If you're using the Hyper-V console to access the computer, make sure to use the **Basic session** to do the test. This is because the **Enhanced session** relies on RDP and you might receive the same "Remote Desktop Service is currently busy" message. |
25 | 26 | > |
26 | | -> If we find the issue occurs when using console, and confirmed that the issue isn't RDP related, some of the troubleshooting steps in this article such as RDP server memory issue might still be helpful to troubleshoot the overall system performance issues. |
| 27 | +> If you find the issue occurs when using console and confirm that the issue isn't RDP-related, some of the troubleshooting steps in this article, such as RDP server memory issues, might still be helpful to troubleshoot the overall system performance issues. |
27 | 28 |
|
28 | | -## RDP server memory issue |
| 29 | +## RDP server memory issues |
29 | 30 |
|
30 | 31 | To troubleshoot this issue further, first try to restart the target computer. |
31 | 32 |
|
32 | | -If restarting the computer temporarily solves the issue, but the issue reoccurs later, this might indicate a memory leak or other types of leaks, such as session leak, token leak and so on. |
| 33 | +If restarting the computer temporarily solves the issue, but the issue reoccurs later, its might indicate a memory leak or other types of leaks, such as session leaks or token leaks. |
33 | 34 |
|
34 | | -A potential workaround without restarting the whole system is to restart the Remote Desktop service. If it solves the issue, it might indicate an issue with the service. You need to verify whether the service is indeed consuming an unusual or abnormal amount of memory. |
| 35 | +A potential workaround without restarting the whole system is to restart the Remote Desktop Services (RDS) service. If it solves the issue, it might indicate an issue with the service. You need to verify whether the service consumes an unusual or abnormal amount of memory. |
35 | 36 |
|
36 | 37 | > [!NOTE] |
37 | | -> Restarting RDS service disconnects all current users that are connected via RDP. The sessions are maintained though, and users might reconnect to their sessions. |
| 38 | +> Restarting the RDS service disconnects all current users that are connected via RDP. The sessions are maintained, though, and users might reconnect to their sessions. |
38 | 39 |
|
39 | 40 | ### Memory leaks |
40 | 41 |
|
41 | | -Monitor if there's another service or process with unusual memory consumption. If so, restarting the service or killing the process is also a good troubleshooting step and possible workaround. |
| 42 | +Monitor if there's another service or process that consumes unusual memory. If so, restarting the service or killing the process is also a good troubleshooting step and possible workaround. |
42 | 43 |
|
43 | 44 | > [!NOTE] |
44 | 45 | > Leaks are often caused by non-Microsoft software. Without proper data capture and a support case opened with Microsoft, it's difficult to pinpoint the cause. |
45 | 46 | > |
46 | | -> Testing by gradually uninstalling different software and monitoring if the issue stops can be a good approach. Also, ensure all non-Microsoft software is updated. |
| 47 | +> A good approach to testing is gradually uninstalling different software and monitoring if the issue stops. Also, ensure all non-Microsoft software is updated. |
47 | 48 | > |
48 | | -> If we confirm the issue does occur only via RDP, it's advisable to uninstall any non-Microsoft software that interacts with the RDP stack. |
| 49 | +> If you confirm the issue does occur only via RDP, it's advisable to uninstall any non-Microsoft software that interacts with the RDP stack. |
49 | 50 |
|
50 | 51 | ### Session leaks |
51 | 52 |
|
52 | | -Another common reason for this type of memory growing issue after system restart is session leaks. In this situation, looking at resource consumption (such as looking for high memory or CPU consumption in Task Manager) does not show anything obvious because the issue is occurring "under the hood" on the system. |
| 53 | +Another common reason for this type of memory-growing issue after a system restart is session leaks. In this situation, looking at resource consumption (such as looking for high memory or CPU consumption in Task Manager) doesn't show anything obvious because the issue is occurring "under the hood" on the system. |
53 | 54 |
|
54 | | -There may be several different reasons for session leak, but it's common that the leak is caused by non-Microsoft software. Particularly, it's very commonly caused by security software (such as antivirus or endpoint protection software) or other types of software that may interact with RDP user sessions. |
| 55 | +There might be several reasons for a session leak, but it's common that the leak is caused by non-Microsoft software. Particularly, it's very commonly caused by security software (such as antivirus or endpoint protection software) or other types of software that might interact with RDP user sessions. |
55 | 56 |
|
56 | 57 | > [!NOTE] |
57 | | -> Stopping the software doesn't have the same effect as totally uninstalling it from the system, because there might still be modules loaded, hooks to the system’s components, and so on. |
| 58 | +> Stopping the software doesn't have the same effect as totally uninstalling it from the system because there might still be modules loaded, hooks to the system's components, and so on. |
58 | 59 |
|
59 | | -If the issue is temporarily solved with a system restart, monitor if a certain process is consuming an unusual amount of memory and if the memory consumption is growing over time. |
| 60 | +If the issue is temporarily solved with a system restart, monitor if a certain process consumes an unusual amount of memory and if the memory consumption grows over time. |
60 | 61 |
|
61 | 62 | ## GPO troubleshooting |
62 | 63 |
|
63 | | -Hardening on the system, configured via GPO, might also be a possible reason. |
| 64 | +Hardening on the system, configured via Group Policy Object (GPO), might also be a possible reason. |
64 | 65 |
|
65 | | -To troubleshoot the issue, identify and remove related GPOs to test and monitor if the issue reoccurs. For example, RDS related GPOs or hardening GPOs such as changes made to "User Rights Assignment" Security policies. |
| 66 | +To troubleshoot the issue, identify and remove the related GPOs to test and monitor if the issue reoccurs. For example, RDS-related GPOs or hardening GPOs, such as changes made to "User Rights Assignment" security policies. |
66 | 67 |
|
67 | | -If possible, try to remove all GPOs from the system without that causing technical or security implications. This solution is a good test to narrow down if it's a GPO causing the RDP issue. |
| 68 | +If possible, try to remove all GPOs from the system without causing technical or security implications. This solution is a good test to determine whether a GPO is causing the RDP issue. |
68 | 69 |
|
69 | | -We can also check the "GroupPolicy" event logs to understand if there might be any GPO failing to be processed, or if there’s a global issue with GPService. Both of them can be the cause of the RDP issue. |
| 70 | +You can also check the "GroupPolicy" event logs to see if any GPOs can't be processed or if there's a global issue with the Group Policy Client service (gpsvc). Both of them can be the cause of the RDP issue. |
70 | 71 |
|
71 | 72 | ## Data collection |
72 | 73 |
|
73 | | -Even if we identify a certain process or service that consumes too much memory, we might unlikely know what the root cause is. For unresolved issues, data collection is critical for complex analysis. Here are steps for preparing data before contacting Microsoft support. |
| 74 | +Even if you identify a certain process or service that consumes too much memory, you might not know the root cause. For unresolved issues, data collection is critical for complex analysis. Here are the steps for preparing data before contacting Microsoft support. |
74 | 75 |
|
75 | | -### Traces capture using TSS tool |
| 76 | +### Capture traces using the TSS tool |
76 | 77 |
|
77 | | -1. Download the latest version of the TSS tool from [https://aka.ms/GeTSS](https://aka.ms/GeTSS) |
| 78 | +1. Download the latest version of the TroubleShootingScript (TSS) tool from [https://aka.ms/getTSS](https://aka.ms/getTSS) |
78 | 79 | 2. Extract it to the RDP client computer (source) and the RDP server (target). |
79 | 80 |
|
80 | 81 | > [!NOTE] |
81 | | - > In scenarios of a full RDS deployment, although the system displaying the "Remote Desktop Service is currently busy" message is the most important for data capture, we should collect data from all systems involved in the connection flow, including the RD Connection Broker and RD Gateway. |
| 82 | + > In scenarios of a full RDS deployment, although the system displaying the "Remote Desktop Service is currently busy" message is the most important for data capture, you should collect data from all systems involved in the connection flow, including the RD Connection Broker and RD Gateway. |
82 | 83 |
|
83 | | -3. Launch a PowerShell prompt on both systems and run the following commands, respectively: |
| 84 | +3. Open a PowerShell prompt on both systems and run the following commands respectively: |
84 | 85 |
|
85 | | - On RDP client: |
| 86 | + On the RDP client: |
86 | 87 |
|
87 | 88 | ```console |
88 | 89 | .\TSS.ps1 -Scenario UEX_RDSCli |
89 | 90 | ``` |
90 | 91 |
|
91 | | - On RDP server: |
| 92 | + On the RDP server: |
92 | 93 |
|
93 | 94 | ```console |
94 | 95 | .\TSS.ps1 -Scenario UEX_RDSSrv |
95 | 96 | ``` |
96 | 97 |
|
97 | | -4. Wait for the message that states to **Reproduce the issue now**. |
98 | | -5. Reproduce the connection until we get the "Remote Desktop Service is currently busy" error. |
99 | | -6. Stop the traces at this stage, by pressing the requested key. |
100 | | -7. Collect the data from the location where the tool prompts. |
101 | | -8. Gather the data from the location specified by the tool. (usually C:\MS_DATA). |
| 98 | +4. Wait for the "Reproduce the issue now" message to appear. |
| 99 | +5. Reproduce the connection until you receive the "Remote Desktop Service is currently busy" error. |
| 100 | +6. Stop the traces at this stage by pressing the requested key. |
| 101 | +7. Gather the data from the location specified by the tool. (usually **C:\MS_DATA**). |
102 | 102 |
|
103 | | -### Full memory dump |
| 103 | +### Complete memory dump |
104 | 104 |
|
105 | | -We should take a full memory dump when the system is in the affected state and while reproducing an RDP connection that generates the "Remote Desktop Service is currently busy" error message. |
| 105 | +You should take a complete memory dump when the system is affected while reproducing an RDP connection that generates the "Remote Desktop Service is currently busy" error message. |
106 | 106 |
|
107 | 107 | > [!NOTE] |
108 | | -> Keep the connection with the error "Remote Desktop Service is currently busy" open while taking the dump. |
| 108 | +> Keep the connection with the "Remote Desktop Service is currently busy" error open while taking the dump. |
109 | 109 |
|
110 | | -Note down what was the user account used to reproduce this connection. |
| 110 | +Note down the user account used to reproduce this connection. |
111 | 111 |
|
112 | | -#### Capture dump on a hypervisor or VM scenario |
| 112 | +#### Capture dumps in a hypervisor or VM scenario |
113 | 113 |
|
114 | | -- Take a snapshot to the VM with "full memory" option selected, if the hypervisor provides this option. At the time the dump is be taken (as described above). |
115 | | -- Convert the snapshot to a full memory dump. |
| 114 | +- Take a snapshot of the VM with the **Complete memory dump** option selected, if the hypervisor provides this option, when taking the dump (as described earlier). |
| 115 | +- Convert the snapshot to a complete memory dump. |
116 | 116 |
|
117 | 117 | > [!NOTE] |
118 | | -> Each hypervisor manufacturer uses different tools and methods to convert the snapshot to full dump. Check the support documentation of that hypervisor vendor on how to perform this conversion. |
119 | | -
|
120 | | -#### Capture dump on physical system |
| 118 | +> Each hypervisor manufacturer uses different tools and methods to convert the snapshot to a complete dump. For instructions on how to perform this conversion, check the support documentation of that hypervisor vendor. |
121 | 119 |
|
122 | | -Follow the steps described on the following article: |
| 120 | +#### Capture dumps on a physical system |
123 | 121 |
|
124 | | -[Generate a kernel or complete crash dump](../../windows-client/performance/generate-a-kernel-or-complete-crash-dump.md) |
| 122 | +Follow the steps described in [Generate a kernel or complete crash dump](../../windows-client/performance/generate-a-kernel-or-complete-crash-dump.md). |
125 | 123 |
|
126 | 124 | ### Possible additional data |
127 | 125 |
|
128 | | -There are different types of data that can be captured depending on the situations discussed in this article. For example, if a specific process or service shows growing memory consumption, a specific Windows Performance Recorder (WPR) capture should be performed to capture the heap memory consumption of that process. However, Microsoft support will inform you of any extra data that might need to be captured after the initial analysis, based on the situation we're facing. |
| 126 | +Different types of data can be captured depending on the situations discussed in this article. For example, if a specific process or service shows increasing memory consumption, a specific Windows Performance Recorder (WPR) capture should be performed to capture the heap memory consumption of that process. However, Microsoft support will inform you of any extra data that might need to be captured after the initial analysis based on your situation. |
0 commit comments