한 대의 컴퓨터에 RDP로 다수 연결 설정하기... 본문
본 내용은 다른 사람들의 지식을 활용해서 제가 활용하는 내용을 방법을 정리한 것입니다. 먼저 제가 이러한 고민을 하게 된 배경을 먼저 설명하고자 합니다.
제가 몸 담은 회사는 VMware 기반에서 VDI(데스크탑가상화)를 이용하고 있습니다. 아마 우리회사 규모에서 서버가상화와 데스크탑가상화를 구축한 경우가 그리 많지 않으리라 예상합니다. 2차례 단계적 도입을 통해 관리 부분은 50% 이상이 VDI 환경을 이용하고 있습니다.
초기에 다른 환경이라는 이유 하나만으로 불만을 토로하는 사용자들이 많았습니다. 사용 중 조금이라도 문제가 발생하면 'PC 사용때는 안그랬는데 VDI 탓이다' 라고 말한 사람들이 많았습니다. 그러나 그렇게 불만을 호소하는 내용들은 거의 다 해결을 해 주었습니다.
지금까지 딱 2가지 사례를 제외하고 VDI에서 안되는 것은 없었습니다. 오히려 관리상의 훨씬 더 많은 효율을 가져다 주고 있으며 외근이 많은 영업 조직은 VDI 사용에 너무나도 만족을 하고 있습니다.
그런데 문제가 된 2가지 상황은 당사가 이번에 상장을 진행하면서 증권거래소 등의 사이트와 전자공시 사이트를 이용할 일이 생겼는데, 정부 기관의 일부 사이트가 ActivX를 이용하며 해당 ActiveX 환경에서 보안 프로그램이 가상화 기반을 지원하지 않아서 키 입력이 안되는 경우입니다.
이 때문에 회계/재무팀의 VDI 사용자 일부가 불만을 접수했습니다. 이 녀석은 정말 답이 없었습니다. 그래서 관계 기관과 부처에 연락을 해서 가상화에 대한 지원을 요청했으나 요즘 시대의 흐름을 인지하지 못하는지 그럴 계획이 없다고 합니다.
방법은 VDI -> PC로 교체하거나, 아니면 해당 업무를 위한 노트북을 지급하는 일입니다. 해당 업무가 상시로 있는 것도 아니고 해당 부서도 외근이나 서울 사무소에서의 업무 수행이 많은지라 VDI가 주는 편의성은 놓치기 싫다고 합니다.
그래서 생각한 것이 PC를 한 대 상시로 세팅해 두고 해당 업무를 볼 때에만 RDP로 붙어서 업무를 보도록 하는 것입니다. 문제는 PC 한 대를 한 명만 접속해서 이용하면 운영상의 효율이 떨어짐으로 여러 명이 동시 접속이 가능해야 하는데...
MS가 기본적으로 지원하지 않는 기능입니다. 분명이 방법이 있을 것 같은데... 열심히 검색을 해 보니 역시나 저와 똑 같은 상황에서 고민을 하고 해결책을 제공해 주는 분들이 있네요.
먼저 참조한 글의 출처를 알립니다.
출처: <http://studyforus.tistory.com/145>
출처: <http://studyforus.tistory.com/144>
이 글을 참조하면 VDI로 평상시 업무를 보고 혹, 가상환경에서 지원하지 않는 국내 공공기관 사이트에서 업무를 볼 경우가 발생하면 RDP로 별도로 생성해 둔 PC에 접속해서 업무를 보면 됩니다. 참고로 RDP 환경에서는 연결된 세션으로 탐색기 기반에서 파일 복제가 가능하기 때문에 업무를 처리하는데 문제가 없습니다. 또한 위 설정으로 RDP로 동시에 여러 세션에 대한 접속이 가능함으로 한 대의 PC로 여러 사용자가 동시에 서비스를 이용할 수 있습니다.
이것으로 번거롭게 노트북을 지급하고, 관리하는 행위를 들었습니다.
상세한 설정 과정은 아래 내용을 참조하시기 바랍니다.
기본적으로 원격접속이 정상적으로 진행되어야 이 글이 의미가 있습니다.
원격접속에 관한 글은 다음 글들을 참고해주세요.
특히 이 글등중 마지막 글인 한 사용자로 다중 접속하기 글을 꼭 읽고 진행하여야만 해당사항이 있습니다.
권한 설정 실행하기
시작에서 마우스 오른쪽 버튼을 눌러서 실행을 띄워줍니다. (윈도우 키 + R) 그리고 다음과 같이 입력합니다.
gpedit.msc 를 입력하면 로컬 그룹 정책 편집기 라는 설정창이 나오게 됩니다.
이중에서 원격 접속에 관한 정책설정을 하기 위해서는 다음과 같은 경로로 찾아가시면 됩니다.
로컬 컴퓨터 정책 > 컴퓨터 구성 > 관리 템플릿 > Windows 구성 요소
> 터미널 서비스 > 원격 데스크톱 세션 호스트 > 연결
길죠? 해당 경로를 직접 캡쳐하였습니다.
이 카테고리 안에 있는 정책 설정이 다중 원격 접속을 지원해 줍니다. 관련된 설정은 두가지 인데 하나하나 살펴 봅시다.
멀티세션 설정하기
지난 글 한 사용자로 다중접속하기 라는 글을 참고해야만 진행할 수 있습니다.
DRPWrapper 로 설정하였다면, 이 정책 설정을 변경하는 것만으로도 모든 설정이 완료가 됩니다.
"원격 데스크톱 서비스 사용자를 하나의 원격 데스크톱 서비스 세션으로 제한" 항목을 살펴봅시다.
해당 내용의 설명을 살펴보면
이 정책 설정으로 사용자를 하나의 원격 데스크톱 서비스 세션으로 제한할 수 있습니다.
이 정책 설정을 사용하면 원격 데스크톱 서비스를 사용하여 원격으로 로그온하는 사용자가 해당 서버에서 하나의 세션(활성 또는 연결이 끊긴 상태)으로 제한됩니다. 사용자가 연결이 끊긴 상태에서 세션을 종료하면 다음 로그온할 때 사용자가 해당 세션에 자동으로 다시 연결됩니다.
이 정책 설정을 사용하지 않으면 사용자가 원격 데스크톱 서비스를 사용하여 원하는 수만큼 동시 원격 연결을 설정할 수 있습니다.
이 정책 설정을 구성하지 않으면 원격 데스크톱 세션 호스트 구성 도구의 "사용자당 세션을 하나로 제한" 설정을 사용하여 사용자를 하나의 원격 데스크톱 서비스 세션으로 제한할지 여부를 결정합니다.
라는 내용으로 되어있는데 간단히 말해서, 기본값은 구성되지 않음이지만 사용 또는 사용안함으로 변경할 수 있습니다.
사용 - 원격 접속을 하나의 계정에 대해서만 접속 허용
사용 안 함 - 여러번의 원격 접속을 허용 (단, 실행되었을 때는 각기 다른 데스크탑을 사용함.)
당연히 설정은 사용 안 함으로 변경해주시면 됩니다.
WDPWrapper와 이 정책설정만으로도 멀티세션을 사용하게 설정할 수 있습니다.
연결개수 제한하기 |
원격접속으로 접속할 수 있는 사용자 수를 제한합니다. 멀티세션과는 달리 사용자 수를 제한 합니다.
"연결 개수 제한" 항목을 클릭합니다.
그리고 연결 개수 제한 항목을 변경합니다.
역시 해당 설명을 살펴보면,
원격 데스크톱 서비스에서 서버에 대한 동시 연결 수를 제한할지 여부를 지정합니다.
이 설정을 사용하면 서버에서 활성화할 수 있는 원격 데스크톱 서비스 세션 수를 제한할 수 있습니다. 이 수가 초과되면 추가 사용자가 연결을 시도할 때 서버가 사용 중이므로 나중에 다시 시도하라는 오류 메시지가 사용자에게 표시됩니다. 세션 수를 제한하면 시스템 리소스를 사용하는 세션 수가 제한되므로 성능이 향상됩니다. 기본적으로 RD 세션 호스트 서버는 원격 데스크톱 서비스 세션 수를 제한하지 않으며 관리용 원격 데스크톱은 두 개의 원격 데스크톱 서비스 세션을 허용합니다.
이 설정을 사용하려면 서버에 대해 최대값으로 지정할 연결 수를 입력합니다. 연결 수를 제한하지 않으려면 999999를 입력합니다.
상태를 사용으로 설정하면 Windows 버전 및 서버에서 실행되는 원격 데스크톱 서비스 모드와 일치하는 지정된 수로 최대 연결 수가 제한됩니다.
상태를 사용 안 함 또는 구성되지 않음으로 설정하면 그룹 정책 수준에서 연결 수 제한이 적용되지 않습니다.
참고: 이 설정은 RD 세션 호스트 서버, 즉 원격 데스크톱 세션 호스트 역할 서비스가 설치된 Windows를 실행하는 서버에서 사용됩니다.
즉, 이것도 간단히 말해서
사용 - 사용자 수를 제한함 (단, 999999를 입력하면 무제한)
사용 안 함 - 사용자 수를 제한 안 함 (무제한)
특이하게 구성되지 않음으로 해도 사용 안 함과 같은 설정으로 됩니다.
너무 많은 양으로 원격접속을 허용하면 리소스를 많이 잡아먹기 때문에 적정한 선으로 제한해야 한다면 유용한 기능이 될 것입니다.
당연히 설정은 사용 안 함으로 하거나 사용으로 해도 최대 연결 허용 수를 999,999 로 제한 하면 됩니다.
참고로 말씀드리고 싶은 사항은 해당 내용은 정책 설정일 뿐입니다. 추가적인 설정이 선행되어야만 멀티 세션이 완료가 됩니다. 또한 원격 접속에 대한 정책설정은 이 두가지만 확실하게 되어도 원격 접속이 잘 됩니다.
기본적으로 윈도우 클라이언트 버전에서 다중 접속을 지원을 해줬으면 했지만, 서버와 역할을 확실히 구분짓기 위해서는 어쩔 수 없단 생각도 들긴하네요.
원격 접속을 통한 다중접속하기
Multi Session 사용가능
클라우드 컴퓨팅 본격적으로 사용하기 |
언제 어디서나 접속 및 사용가능한 컴퓨터를 만들기 위해 원격접속을 통해 클라우드 컴퓨터를 구축하는 방법에 대해 글을 쓴적이 있습니다. 실제로 가장 최신 버전의 윈도우 서버인 윈도우 서버 2012(Windows Server 2012)에서는 클라우드 컴퓨팅 기능을 강조하며, 여러사용자가 동시에 접속 가능한 원격 제어 컴퓨터를 구축할 수 있습니다.
하지만, 제 서버에서 사용하는 것은 단순한 사용자 버전의 윈도우 8.1 (Windows 8.1 - Client Version)인데 기본적으로 로컬 컴퓨터 사용과 원격 데스크탑 접속은 한 사용자에 한해서만 가능합니다.
즉, 사용자 한 명만 컴퓨터를 사용한다는 전체하에서만 원격제어와 실제 제어를 할 수 있습니다.
예를 들어 Admin 계정으로 로그온하여 데스크탑을 사용중 누워서 컴퓨터를 하고 싶어서 아이패드를 이용하여 원격데스크탑을 접속하면 기존에 사용하던 컴퓨터에서 계정은 자동적으로 로그아웃이되고 원격접속한 사용자로 새로 로그인하게 됩니다.
일반적으로 개인용 PC를 사용하지만 가족들이 모두 사용하는 컴퓨터가 있을 수도 있고, 저 처럼 개인서버를 구축하여 개인적인 서버를 운영하는 경우도 있습니다. 여러사람이 한 대의 PC를 사용하는 경우가 발생할 수 있는데 그런 경우에 컴퓨터를 동시에 사용할 수 있도록 세팅해 보도록 하겠습니다.
우리나라에서 일반적으로 컴퓨터를 사용하는 경우는 사용자 계정은 하나로 고정하고 가족 모두가 사용하는 경우가 대부분 입니다. 이번 글은 여러 사람이 같은 컴퓨터의 같은 계정으로 다 같이 사용하는 경우에 굉장히 유용한 방법입니다. 여러 계정을 사용자 개개인 별로 만들어서 하는 경우는 더 안정적인 방법으로 따로 포스팅 하도록 하겠습니다.
기본적인 원격 접속과 RD Client 설정 방법은 다음글들을 확인해 주시기 바랍니다.
관련글
RD Client - 원격 윈도우 종료 및 컴퓨터 끄기
iOS Remote Desktop 어플 접속오류 해결! (RD Client)
경고!
이 다음부터 설명드릴 내용들은 윈도우 시스템파일에 변형을 주기 때문에 치명적인 에러가 발생할 수 있습니다. 제가 직접 확인해보고 포스팅을 하지만, 상황에 따라 정상적인 컴퓨터 사용이 불가 할 수 있습니다. 해당 사항을 충분히 숙지하시고 사용하시기 바랍니다. 또한, 해당 경우로 발생하는 문제에 대해서 책임은 개인에게 있음을 안내드립니다.
추가 합니다.
정책 설정도 같이 설정을 해야 완벽하게 사용을 할 수 있습니다. 정책 설정에 관한 글은 이 글([원격제어] 멀티세션 (Multi Session) 정책설정)을 참고하시면 됩니다.
한 계정으로 멀티세션 사용하기 - RDP wrapper |
위에서 설명했다시피 기본적으로 컴퓨터로 로그온한 상태에서 원격으로 접속을 하게 되면 기존에 사용하던 컴퓨터에서는 자동으로 로그오프가 됩니다.
간단하게 클릭 한방으로 몇 가지 설정을 자동으로 바꿔주는 프로그램를 통해 쉽게 여러 원격접속을 사용 할 수 있습니다.
RDP Wrapper
제작사 홈페이지 : http://stascorp.com/load/1-1-0-63
다운로드 링크 : http://stascorp.com/load/0-0-0-63-20
1.5 버전 링크 : https://github.com/binarymaster/rdpwrap/releases
직접 다운로드 링크
2014년 12월 11일 자로 1.5버전이 배포 되었습니다.
윈도우 10을 지원하는 등 안정성 및 커스텀 설정이 가능합니다.
이전 버전
(원본 링크)
(ZIP 파일로 재 압축)
역시 직접 다운로드 링크가 있어야 블로그를 찾아오는 맛이 있죠!
해당 파일은 윈도우 8.1 뿐만 아니라 모든 윈도우 전 버전에서 사용가능합니다. 제 termsrv.dll 파일은 빌드 9600(윈도우 8.1)에 17095 버전(가장 최신 업데이트 버전)인데도 정상적으로 사용가능하였습니다. 작동 원리는 하단에 적어 놓도록 하겠습니다.
시작 전 다시 한번 말씀드리지만 가능한 백업을 부탁드립니다. (혹시 모를 상황에 대비하여)
그나마 이 파일은 다른 패치들과는 달리 원격 접속의 설정을 관리하는 시스템 파일인 termsrv.dll 파일을 수정하지 않고 멀티 세션을 가능하게 해줍니다.
해당 파일을 적당한 폴더에 압축을 풀어 줍니다. 그리고 해당 폴더 안에 있는 install.bat 파일을 실행해 줍니다. (좀 더 확실하게 하기 위해 마우스 오른쪽 버튼을 누르고 관리자 권한으로 실행할 것을 추천합니다. 물론 안해도 상관없습니다.)
만약, 설치 후 다시 설치 취소를 하고 싶거나 원상 복구 하고 싶다면 uninstall.bat 파일을 실행하면 됩니다.
설치를 하면 다음과 같은 화면이 나오고 설치를 자동적으로 시작합니다. 혹은 CMD를 통해 해당 폴더를 찾아서 RDPWinst.exe -i 를 입력하여도 상관없습니다.
설치를 마치고 나면 다음과 같은 화면이 나오며, RDPCheck 프로그램으로 확인할 수 있다.(즉, 확인해 보라는 얘기죠.)라고 하는데 저는 에러가 나와서 확인을 못해봤습니다. 이 프로그램은 그야말로 확인만 하는 프로그램이기 때문에 실행이 안된다고(또는 실행을 안한다고) 해서 멀티 세션으로 접속을 전혀 이상이 생기거나 그러지는 않았습니다.
이제 설치가 완료되었습니다.
작동원리는 이러합니다. termsrv.dll 파일이 원격접속을 관리하는 서비스 프로그램 파일인데, 이 파일 대신에 rdpwrap.dll 이라는 파일로 대체하여 원격접속을 우회하는 방법입니다. system32폴더의 dll파일은 건드리는 것이 아니라 임의의 폴더를 생성하여 서비스를 관리하는 파일만 대체하는 방식이라 안전하다고 볼 수 있습니다.
대신 rdpwrap 파일은 Windows Vista 버전의 termsrv.dll 파일을 기초로 작업을 하였는지 경고 문구가 Vista 이하 버전이라는 경고가 나오기는 하는데 무시하고 진행하셔도 문제되는 부분이 없습니다.
그럼 실제로 한 사용자 계정으로 여러 컴퓨터에서 동시에 접속이 가능한지 확인해보도록 합니다.
테스트한 기계는 데스크탑, 스마트폰, 노트북으로 동시에 접속하였습니다.
처음 데스크탑이나 노트북과 같은 원격 데스크톱 연결에서 처음 해당 컴퓨터로 접속을 하면 다음과 같은 경고문구가 나옵니다. 위에 설명한 대로 다른 dll파일로 대체를 하여서 이런 경고가 나오는데 신경쓰지 않고 연결하기 위해 "예"를 누르면 됩니다.
만약, 다음 번 접속시에 이 경고문을 보지 않도록 하려면 "이 컴퓨터로의 연결을 다시 묻지 않음"을 체크하면 됩니다.
반면 모바일로 접속하여서 RD Client 어플을 이용하는 경우, 다음과 같이 안내문이 나오는데 위와 같은 내용입니다. 역시 다음번 부터 나오지 않도록 하려면 "Don't ask me for connections to this computer"를 활성화 시켜주시면 됩니다.
그럼 진짜로 확인해 보면 원격 데스크톱 연결을 이용하여 같은 계정을 두 번 접속하였습니다. 이 썸네일 화면에서 보여주듯이, 각기 완전히 다른 컴퓨터처럼 다른 세션으로 사용 가능합니다.
서버가 된 컴퓨터에서 작업 관리자를 실행시켜 로그온 되어 있는 사용자를 확인해보니 같은 Admin 계정이 세 번 로그온 되어있는 것을 확인 할 수 있습니다.
마치며.
|
이 프로그램을 이용하는 방법 외에는 termsrv.dll 파일은 변경하는 방법이 있습니다. 위에 처럼 Vista 이하 버전이라는 경고문은 나오지 않지만 시스템 파일을 직접 수정한다는 단점이 있습니다.
이 프로그램을 사용하기도 편리하고 아이디어도 상당하고 성능도 뛰어납니다. 이 포스팅을 하기전 끙끙거리며 멀티세션을 사용할 수 있도록 연구를 하고 차근차근 포스팅 준비를 했는데 우연히 찾은 이 프로그램이 한방에 모든 문제점들을 해결해 주는 군요.
물론 프로그램을 사용하는 방법외에 (무슨과정으로 프로그램이 진행되는지 못미더울수 있으니) 직접 termsrv.dll 파일을 수정하여 접속하는 방법에 대해서도 포스팅 하도록 하겠습니다.