일반 원격 데스크톱 연결 문제 해결

가상 에이전트 사용해 보기 - 일반적인 RD 세션 연결 문제를 신속하게 식별하고 해결하는 데 도움이 될 수 있습니다.

원격 데스크톱 클라이언트가 원격 데스크톱에 연결할 수 없지만 원인을 식별하는 데 도움이 되는 메시지 또는 기타 증상을 제공하지 않는 경우 다음 단계를 사용합니다.

RDP 프로토콜의 상태 확인

로컬 컴퓨터에서 RDP 프로토콜의 상태 확인합니다.

로컬 컴퓨터에서 RDP 프로토콜의 상태 검사 변경하려면 원격 데스크톱을 사용하도록 설정하는 방법을 참조하세요.

참고

원격 데스크톱 옵션을 사용할 수 없는 경우 그룹 정책 개체가 RDP를 차단하고 있는지 확인을 참조하세요.

원격 컴퓨터에서 RDP 프로토콜의 상태 확인합니다.

중요

이 절, 방법 또는 작업에는 레지스트리를 수정하는 방법에 대한 단계가 포함되어 있습니다. 그러나 레지스트리를 잘못 수정하면 심각한 문제가 발생할 수 있습니다. 따라서 다음 단계를 주의하여 수행해야 합니다. 보호하기 위해 레지스트리를 수정하기 전에 백업하여 문제가 발생할 경우 레지스트리를 복원할 수 있도록 합니다. 레지스트리를 백업 및 복원하는 방법에 대한 자세한 내용은 Windows에서 레지스트리를 백업 및 복원하는 방법을 참조하세요.

원격 컴퓨터에서 RDP 프로토콜의 상태 검사 변경하려면 네트워크 레지스트리 연결을 사용합니다.

  1. 먼저 시작 메뉴로 이동한 다음 실행을 선택합니다. 표시되는 텍스트 상자에 regedt32를 입력합니다.

  2. 레지스트리 편집기 파일을 선택한 다음 네트워크 레지스트리 연결을 선택합니다.

  3. 컴퓨터 선택 대화 상자에서 원격 컴퓨터의 이름을 입력하고 이름 확인을 선택한 다음 확인을 선택합니다.

  4. 로 이동한 후 로 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server 이동합니다 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services.

    fDenyTSConnections 항목을 보여 주는 레지스트리 편집기 스크린샷

    • fDenyTSConnections 키의 값이 0이면 RDP가 활성화됩니다.
    • fDenyTSConnections 키 값이 1이면 RDP가 비활성화됩니다.
  5. RDP를 사용하도록 설정하려면 fDenyTSConnections 값을 1 에서 0으로 변경합니다.

그룹 정책 개체(GPO)가 로컬 컴퓨터에서 RDP를 차단하고 있는지 확인합니다.

사용자 인터페이스에서 RDP를 켤 수 없거나 fDenyTSConnections 값이 변경된 후 1 로 되돌아가면 GPO가 컴퓨터 수준 설정을 재정의할 수 있습니다.

로컬 컴퓨터에서 그룹 정책 구성을 검사 관리자 권한으로 명령 프롬프트 창을 열고 다음 명령을 입력합니다.

gpresult /H c:\gpresult.html

이 명령이 완료되면 gpresult.html엽니다. 컴퓨터 구성\관리 템플릿\Windows 구성 요소\원격 데스크톱 서비스\원격 데스크톱 세션 호스트\Connections원격 데스크톱 서비스를 사용하여 사용자가 원격으로 연결할 수 있도록 허용 정책을 찾습니다.

  • 이 정책의 설정이 사용인 경우 그룹 정책 RDP 연결을 차단하지 않습니다.

  • 이 정책의 설정이 사용 안 함으로 설정되어 있으면 성공 GPO를 검사. RDP 연결을 차단하는 GPO입니다.

    도메인 수준 GPO 블록 RDP가 RDP를 사용하지 않도록 설정하는 gpresult.html 예제 세그먼트의 스크린샷

    로컬 그룹 정책 RDP를 사용하지 않도록 설정하는 gpresult.html 예제 세그먼트의 스크린샷

GPO가 원격 컴퓨터에서 RDP를 차단하고 있는지 확인

원격 컴퓨터에서 그룹 정책 구성을 검사 위해 명령은 로컬 컴퓨터와 거의 동일합니다.

gpresult /S <computer name> /H c:\gpresult-<computer name>.html

이 명령이 생성하는 파일(gpresult-computer< name>.html)은 로컬 컴퓨터 버전(gpresult.html)에서 사용하는 것과 동일한 정보 형식을 사용합니다.

차단 GPO 수정

그룹 정책 GPE(개체 편집기) 및 GPM(그룹 정책 관리 콘솔)에서 이러한 설정을 수정할 수 있습니다. 그룹 정책 사용하는 방법에 대한 자세한 내용은 고급 그룹 정책 관리를 참조하세요.

차단 정책을 수정하려면 다음 방법 중 하나를 사용합니다.

  • GPE에서 적절한 수준의 GPO(예: 로컬 또는 도메인)에 액세스하고 컴퓨터 구성>관리 템플릿>Windows 구성 요소>원격 데스크톱 서비스>원격 데스크톱 세션 호스트>로 이동합니다Connections>원격 데스크톱 서비스를 사용하여 원격으로 연결하도록 사용자를 허용합니다.
    1. 정책을 사용 또는 구성되지 않음으로 설정합니다.
    2. 영향을 받는 컴퓨터에서 관리자 권한으로 명령 프롬프트 창을 열고 명령을 실행합니다 gpupdate /force .
  • GPM에서 차단 정책이 영향을 받는 컴퓨터에 적용되는 OU(조직 구성 단위)로 이동하고 OU에서 정책을 삭제합니다.

RDP 서비스의 상태 확인

로컬(클라이언트) 컴퓨터와 원격(대상) 컴퓨터 모두에서 다음 서비스를 실행해야 합니다.

  • 원격 데스크톱 서비스(TermService)
  • 원격 데스크톱 서비스 UserMode 포트 리디렉션기(UmRdpService)

서비스 MMC 스냅인을 사용하여 서비스를 로컬 또는 원격으로 관리할 수 있습니다. PowerShell을 사용하여 로컬 또는 원격으로 서비스를 관리할 수도 있습니다(원격 컴퓨터가 원격 PowerShell cmdlet을 허용하도록 구성된 경우).

서비스 MMC 스냅인의 원격 데스크톱 서비스 스크린샷

컴퓨터에서 하나 또는 두 서비스가 모두 실행되고 있지 않으면 시작합니다.

참고

원격 데스크톱 서비스 서비스를 시작하는 경우 예를 선택하여 원격 데스크톱 서비스 UserMode 포트 리디렉션기 서비스를 자동으로 다시 시작합니다.

RDP 수신기가 작동하는지 확인합니다.

중요

이 절, 방법 또는 작업에는 레지스트리를 수정하는 방법에 대한 단계가 포함되어 있습니다. 그러나 레지스트리를 잘못 수정하면 심각한 문제가 발생할 수 있습니다. 따라서 다음 단계를 주의하여 수행해야 합니다. 보호하기 위해 레지스트리를 수정하기 전에 백업하여 문제가 발생할 경우 레지스트리를 복원할 수 있도록 합니다. 레지스트리를 백업 및 복원하는 방법에 대한 자세한 내용은 Windows에서 레지스트리를 백업 및 복원하는 방법을 참조하세요.

RDP 수신기의 상태 확인

이 절차에서는 관리 권한이 있는 PowerShell instance 사용합니다. 로컬 컴퓨터의 경우 관리 권한이 있는 명령 프롬프트를 사용할 수도 있습니다. 그러나 동일한 cmdlet이 로컬 및 원격으로 작동하기 때문에 이 절차에서는 PowerShell을 사용합니다.

  1. 원격 컴퓨터에 연결하려면 다음 cmdlet을 실행합니다.

    Enter-PSSession -ComputerName <computer name>
    
  2. 를 입력합니다 qwinsta.

    컴퓨터의 포트에서 수신 대기하는 프로세스를 나열하는 qwinsta 명령의 스크린샷

  3. 목록에 의 상태 Listen포함된 rdp-tcp 경우 RDP 수신기가 작동합니다. RDP 수신기 포트 확인을 진행합니다. 그렇지 않으면 4단계에서 계속 진행합니다.

  4. 작업 컴퓨터에서 RDP 수신기 구성을 내보냅니다.

    1. 영향을 받는 컴퓨터와 동일한 운영 체제 버전이 있는 컴퓨터에 로그인하고 해당 컴퓨터의 레지스트리에 액세스합니다(예: 레지스트리 편집기 사용).

    2. 다음 레지스트리 항목으로 이동합니다.

      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp

    3. 항목을 파일로 .reg 내보냅니다. 예를 들어 레지스트리 편집기 항목을 마우스 오른쪽 단추로 클릭하고 내보내기를 선택한 다음 내보낸 설정의 파일 이름을 입력합니다.

    4. 내보낸 .reg 파일을 영향을 받는 컴퓨터에 복사합니다.

  5. RDP 수신기 구성을 가져오려면 영향을 받는 컴퓨터에 대한 관리 권한이 있는 PowerShell 창을 열거나 PowerShell 창을 열고 영향을 받는 컴퓨터에 원격으로 연결합니다.

    1. 기존 레지스트리 항목을 백업하려면 다음 cmdlet을 입력합니다.

      cmd /c 'reg export "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-tcp" C:\Rdp-tcp-backup.reg'
      
    2. 기존 레지스트리 항목을 제거하려면 다음 cmdlet을 입력합니다.

      Remove-Item -path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-tcp' -Recurse -Force
      
    3. 새 레지스트리 항목을 가져온 다음 서비스를 다시 시작하려면 다음 cmdlet을 입력합니다.

      cmd /c 'regedit /s c:\<filename>.reg'
      Restart-Service TermService -Force
      

      파일 이름을 내 .reg 보>낸 파일의 이름으로 바꿉 <있습니다.

  6. 원격 데스크톱 연결을 다시 시도하여 구성을 테스트합니다. 여전히 연결할 수 없는 경우 영향을 받는 컴퓨터를 다시 시작합니다.

  7. 여전히 연결할 수 없는 경우 RDP 자체 서명된 인증서의 상태 검사.

RDP 자체 서명된 인증서의 상태 확인

  1. 여전히 연결할 수 없는 경우 인증서 MMC 스냅인을 엽니다. 관리할 인증서 저장소를 선택하라는 메시지가 표시되면 컴퓨터 계정을 선택한 다음 영향을 받는 컴퓨터를 선택합니다.
  2. 원격 데스크톱 아래의 인증서 폴더에서 RDP 자체 서명된 인증서를 삭제합니다.
  3. 영향을 받는 컴퓨터에서 원격 데스크톱 서비스 서비스를 다시 시작합니다.
  4. 인증서 스냅인을 새로 고칩니다.
  5. RDP 자체 서명된 인증서가 다시 만들어지지 않은 경우 MachineKeys 폴더의 사용 권한을 검사.

MachineKeys 폴더의 사용 권한 확인

  1. 영향을 받는 컴퓨터에서 Explorer 연 다음 C:\ProgramData\Microsoft\Crypto\RSA\로 이동합니다.
  2. MachineKeys를 마우스 오른쪽 단추로 클릭하고 속성>보안>고급을 선택합니다.
  3. 다음 권한이 구성되어 있는지 확인합니다.
    • Builtin\Administrators: 모든 권한
    • 모두: 읽기, 쓰기

RDP 수신기 포트 확인

로컬(클라이언트) 컴퓨터와 원격(대상) 컴퓨터 모두에서 RDP 수신기는 포트 3389에서 수신 대기해야 합니다. 다른 애플리케이션은 이 포트를 사용하지 않아야 합니다.

중요

이 절, 방법 또는 작업에는 레지스트리를 수정하는 방법에 대한 단계가 포함되어 있습니다. 그러나 레지스트리를 잘못 수정하면 심각한 문제가 발생할 수 있습니다. 따라서 다음 단계를 주의하여 수행해야 합니다. 보호하기 위해 레지스트리를 수정하기 전에 백업하여 문제가 발생할 경우 레지스트리를 복원할 수 있도록 합니다. 레지스트리를 백업 및 복원하는 방법에 대한 자세한 내용은 Windows에서 레지스트리를 백업 및 복원하는 방법을 참조하세요.

RDP 포트를 검사 변경하려면 레지스트리 편집기 사용합니다.

  1. 시작 메뉴로 이동하여 실행을 선택한 다음 표시되는 텍스트 상자에 regedt32 를 입력합니다.

    • 원격 컴퓨터에 연결하려면 파일을 선택한 다음 네트워크 레지스트리 연결을 선택합니다.
    • 컴퓨터 선택 대화 상자에서 원격 컴퓨터의 이름을 입력하고 이름 확인을 선택한 다음 확인을 선택합니다.
  2. 레지스트리를 열고 로 이동합니다 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\<listener>.

    RDP 프로토콜에 대한 PortNumber 하위 키의 스크린샷

  3. PortNumber3389 이외의 값이 있는 경우 3389로 변경합니다.

    중요

    다른 포트를 사용하여 원격 데스크톱 서비스를 운영할 수 있습니다. 그러나 이 작업은 권장하지 않습니다. 이 문서에서는 해당 유형의 구성 문제를 해결하는 방법을 다루지 않습니다.

  4. 포트 번호를 변경한 후 원격 데스크톱 서비스 서비스를 다시 시작합니다.

다른 애플리케이션이 동일한 포트를 사용하지 않는지 확인합니다.

이 절차에서는 관리 권한이 있는 PowerShell instance 사용합니다. 로컬 컴퓨터의 경우 관리 권한이 있는 명령 프롬프트를 사용할 수도 있습니다. 그러나 동일한 cmdlet이 로컬 및 원격으로 작동하기 때문에 이 절차에서는 PowerShell을 사용합니다.

  1. PowerShell 창을 엽니다. 원격 컴퓨터에 연결하려면 를 입력합니다 Enter-PSSession -ComputerName <computer name>.

  2. 다음 명령을 입력합니다.

    cmd /c 'netstat -ano | find "3389"'
    

    포트 목록과 해당 포트를 수신 대기하는 서비스를 생성하는 netstat 명령의 스크린샷

  3. Listening 상태의 TCP 포트 3389(또는 할당된 RDP 포트)에 대한 항목을 찾습니다.

    참고

    해당 포트를 사용하는 프로세스 또는 서비스에 대한 PID(프로세스 식별자)가 PID 열 아래에 표시됩니다.

  4. 포트 3389(또는 할당된 RDP 포트)를 사용하는 애플리케이션을 확인하려면 다음 명령을 입력합니다.

    cmd /c 'tasklist /svc | find "<pid listening on 3389>"'
    

    특정 프로세스의 세부 정보를 보고하는 작업 목록 명령의 스크린샷

  5. 출력에서 netstat 포트와 연결된 PID 번호에 대한 항목을 찾습니다. 해당 PID와 연결된 서비스 또는 프로세스가 오른쪽 열에 나타납니다.

  6. 원격 데스크톱 서비스(TermServ.exe)가 아닌 애플리케이션 또는 서비스가 포트를 사용하는 경우 다음 방법 중 하나를 사용하여 충돌을 resolve 수 있습니다.

    • 다른 포트를 사용하도록 다른 애플리케이션 또는 서비스를 구성합니다(권장).
    • 다른 애플리케이션 또는 서비스를 제거합니다.
    • 다른 포트를 사용하도록 RDP를 구성한 다음 원격 데스크톱 서비스 서비스를 다시 시작합니다(권장하지 않음).

방화벽이 RDP 포트를 차단하고 있는지 확인

psping 도구를 사용하여 포트 3389를 사용하여 영향을 받는 컴퓨터에 연결할 수 있는지 여부를 테스트합니다.

  1. 영향을 받지 않는 다른 컴퓨터로 이동하여 psping을 다운로드합니다.

  2. 관리자 권한으로 명령 프롬프트 창을 열고 를 설치한 psping디렉터리로 변경한 다음 다음 명령을 입력합니다.

    psping -accepteula <computer IP>:3389
    
  3. 명령의 출력에서 psping 다음과 같은 결과를 확인합니다.

    • Connecting to \<computer IP\>: 원격 컴퓨터에 연결할 수 있습니다.
    • (0% loss): 모든 연결 시도가 성공했습니다.
    • The remote computer refused the network connection: 원격 컴퓨터에 연결할 수 없습니다.
    • (100% loss): 연결 시도가 모두 실패했습니다.
  4. 여러 컴퓨터에서 를 실행 psping 하여 영향을 받는 컴퓨터에 연결하는 기능을 테스트합니다.

  5. 영향을 받는 컴퓨터가 다른 모든 컴퓨터, 일부 다른 컴퓨터 또는 하나의 다른 컴퓨터에서만 연결을 차단하는지 여부를 확인합니다.

  6. 권장되는 다음 단계:

    • 네트워크 관리자에게 Engage 네트워크에서 영향을 받는 컴퓨터에 대한 RDP 트래픽을 허용하는지 확인합니다.
    • 원본 컴퓨터와 영향을 받는 컴퓨터(영향을 받는 컴퓨터의 Windows 방화벽 포함) 간의 방화벽 구성을 조사하여 방화벽이 RDP 포트를 차단하고 있는지 확인합니다.