2011-01-14 3 views
13

세션, 윈도우 스테이션 및 데스크톱.세션, 윈도우 스테이션 및 데스크톱

세션은 모든 과정과 단일 사용자의 로그온 세션을 나타내는 다른 시스템 개체로 구성되어 있습니다. 세션 에는 창 스테이션 및 창이 포함됩니다. 스테이션에는 데스크톱이 포함됩니다.

위는에서

이 (유사 기사가 같은 말을 http://blogs.technet.com/b/askperf/archive/2007/07/24/sessions-desktops-and-windows-stations.aspx, 예를 들어 blogs.technet.com/b/askperf/archive/2007/04/27/application-compatibility-session-0-입니다 isolation.aspx 및 blogs.msdn.com/b/ntdebugging/archive/2007/01/04/desktop-heap-overview.aspx)

저는 세션과 로그온 세션이 항상 같다고 생각했습니다. .

그러나, 어떻게하여 더 CreateProcessWithLogon 기능 는 초기 프로세스와 새로운 로그온 세션을 생성하여 토큰을 생성

, 입니다

되는 : 474, 루시 노비과 솔로몬은 윈도우 내부 구조, 5 판, 그것은 (끝에서 두 번째 단락) 말한다 Runas 명령 은 대체 토큰으로 프로세스를 시작합니다.

그래서 Runas는 새로운 로그온 세션을 만듭니다. Runas를 사용하여 다른 사용자의 자격 증명으로 메모장을 실행하면 바탕 화면에 메모장이 나타납니다. 그래서 메모장은 다른 모든 것과 동일한 데스크탑에서 실행됩니다. (이것은 이해할 수있는 한 Window Station Winsta0의 기본 데스크탑 인 대화 형 윈도우 스테이션입니다.) 이제 우리는 두 개의 로그온 세션이 동일한 세션 (창 스테이션을 포함하는 것)과 연결되어 있습니다. 따라서 세션과 로그온 세션은 동일하지 않은 것처럼 보입니다.

누구든지 확인할 수 있습니까?

혼동

+2

아래 웹 페이지는 세션, 윈도우 스테이션 및 데스크톱에 대한 설명을 제공합니다. http://securityinternals.blogspot.ae/2014/01/on-sesssion-windows-and-desktops.html – user295490

답변

18

여기에는 실제로 두 가지 유형의 세션이 있습니다. 그들이 어떻게 작동하는지에 대한 나의 이해가있다.

  1. logon session[2]Local Security Authority[2]에 의해 관리하고, 사용자 로그온의 범위를 관리한다. 이들은 주로 winlogon 프로세스에 의해 생성되지만 LogonUser, CreateProcessAsUserCreateProcessWithLogonW과 같은 API 함수 또는 runas 명령과 같은 이러한 함수를 사용하는 응용 프로그램에 의해 2 차적으로 생성됩니다.

    로그온 세션

    window stations and desktops는 어떠한 특정 Object Manager[2] 개념에 연결되지 않는다. 기본적으로 로그온 SID와 계정에 대한 일부 캐시 된 보안 정보를 포함하는 정보 블록입니다. 이 정보 블록 (이 로그온 세션)은 access token이 가리키는 것입니다.

  2. 다른 유형의 세션은 터미널 서비스 세션, 터미널 서버 세션, Remote Desktop session, 로그온 세션 (혼란스럽지 만), 사용자 로그온 세션 또는 사용자 세션이라고도합니다. 보통, 더 이상 자격이없는 "세션"이라고 불립니다.

    이것은 보통 들으려는 세션 유형이며 window stations이 속한 세션입니다. 이 유형의 세션 came about은 터미널 서비스 (현재는 Remote Desktop으로 알려짐)에서 제공하는 여러 대화 형 GUI 로그온을 지원하며 이제는 Fast User Switching을 지원하는데도 사용됩니다. 세션은 각 사용자 로그온과 관련된 개체 관리자 개체간에 필요한 격리를 제공합니다.

나는이 모든 물건을 만지작 많은 시간을 할애하지 않는, 그래서 나는 세부 사항의 일부에 약간 퍼지 해요,하지만 난이 전체 그림의 꽤 공정한 표현이라고 생각합니다. 나는 그것이 조금 더 명확하게하기를 바란다.

+0

감사합니다! 주말의 Windows Internals 3 장을 읽고, 로그온 세션과 같은 Sysinternals 도구로 실험 해 보았습니다. 설명하는 내용은 내가 진행하고있는 작업을 통해 구축 한 정신적 인 그림에 맞습니다. 대부분의 M $ 기술 문서가 두 동물을 구별하지 못하는 것이 유감입니다. 특히 [이 기사] (http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/windows-nt-session.html) 참조를위한 Thx. 이것을 읽음으로써 모든 것을 구체화하는 데 도움이되었습니다. 다시 Thx! – Confused

+0

다시 한번 감사드립니다. 나는 방금 전날 아침을 낭비하여 문서가 각각 "세션"이라는 단어를 다른 방식으로 사용한다는 것을 발견했습니다. LogonUser를 사용하여 헛되이 콘솔 세션을 만들려고했지만 함수는 성공하지만 리턴 된 토큰은 대화식 세션이 아닌 LSA 세션에 대한 것입니다. –

+0

창 스테이션 및 터미널 서비스는 개념적으로 서로 연결되어 있지 않습니다. 실제로 TS는 Windows의 핵심 부분이 아니었지만 아직 데스크톱과 윈도우 스테이션이있는 경우가있었습니다. – 0xC0000022L

관련 문제