Windows 8.1/8에서 동시 다중 RDP 세션 활성화하는 방법
Windows 8과 8.1은 이전 Microsoft 클라이언트 운영체제와 마찬가지로 동시에 단 하나의 RDP(원격 데스크톱) 연결만 지원합니다. 즉, 한 대의 Windows 컴퓨터에는 한 명의 사용자(하나의 세션)만 원격 데스크톱으로 동시 접속할 수 있습니다. 대부분의 경우 이 정도면 충분하지만, 여러 원격 사용자가 각자의 세션에서 동시에 작업할 수 있다면 훨씬 편리한 상황이 있습니다.
대표적인 예가 미디어 센터 용도로 사용되는 컴퓨터입니다. TV 화면에서는 콘솔 세션으로 영상이 재생되고 있는데, 영상 재생을 끊지 않으면서 동시에 원격으로 시스템을 조작해야 하는 경우입니다.
팁: 원격 RDP 접속을 사용하려면 Windows 8의 Pro 또는 Enterprise 버전이 필요하며, Home 에디션에서는 지원되지 않습니다.
두 번째 RDP 세션 연결 시 발생하는 오류
Windows 8.1/8 컴퓨터에 두 번째 RDP 세션을 연결하려고 하면 이미 다른 사용자가 로컬로 로그인되어 있으므로 해당 세션을 종료해야 한다는 메시지가 표시됩니다.
"다른 사용자가 로그인되어 있습니다. 계속하면 해당 사용자의 연결이 해제됩니다."

팁: RDP를 사용하기 전에 먼저 시스템 속성의 '원격' 탭에서 원격 데스크톱을 허용하고, 필요한 사용자 계정을 로컬 그룹 Remote Desktop Users에 추가해야 합니다. 로컬 관리자 그룹에 속한 계정은 기본적으로 원격 접속이 허용됩니다. 시스템 속성에서 RDP를 활성화하면 Windows 방화벽이 자동으로 TCP 포트 3389 인바운드 규칙을 생성하지만, 간혹 이 규칙을 수동으로 확인해야 할 수도 있습니다.
참고로 Windows 서버 버전에서는 개별 세션을 가진 동시 관리자 연결 2개가 기본 지원되며, 터미널(RDS) 서버의 경우 그 이상의 동시 세션도 가능합니다.
패치를 이용한 다중 세션 활성화
이러한 제한을 우회할 수 있도록 만들어진 특수 패치를 인터넷에서 찾을 수 있습니다. 이 패치를 적용하면 여러 사용자가 Windows 8 / 8.1 컴퓨터에 RDP로 동시 접속할 수 있게 됩니다.
주의: 이 패치를 적용하면 Microsoft 제품의 라이선스 계약 및 사용 조건을 위반하게 됩니다. 따라서 아래 설명된 모든 작업은 본인의 책임하에 진행해야 합니다.
패치의 원리는 원격 데스크톱 서비스에서 사용하는 시스템 라이브러리인 %SystemRoot%\System32\termsrv.dll 파일을 수정된 버전으로 교체하는 것입니다.
수정된 termsrv.dll 다운로드
- Windows 8 — windows8-termsrv.dll.zip
- Windows 8.1 — windows8.1-termsrv.dll.zip
1단계: 원본 파일 백업
라이브러리를 교체하기 전에 아래 명령으로 원본 termsrv.dll을 반드시 백업해 두세요.
copy c:\Windows\System32\termsrv.dll termsrv.dll_old

이렇게 해두면 작업 중 문제가 발생하더라도 언제든 현재 파일을 백업해 둔 termsrv.dll_old로 되돌려 원래 상태로 복구할 수 있습니다.
2단계: 레지스트리 설정 변경 (Windows 8)
Windows 8에서는 먼저 HKLM\System\CurrentControlSet\Control\Terminal Server\ 경로의 다음 레지스트리 값을 변경해야 합니다.
- fDenyTSConnections (DWORD) — 0 (컴퓨터에서 RDP를 활성화)
- fSingleSessionPerUser (DWORD) — 0 (사용자당 다중 세션 허용)

명령 프롬프트에서도 동일한 작업을 수행할 수 있습니다.
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fSingleSessionPerUser /t REG_DWORD /d 0 /f
3단계: termsrv.dll 파일 권한 변경
C:\Windows\System32 폴더에서 termsrv.dll 파일을 찾아 속성 창을 엽니다.

기본적으로 이 파일의 소유자는 TrustedInstaller이며, 관리자 계정이라도 파일을 교체할 권한이 없습니다.

보안 탭으로 이동한 후 편집 버튼을 클릭합니다. 액세스 목록에서 로컬 관리자 그룹(Administrators)을 찾아 이 파일에 대한 모든 권한을 부여하고 변경 사항을 저장합니다.

4단계: 원격 데스크톱 서비스 중지
라이브러리 파일을 교체하기 전에 서비스 관리 콘솔(services.msc)을 열고 Remote Desktop Services 서비스를 중지합니다.

5단계: 수정된 라이브러리 적용
다운로드한 압축 파일에서 자신의 Windows 버전에 맞는 termsrv.dll을 %SystemRoot%\System32\ 폴더에 덮어써서 복사합니다.
참고: Windows 8.1용 압축 파일에는 32비트용 32_termsrv.dll과 64비트용 64_termsrv.dll 두 개의 파일이 들어 있습니다. 압축을 푼 후 자신의 시스템 비트에 맞는 파일의 이름을 termsrv.dll로 변경해서 사용하세요.
6단계: 다중 세션 테스트
파일 교체가 완료되면 Remote Desktop Services 서비스를 다시 시작하고, 서로 다른 계정으로 패치가 적용된 컴퓨터에 RDP 세션 두 개를 연결해 봅니다. 모든 과정을 올바르게 수행했다면 두 개의 독립적인 원격 데스크톱 세션이 각각 열리는 것을 확인할 수 있습니다.

팁: 경우에 따라 컴퓨터를 재부팅해야 정상적으로 적용될 수 있습니다.
패치 사용 시 유의사항
수정된 termsrv.dll을 사용하는 데에는 몇 가지 단점이 있습니다. 가장 큰 문제는 Windows 8.1/8 보안 업데이트를 설치할 때마다 이 파일이 원본으로 교체될 수 있다는 점입니다. 이 경우 새 파일을 HEX 편집기로 직접 패치하거나, 자신의 Windows 빌드에 맞는 수정된 termsrv.dll을 인터넷에서 다시 찾아야 합니다.
더 안정적인 대안: RDP Wrapper Library
Windows 업데이트에 의해 termsrv.dll이 교체되는 문제를 근본적으로 피하고 싶다면 오픈소스 솔루션인 RDP Wrapper Library(GitHub에서 배포)를 사용하는 것이 좋습니다. 이 라이브러리는 termsrv.dll을 교체하지 않고, 터미널 서비스와 SCM(서비스 제어 관리자) 사이에서 동작하는 레이어 방식으로 다중 세션을 지원하기 때문에 업데이트에도 안정적입니다. RDP Wrapper Library의 자세한 사용법은 관련 문서를 참고하세요.