RDP(원격 데스크톱 프로토콜)(Remote Desktop Protocol (RDP)) 는 네트워크 연결을 통해 다른 컴퓨터에 연결할 수 있는 그래픽 인터페이스를 사용자에게 제공하는 Microsoft 에서 개발한 독점 프로토콜입니다 .사용자 는 이를 위해 RDP 클라이언트 소프트웨어를 사용하고 다른 컴퓨터는 (RDP)RDP 서버 소프트웨어를 실행해야 합니다. 이 게시물에서는 Windows 11/10에서 일반적인 원격 데스크톱 연결 문제(troubleshoot general Remote Desktop connection issues) 를 해결 하는 방법을 살펴보겠습니다 .
원격 데스크톱(Fix Remote Desktop) 연결 문제 수정
원격 데스크톱 클라이언트가 작동(Remote Desktop client is not working) 하지 않거나 원격 데스크톱에 연결할 수(cannot connect to a remote desktop) 없지만 원인을 식별하는 데 도움이 되는 메시지 또는 기타 증상을 제공하지 않는 경우 아래에 설명된 문제 해결 단계를 시도하십시오 .
1] 로컬 컴퓨터 에서 RDP 프로토콜 상태 확인(Check)
로컬 컴퓨터에서 RDP 프로토콜 의 상태를 확인하고 변경하려면 원격 데스크톱(enable Remote Desktop) 을 활성화해야 합니다. 명령 프롬프트 또는 PowerShell을 사용하여 원격 데스크톱을 활성화(enable Remote Desktop using Command Prompt or PowerShell) 할 수도 있습니다 .
2] 원격 컴퓨터 에서 RDP 프로토콜 상태 확인(Check)
원격 컴퓨터에서 RDP 프로토콜 의 상태를 확인하고 변경하려면 네트워크 레지스트리 연결을 사용하십시오.
레지스트리 작업이므로 필요한 예방 조치로 레지스트리를 백업(back up the registry) 하거나 시스템 복원 지점을 만드는 것이 좋습니다. 완료되면 다음과 같이 진행할 수 있습니다.
- Windows 키 + R을 눌러 실행 대화(Run) 상자를 불러옵니다.
- 실행 대화 상자에서 입력
regedit
하고 Enter 키를 눌러 레지스트리 편집기(open Registry Editor) 를 엽니다 . - 레지스트리 편집기에서 파일(File) 을 선택한 다음 네트워크 레지스트리 연결(Connect Network Registry) 을 선택합니다 .
- 컴퓨터 선택(Select Computer) 대화 상자에서 원격 컴퓨터의 이름을 입력합니다 .
- 이름 확인을(Check Names.) 선택 합니다.
- 확인 을 선택 합니다(OK) .
- 그런 다음 아래 레지스트리 키 경로 로 이동하거나 이동 합니다.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server
- 위치의 오른쪽 창에서 fDenyTSConnections 키를 두 번 클릭하여 속성을 편집합니다.
- RDP 를 활성화하려면 fDenyTSConnections 의 값(Value) 데이터 를 1 에서 0 으로 설정 합니다.
값 0은 RDP 가 활성화됨을 나타내고 값 1은 RDP 가 비활성화됨을 나타냅니다.
관련(Related) : Windows 10에서 원격 데스크톱 옵션이 회색으로 표시됩니다 .(Remote Desktop option is greyed out)
3] 그룹 정책 개체(Group Policy Object) ( GPO )가 로컬 컴퓨터에서 RDP 를 차단 하는지 확인(Check)
사용자 인터페이스 에서 RDP 를 켤 수 없거나 변경한 후 fDenyTSConnections 값이 (fDenyTSConnections)1 로 되돌아 가면 GPO 가 컴퓨터 수준 설정을 재정의할 수 있습니다.(GPO)
로컬 컴퓨터에서 그룹 정책 구성을 확인하려면 다음을 수행하십시오.
gpresult /H c:\gpresult.html
- 명령이 실행되면 gpresult.html을 엽니다.
- Computer Configuration\Administrative Templates\Windows Components\Remote Desktop Services\Remote Desktop Session Host\Connections 연결 에서 사용자가 원격 데스크톱 서비스를 사용하여 원격으로 연결할 수 있도록 허용(Allow users to connect remotely by using Remote Desktop Services) 정책을 찾습니다 .
이 정책에 대한 설정이 Enabled 이면 그룹 정책 이 (Group Policy)RDP 연결 을 차단하지 않습니다 . 이 정책에 대한 설정이 Disabled 이면 Winning GPO 를 선택 합니다. RDP 연결 을 차단 하는 GPO 입니다.(GPO)
4] GPO 가 원격 컴퓨터에서 RDP 를 차단 하는지 확인(Check)
원격 컴퓨터에서 그룹 정책(Group Policy) 구성 을 확인하려면 관리자 권한 CMD 프롬프트 에서 아래 명령을 실행하십시오 .
gpresult /S <computer name> /H c:\gpresult-<computer name>.html
이 명령이 생성하는 파일( gpresult-<computer name>.htmlgpresult.html ) 에서 사용하는 것과 동일한 정보 형식을 사용합니다.
5] 차단 GPO 수정
GPE ( 그룹 정책 개체 편집기(Group Policy Object Editor) ) 및 GPMC(그룹 정책 관리 콘솔 ) 에서 이러한 설정을 수정할 수 있습니다 .
차단 정책을 수정하려면 다음 방법 중 하나를 사용하십시오.
GPE를 사용하여 다음을 수행합니다.
- Windows key + R 을 눌러 실행 대화 상자를 불러옵니다.
- 실행 대화 상자에 입력
gpedit.msc
하고 Enter 키를 눌러 그룹 정책 편집기(open Group Policy Editor) 를 엽니다 . - 로컬 그룹 정책 편집기(Local Group Policy Editor) 내 에서 왼쪽 창을 사용하여 아래 경로로 이동합니다.
Computer Configuration > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Connections
- 위치의 오른쪽 창에서 사용자가 원격 데스크톱 서비스를 사용하여 원격으로 연결할 수 있도록 허용(Allow users to connect remotely by using Remote Desktop Services) 을 두 번 클릭하여 속성을 편집합니다.
- 정책을 사용(Enabled) 또는 구성되지 않음(Not configured) 으로 설정합니다 .
- 적용(Apply) > 확인(OK) 을 클릭 하고 종료합니다.
- 영향을 받는 컴퓨터에서 관리자로 명령 프롬프트 창을 열고 아래 명령을 실행합니다.
gpupdate /force
GPMC 를 사용 하여 차단 정책이 영향을 받는 컴퓨터에 적용되는 OU(조직 구성 단위)로 이동하고 OU에서 정책을 삭제합니다.
6] RDP 서비스 상태 확인(Check)
로컬(클라이언트) 컴퓨터와 원격(대상) 컴퓨터 모두에서 다음 서비스가 실행 중이어야 합니다.
- 원격 데스크톱 서비스(Remote Desktop Services) ( TermService )
- 원격 데스크톱 서비스 사용자 모드 포트 리디렉터(Remote Desktop Services UserMode Port Redirector) ( UmRdpService )
두 컴퓨터 중 하나 또는 두 서비스가 모두 실행되고 있지 않으면 시작합니다.
다음을 수행합니다.
- Windows key + R 을 눌러 실행 대화 상자를 불러옵니다.
- 실행 대화 상자에서 입력
services.msc
하고 Enter 키를 눌러 서비스를 엽니다(open Services) . - 서비스(Services) 창에서 스크롤 하여 앞서 언급한 두 서비스를 모두 찾습니다.
- 항목을 두 번 클릭(Double-click) 하여 속성을 편집합니다.
- 속성 창에서 시작(Start) 버튼을 클릭합니다.
- 확인(OK) 을 클릭 합니다.
또한 PowerShell 을 사용하여 서비스를 로컬 또는 원격으로 관리할 수 있습니다(원격 컴퓨터가 원격 PowerShell cmdlet을 허용하도록 구성된 경우).
7] RDP 리스너 상태 확인(Check)
동일한 cmdlet이 로컬 및 원격에서 모두 작동하기 때문에 이 절차에서는 PowerShell 을 사용합니다. (PowerShell)로컬 컴퓨터의 경우 관리 권한이 있는 명령 프롬프트를 사용할 수도 있습니다.
원격 컴퓨터에 연결하려면 다음을 수행하십시오.
- Windows key + X 를 눌러 고급 사용자 메뉴(open Power User Menu) 를 엽니다 .
- 키보드에서 A 를 탭 하여 관리자/고급 모드에서 PowerShell을 시작 합니다.
- PowerShell 콘솔 에서 아래 명령을 입력하고 Enter 키를 누릅니다 .
Enter-PSSession -ComputerName <computer name>
위의 이미지와 같이 목록에 Listen 상태의 rdp-tcp 가 포함되어 있으면 RDP 수신기가 작동하는 것입니다. 아래 의 문제 해결 단계 10] 으로 (Troubleshooting step 10])이동(Jump) 합니다. 그렇지 않으면 작동 중인 컴퓨터에서 (Otherwise)RDP 수신기 구성 을 내 보내야 합니다.
다음을 수행합니다.
- 영향을 받는 컴퓨터와 운영 체제 버전이 동일한 컴퓨터에 로그인하고 해당 컴퓨터의 레지스트리에 액세스합니다.
- (Navigate)다음 레지스트리 항목으로 이동 하거나 이동합니다.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
- 항목을 .reg 파일로 내보냅니다(Export the entry to a .reg file) .
- 내보낸 .reg 파일을 영향을 받는 컴퓨터에 복사합니다.
- RDP 수신기 구성 을 가져오려면 영향을 받는 컴퓨터에 대한 관리 권한이 있는 PowerShell 창을 엽니다(또는 (PowerShell)PowerShell 창을 열고 영향을 받는 컴퓨터에 원격으로 연결).
기존 레지스트리 항목을 백업하려면(To back up the existing registry entry) 다음 cmdlet을 입력합니다.
cmd /c 'reg export "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-tcp" C:\Rdp-tcp-backup.reg'
기존 레지스트리 항목을 제거하려면(To remove the existing registry entry) 다음 cmdlet을 입력합니다.
Remove-Item -path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-tcp' -Recurse -Force
새 레지스트리 항목을 가져온 다음 서비스를 다시 시작하려면(To import the new registry entry and then restart the service) 아래 cmdlet을 실행하십시오. <filename>
자리 표시자를 내보낸 .reg 파일 의 이름으로 바꿉니다 .
cmd /c 'regedit /s c:\<filename>.reg'
Restart-Service TermService -Force
cmdlet 실행이 완료되면 원격 데스크톱 연결을 다시 시도하여 구성을 테스트할 수 있습니다. 여전히 연결할 수 없으면 영향을 받는 컴퓨터를 다시 시작합니다.
여전히 연결할 수 없으면 다음 문제 해결 단계를 진행 하여 RDP 자체 서명 인증서의 상태를 확인합니다(check the status of the RDP self-signed certificate) .
8] RDP 자체 서명 인증서 상태 확인(Check)
여전히 연결할 수 없으면 다음을 수행하십시오.
- Windows key + R 을 눌러 실행 대화 상자를 불러옵니다.
- 실행 대화 상자에서 입력
mmc
하고 Enter 키를 눌러 Microsoft Management Console(open Microsoft Management Console) 을 엽니다 . - 파일(File) 메뉴를 클릭 합니다.
- Add/Remove Snap-in 선택 합니다.
- (Certificates)(Select Certificates)스냅인 목록에서 인증서 를 선택 합니다.
- 추가(Add) 를 클릭 합니다.
- 관리할 인증서 저장소를 선택하라는 메시지가 표시되면 컴퓨터 계정을 선택합니다.(Computer account.)
- 다음(Next) 을 클릭 합니다.
- 영향을 받는 컴퓨터를 선택합니다.
- 마침(Finish) 버튼을 클릭 합니다.
- 확인(OK) 을 클릭 합니다.
- 이제 원격 데스크톱 아래의 (Remote Desktop)인증서(Certificates) 폴더에서 RDP 자체 서명 인증서 를 삭제합니다 .
- 영향을 받는 컴퓨터에서 원격 데스크톱 서비스(Remote Desktop Services) 서비스를 다시 시작합니다.
- 인증서 스냅인을 새로 고칩니다.
- RDP 자체 서명 인증서가 다시 생성되지 않은 경우 MachineKeys 폴더의 권한을 확인 하십시오(MachineKeys) .
9] MachineKeys 폴더 의 권한 확인(Check)
영향을 받는 컴퓨터에서 다음을 수행합니다.
- Windows key + E 를 눌러 파일 탐색기(open File Explorer) 를 엽니다 .
- 아래 디렉터리 경로로 이동합니다.
C:\ProgramData\Microsoft\Crypto\RSA\
- 위치에서 MachineKeys(MachineKeys) 를 마우스 오른쪽 버튼으로 클릭 하고 속성(Properties) , 보안 , (Security)고급(Advanced) 을 차례로 선택 합니다 .
(Make)다음 권한이 구성되어 있는지 확인 하십시오.
- 내장 관리자: 모든 권한(Full control)
- 모두: 읽기, 쓰기(Read, Write)
10] RDP 리스너 포트 확인
로컬(클라이언트) 컴퓨터와 원격(대상) 컴퓨터 모두에서 RDP 수신기는 포트 3389에서 수신 대기해야 합니다. 다른 응용 프로그램은 이 포트를 사용해서는 안 됩니다.
RDP 포트 를 확인하거나 변경하려면 레지스트리 편집기(Registry Editor) 를 사용하십시오 . 예방 조치로 레지스트리를 백업하거나 시스템 복원 지점을 만든 후 다음과 같이 계속하십시오.
- 레지스트리 편집기를 열고 파일(File) 을 선택한 다음 네트워크 레지스트리 연결(Connect Network Registry) 을 선택합니다 .
- 컴퓨터 선택(Select Computer) 대화 상자에서 원격 컴퓨터의 이름을 입력합니다 .
- 이름 확인을(Check Names.) 선택 합니다.
- 확인 을 선택 합니다(OK) .
- 그런 다음 아래 레지스트리 키 경로 로 이동하거나 이동 합니다.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
- 위치의 오른쪽 창에서 PortNumber 항목을 두 번 클릭하여 속성을 편집합니다.
- 속성 창에서 값(Value) 데이터 필드에 3389 이외의 값이 있으면 3389 로 변경합니다 .(3389.)
- 확인(OK) 을 클릭 하여 변경 사항을 저장합니다.
- 원격 데스크톱 서비스(Remote Desktop Services) 서비스를 다시 시작합니다 .
11] 다른 애플리케이션이 동일한 포트를 사용하고 있지 않은지 확인(Check)
다음을 수행합니다.
- 관리자 모드에서 PowerShell을 엽니다.
- 원격 컴퓨터에 연결하려면 아래 명령을 실행하십시오.
Enter-PSSession -ComputerName <computer name>
다음으로 다음 명령을 실행합니다.
cmd /c 'netstat -ano | find "3389"'
- (Look)상태가 Listening 인 (Listening)TCP 포트 3389(또는 할당된 RDP 포트) 에 대한 항목을 찾습니다 .
참고(Note) : 해당 포트를 사용하는 프로세스 또는 서비스 의 프로세스 식별자( PID )는 (PID)PID 열 아래에 나타납니다.
- 포트 3389(또는 할당된 RDP 포트)를 사용하는 애플리케이션을 확인하려면 다음 명령을 입력하십시오.
cmd /c 'tasklist /svc | find "<pid listening on 3389>"'
- (Look) ( 출력 에서) 포트와 연관된 PID 번호 에 대한 항목을 찾으십시오 .
netstat
해당 PID 와 연결된 서비스 또는 프로세스가 오른쪽 열에 나타납니다. - 원격 데스크톱 서비스(Remote Desktop Services) ( TermServ.exe ) 이외의 응용 프로그램이나 서비스 가 포트를 사용하는 경우 다음 방법 중 하나를 사용하여 충돌을 해결할 수 있습니다.
다른 포트를 사용하도록 다른 애플리케이션 또는 서비스를 구성합니다(권장).
다른 응용 프로그램 또는 서비스를 제거합니다.
다른 포트를 사용하도록 RDP(RDP) 를 구성한 다음 원격 데스크톱 서비스(Remote Desktop Services) 서비스 를 다시 시작합니다 (권장하지 않음).
12] 방화벽이 RDP 포트 를 차단하고 있는지 확인(Check)
psping 도구를 사용 하여 포트 3389를 사용하여 영향을 받는 컴퓨터에 연결할 수 있는지 테스트할 수 있습니다.
다음을 수행합니다.
- 영향을 받지 않는 다른 컴퓨터로 이동하여 psping 을 (psping)다운로드 합니다 (download) .
- 관리자 권한으로 명령 프롬프트 창을 열고 psping 을 설치한 디렉터리로 변경 한 후 다음 명령을 입력합니다.
psping -accepteula <computer IP>:3389
- 다음과 같은 결과 에 대한 psping 명령 의 출력을 확인하십시오 .
Connecting to <computer IP> 중 : 원격 컴퓨터에 연결할 수 있습니다.
(0% loss) : 모든 연결 시도가 성공했습니다.
원격 컴퓨터가 네트워크 연결을 거부했습니다(The remote computer refused the network connection) . 원격 컴퓨터에 연결할 수 없습니다.
(100% loss) : 모든 연결 시도가 실패했습니다.
- 여러 컴퓨터에서 psping(psping) 을 실행 하여 영향을 받는 컴퓨터에 연결하는 능력을 테스트합니다.
- 영향을 받는 컴퓨터가 다른 모든 컴퓨터, 일부 다른 컴퓨터 또는 다른 컴퓨터 한 대의 연결만 차단하는지 확인합니다.
취할 수 있는 추가 단계는 다음과 같습니다.
- 네트워크 관리자에게 문의하여 네트워크에서 영향을 받는 컴퓨터에 대한 RDP(RDP) 트래픽을 허용하는지 확인하십시오 .
- 원본 컴퓨터와 영향을 받는 컴퓨터(영향을 받는 컴퓨터의 Windows 방화벽(Windows Firewall) 포함) 간의 방화벽 구성을 조사하여 방화벽이 RDP 포트 를 차단하고 있는지 확인합니다 .
이 게시물이 발생할 수 있는 RDP 연결 문제를 성공적으로 해결하는 데 도움이 되기를 바랍니다!
Fix Remote Desktop connection issues & errors on Windows 11/10
Remote Desktop Protocol (RDP) is a proprietary protocol developed by Microsoft which provides a user with a graphical interface to connect to another computer over a network connection. The user employs RDP client software for this purpose, while the other computer must run RDP server software. In this post, we will explore how to troubleshoot general Remote Desktop connection issues on Windows 11/10.
Fix Remote Desktop connection issues
Try the outlined troubleshooting steps below when a Remote Desktop client is not working or cannot connect to a remote desktop but doesn’t provide messages or other symptoms that would help identify the cause.
1] Check the status of the RDP protocol on a local computer
You’ll need to enable Remote Desktop to check and change the status of the RDP protocol on a local computer. You can also enable Remote Desktop using Command Prompt or PowerShell.
2] Check the status of the RDP protocol on a remote computer
To check and change the status of the RDP protocol on a remote computer, use a network registry connection.
Since this is a registry operation, it is recommended that you back up the registry or create a system restore point as necessary precautionary measures. Once done, you can proceed as follows:
- Press Windows key + R to invoke the Run dialog.
- In the Run dialog box, type
regedit
and hit Enter to open Registry Editor. - In the Registry Editor, select File, then select Connect Network Registry.
- In the Select Computer dialog box, enter the name of the remote computer.
- Select Check Names.
- Select OK.
- Next, navigate or jump to the registry key path below:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server
- At the location, on the right pane, double-click the fDenyTSConnections key to edit its properties.
- To enable RDP, set the Value data of fDenyTSConnections from 1 to 0.
The value of 0 indicates RDP is enabled, while the value of 1 indicates RDP is disabled.
Related: Remote Desktop option is greyed out on Windows 10,
3] Check whether a Group Policy Object (GPO) is blocking RDP on a local computer
A GPO may be overriding the computer-level settings, if you can’t turn on RDP in the user interface or the value of fDenyTSConnections reverts to 1 after you’ve changed it
To check the group policy configuration on a local computer, do the following:
- Press Windows key + R to invoke the Run dialog.
- In the Run dialog box, type
cmd
and then press CTRL + SHIFT + ENTER to open Command Prompt in admin/elevated mode. - In the command prompt window, type the command below and hit Enter.
gpresult /H c:\gpresult.html
- Once the command executes, open gpresult.html.
- In Computer Configuration\Administrative Templates\Windows Components\Remote Desktop Services\Remote Desktop Session Host\Connections, find the Allow users to connect remotely by using Remote Desktop Services policy.
If the setting for this policy is Enabled, Group Policy is not blocking RDP connections. If the setting for this policy is Disabled, check Winning GPO. This is the GPO that is blocking RDP connections.
4] Check whether a GPO is blocking RDP on a remote computer
To check the Group Policy configuration on a remote computer, run the command below in elevated CMD prompt:
gpresult /S <computer name> /H c:\gpresult-<computer name>.html
The file that this command produces (gpresult-<computer name>.html) uses the same information format as the local computer version (gpresult.html) uses.
5] Modify a blocking GPO
You can modify these settings in the Group Policy Object Editor (GPE) and Group Policy Management Console (GPMC).
To modify the blocking policy, use one of the following methods:
Using GPE, do the following:
- Press Windows key + R to invoke the Run dialog.
- In the Run dialog box type
gpedit.msc
and press Enter to open Group Policy Editor. - Inside the Local Group Policy Editor, use the left pane to navigate to the path below:
Computer Configuration > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Connections
- At the location, on the right pane, double click the Allow users to connect remotely by using Remote Desktop Services.to edit its properties.
- Set the policy to either Enabled or Not configured.
- Click Apply > OK and exit.
- On the affected computers, open a command prompt window as an administrator, and run the command below:
gpupdate /force
Using GPMC, navigate to the organizational unit (OU) in which the blocking policy is applied to the affected computers and delete the policy from the OU.
6] Check the status of the RDP services
On both the local (client) computer and the remote (target) computer, the following services should be running:
- Remote Desktop Services (TermService)
- Remote Desktop Services UserMode Port Redirector (UmRdpService)
On either computer, if one or both services are not running, start them.
Do the following:
- Press Windows key + R to invoke the Run dialog.
- In the Run dialog box, type
services.msc
and hit Enter to open Services. - In the Services window, scroll and locate both aforementioned service.
- Double-click on the entry to edit its properties.
- In the properties window, click the Start button.
- Click OK.
You can also use PowerShell to manage the services locally or remotely (if the remote computer is configured to accept remote PowerShell cmdlets).
7] Check the status of the RDP listener
This procedure uses PowerShell because the same cmdlets work both locally and remotely. For a local computer, you can also use a command prompt that has administrative permissions.
To connect to a remote computer, do the following:
- Press Windows key + X to open Power User Menu.
- Tap A on the keyboard to launch PowerShell in admin/elevated mode.
- In the PowerShell console, type in the command below and hit Enter:
Enter-PSSession -ComputerName <computer name>
If the list includes rdp-tcp with a status of Listen, as shown in the image above, the RDP listener is working. Jump to the Troubleshooting step 10] below. Otherwise, you’ll need to export the RDP listener configuration from a working computer.
Do the following:
- Sign in to a computer that has the same operating system version as the affected computer has, and access that computer’s registry.
- Navigate or jump to the following registry entry:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
- Export the entry to a .reg file.
- Copy the exported .reg file to the affected computer.
- To import the RDP listener configuration, open a PowerShell window that has administrative permissions on the affected computer (or open the PowerShell window and connect to the affected computer remotely).
To back up the existing registry entry, enter the following cmdlet:
cmd /c 'reg export "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-tcp" C:\Rdp-tcp-backup.reg'
To remove the existing registry entry, enter the following cmdlets:
Remove-Item -path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-tcp' -Recurse -Force
To import the new registry entry and then restart the service, run the cmdlets below. Replace the <filename>
placeholder with the name of the exported .reg file.
cmd /c 'regedit /s c:\<filename>.reg'
Restart-Service TermService -Force
Once done executing the cmdlets, you can test the configuration by trying the remote desktop connection again. If you still can’t connect, restart the affected computer.
If you still can’t connect, proceed with the next troubleshooting step which is to check the status of the RDP self-signed certificate.
8] Check the status of the RDP self-signed certificate
If you still can’t connect, do the following:
- Press the Windows key + R to invoke the Run dialog.
- In the Run dialog box, type
mmc
and hit Enter to open Microsoft Management Console. - Click the File menu.
- Select Add/Remove Snap-in.
- Select Certificates from the list of snap-ins.
- Click Add.
- When you are prompted to select the certificate store to manage, select Computer account.
- Click Next.
- Select the affected computer.
- Click the Finish button.
- Click OK.
- Now, in the Certificates folder under Remote Desktop, delete the RDP self-signed certificate.
- On the affected computer, restart the Remote Desktop Services service.
- Refresh the Certificates snap-in.
- If the RDP self-signed certificate has not been recreated, check the permissions of the MachineKeys folder.
9] Check the permissions of the MachineKeys folder
On the affected computer, do the following:
C:\ProgramData\Microsoft\Crypto\RSA\
- At the location, right-click MachineKeys, select Properties, select Security, and then select Advanced.
Make sure that the following permissions are configured:
- Builtin\Administrators: Full control
- Everyone: Read, Write
10] Check the RDP listener port
On both the local (client) computer and the remote (target) computer, the RDP listener should be listening on port 3389. No other applications should be using this port.
To check or change the RDP port, use the Registry Editor. As a precautionary measure back up the registry or create a system restore point, then continue as follows:
- Open Registry Editor, select File, then select Connect Network Registry.
- In the Select Computer dialog box, enter the name of the remote computer.
- Select Check Names.
- Select OK.
- Next, navigate or jump to the registry key path below:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
- At the location, on the right pane, double-click the PortNumber entry to edit its properties.
- In the properties window, if the Value data field has a value other than 3389, change it to 3389.
- Click OK to save changes.
- Restart the Remote Desktop Services service.
11] Check that another application isn’t using the same port
Do the following:
- Open a PowerShell in elevated mode.
- To connect to a remote computer, run the command below:
Enter-PSSession -ComputerName <computer name>
Next, run the following command:
cmd /c 'netstat -ano | find "3389"'
- Look for an entry for TCP port 3389 (or the assigned RDP port) with a status of Listening.
Note: The process identifier (PID) for the process or service using that port appears under the PID column.
- To determine which application is using port 3389 (or the assigned RDP port), enter the following command:
cmd /c 'tasklist /svc | find "<pid listening on 3389>"'
- Look for an entry for the PID number that is associated with the port (from the
netstat
output). The services or processes that are associated with that PID appear on the right column. - If an application or service other than Remote Desktop Services (TermServ.exe) is using the port, you can resolve the conflict by using one of the following methods:
Configure the other application or service to use a different port (recommended).
Uninstall the other application or service.
Configure RDP to use a different port, and then restart the Remote Desktop Services service (not recommended).
12] Check whether a firewall is blocking the RDP port
You can use the psping tool to test whether you can reach the affected computer by using port 3389.
Do the following:
- Go to a different computer that isn’t affected and download psping.
- Open a command prompt window as an administrator, change to the directory in which you installed psping, and then enter the following command:
psping -accepteula <computer IP>:3389
- Check the output of the psping command for results such as the following:
Connecting to <computer IP>: The remote computer is reachable.
(0% loss): All attempts to connect succeeded.
The remote computer refused the network connection: The remote computer is not reachable.
(100% loss): All attempts to connect failed.
- Run psping on multiple computers to test their ability to connect to the affected computer.
- Note whether the affected computer blocks connections from all other computers, some other computers, or only one other computer.
Additional steps you can take includes;
- Engage your network administrators to verify that the network allows RDP traffic to the affected computer.
- Investigate the configurations of any firewalls between the source computers and the affected computer (including Windows Firewall on the affected computer) to determine whether a firewall is blocking the RDP port.
Hope this post can help you successfully troubleshoot RDP connection issues you might be having!