'terminal services'에 해당되는 글 2건

  1. 2009.07.03 TS Web Access 오류발생시 해결방법
  2. 2008.09.16 Terminal Services Architecture

Windows Server 2008 Terminal Service 기능 中 TS Web을 통해 Application을 이용할 경우 XP XP3에서 아래와 같은 오류가 발생할 수 있다.  이러할 경우 어떻게 조치를 해야 하는 것일까?

 

[오류발생사항] – TS Web Access 접속시 오류발생

 

image

 

[조치방법]

 

1. Internet Explorer 7의 경우 도구메뉴를 Click하여 추가기능관리를 Click!

 

image

 

2. 이후 Enable or Disable Add-on(추가 기능 사용 또는 사용안함)을 Click하면 다음과 같이 Disable된 Module 2개를 확인할

   수 있다.

 

image

 

3. 2가지 기능 모두를 Enable로 변경하고 확인을 누르면 Internet Explorer가 재시작 되면서 정상적인 화면을 볼 수 있다.

 

[정상화면 출력]

 

image

신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by hotpoto

참조 : http://technet.microsoft.com/en-us/library/cc755399.aspx

요즘 Citrix 관련해서 문의를 많이 받는다. 이중 Windows 2003 Terminal Services Architecture에

관해 물으시는 분들이 많아 Windows 2003 Terminal Services Architecture에 대한 내용을 정리해보았

다.  Windows 2003 Terminal Services는 크게 4가지 요소로 구성이된다. multi-user kernel, client,

Terminal Services Licensing, Session Directory Services이다. 흔히 Terminal Services를 구성하겠다고

하면 먼저Windows 2003 OS가 설치되어 있어야 하고, 필요한 License를 구매하고 이후 Terminal

Server 및 License서버 역활을 추가 시키고, Client Session을 관리하기 위해 Terminal Server에 들어가

서 직접 확인하고...뭐이런 일련의 과정을 생각한다면 쉽게 기억할 수 있을 것이라 생각이 된다.

그럼 이제부터 Terminal Services Architecture에 대한 본론으로 들어가보자!!

image

처음에 Session Manager가 실행되고 이후 Sub System Process가 기동되는 순서로 프로세스가

시작이된다. 그러나 여기서는 Terminal Services가 핵심이 아니던가!! 이에 Terminal Services에서 실행

되는 Process에 대한 설명에 대해 간단히 알아보자!!

termiserv.exe : Client 연결을 운영하며, 서비스 생성이나 Shutdown시 연결 확인을 하는 Prcoess

termdd.sys : RDP Protocol을 말하며, terminal server의 핵심 드라이버

RdpDD.sys : Win32K.sys에서 처리된 값을 받아 RdpWD.sys로 전달해 주는 RDPWD를 RDP Protocol로

               변환RDP Display Driver역활!!

RdpWD.sys : multi-chanel Data를 받아 적절한 Session 값으로 전달

wlnotify.dll : User Mode에서 Client Session을 생성한다.

Terminal Server Service를 실행하였을 경우 각 Client 마다 Client Session이 연결되게 된다. 이때

연결된 Client에서는 고유한 "SessionID"를 부여받게 된다. (이중 Console ID는 SessionID 0 이다)

이러한 일련의 과정은 Console접속부터 이루어 지게 된다는 점을 잊지 말자. Console Session 연결이

이루어지면 Display, mouse, keyboard와 같은 장치 driver들이 Load 되게 된다.  Console Session이

만들어진 후에 Terminal Server Services는 Session Manager (Smss.exe)를 호출하게 되며 2개의

Thread를 생성하게 된다. 이후 idle Session을 생성하며, Session Manager는 Csrss.exe, winlogon.exe,

win32k.sys등을 Session ID에 Mapping 한다. (참고로 csrss.exe와 winlogon.exe는 Session ID마다

1개씩 생성된다)

이후 Windows Image Loader는 image header안에 미리 정의된 Bit set 에 의해

SessionSpace locadble image와 같은 Win32k.sys등의 드라이버를 인식하게 된다. 이후 만약

Win32k.sys 드라이버가 Load 되지 않았다면 해당 Session에서 물리적 메모리와 virtual Kernel 주소

공간의 포일터의 이미지를 코드화 하여 재인식 시키는 작업을 하며, 이미 Active 되어 있는 Session에

미리 Load된 Image`s Code(win32k.sys)가 있을 경우에는 기존에 사용하던 Memory 공간에 있는것을

참조한다.

Console Session 과 Terminal Server의 각 Session들은 각기 독립적인 Display, keyboard, mouse등의

장치 Driver를 갖게 된다. rdpdd.dll을 통해 mouse, keyboard등의 Client Device들은 RDP driver인

Rdpwd.sys로 replace되어 동작하게 되다. 결국 이러한 역활을 할수 Device Mapping이 될수있께

도와주는 드라이버가 Termdd.sys라는 RDP Protocol을 이용하여 Client Services를 진행하게 된다.

말로쓰면 상당히 복잡한 내용들이지만 그림으로 표현하면 이렇게 간단하다!!

image

흠...허무하당...ㅋㅋ 보너스도 물리적 구성도에 대한 그림도 Capture해서 정리한다.

image 

신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by hotpoto

티스토리 툴바