2011-01-14 10 views
13

Sesiones, estaciones de ventana y computadoras de escritorio.Sesiones, estaciones de ventana y computadoras de escritorio

Una sesión se compone de todos los procesos y otros objetos del sistema que representan sesión con derechos de usuario único . Las sesiones contienen Window Stations y Window Las estaciones contienen escritorios.

Lo anterior es de http://blogs.technet.com/b/askperf/archive/2007/07/24/sessions-desktops-and-windows-stations.aspx

(artículos similares dicen lo mismo, por ejemplo blogs.technet.com/b/askperf/archive/2007/04/27/application-compatibility-session-0- isolation.aspx y blogs.msdn.com/b/ntdebugging/archive/2007/01/04/desktop-heap-overview.aspx)

Siempre he entendido que las Sesiones y las sesiones de inicio de sesión son una y la misma cosa .

Sin embargo, leyendo p. 474, Russinovich y Salomón, Windows Internals, quinta edición, se dice (penúltimo párrafo):

La función CreateProcessWithLogon también crea un token mediante la creación de una nueva sesión de inicio de sesión con un proceso inicial, que es como el El comando Runas inicia procesos con tokens alternativos .

So Runas crea una nueva sesión de inicio de sesión. Si utilizamos Runas para ejecutar el Bloc de notas con las credenciales de un usuario diferente, lo vemos aparecer en el escritorio. Entonces Notepad se ejecuta en el mismo escritorio que todo lo demás. (Esto es, por lo que yo entiendo, el escritorio predeterminado en Windows Station Winsta0; la estación de ventana interactiva.) Entonces, lo que tenemos ahora son dos sesiones de inicio de sesión asociadas con la misma sesión (lo que contiene estaciones de ventana). Por lo tanto, las sesiones y las sesiones de inicio de sesión no parecerían ser lo mismo.

¿Alguien puede confirmar esto por favor?

confundido

+2

La página web a continuación ofrece una explicación ilustrada de sesiones, estaciones de ventana y escritorio: http://securityinternals.blogspot.ae/2014/01/on-sesssion-windows-and-desktops.html – user295490

Respuesta

18

De hecho, existen dos tipos de sesiones aquí. Aquí está mi entendimiento de cómo funcionan.

  1. A logon session[2] es administrado por el Local Security Authority[2], y gestiona el alcance de un inicio de sesión de usuario. Estos se crean principalmente mediante el proceso winlogon, pero también de forma secundaria por funciones de API como LogonUser, CreateProcessAsUser y CreateProcessWithLogonW, o por aplicaciones que utilizan estas funciones, como el comando runas.

    Una sesión de inicio de sesión no está vinculado a ningún específicas Object Manager[2] conceptos como window stations and desktops. Básicamente es solo un bloque de información que contiene el SID de inicio de sesión y cierta información de seguridad en caché sobre la cuenta. Este bloque de información, esta sesión de inicio de sesión, es a lo que apunta un access token.

  2. El otro tipo de sesión a veces se denomina sesión de Servicios de Terminal Server, sesión de Terminal Server, Remote Desktop session, sesión de inicio de sesión (tan confusa como es), sesión de inicio de sesión de usuario o sesión de usuario. Por lo general, sin embargo, se llama simplemente "sesión", sin más calificación.

    Este es el tipo de sesión que normalmente escuchará, y es a lo que pertenece window stations. Este tipo de sesión came about admite múltiples inicios de sesión de GUI interactivos, tal como lo proporcionan los Servicios de Terminal Server (ahora conocidos como Remote Desktop), y ahora también se usa para admitir Fast User Switching. Las sesiones proporcionan el aislamiento necesario entre los objetos del Administrador de Objetos asociados con cada inicio de sesión de usuario.

No paso mucho tiempo jugando con todas estas cosas, así que estoy un poco borroso en algunos de los detalles, pero creo que esto es una representación bastante razonable de la visión de conjunto. Espero que aclare un poco las cosas.

+0

¡Gracias! Después de leer el fin de semana del capítulo 3 de Windows Internals, y experimentar con las herramientas de Sysinternals, como las sesiones de inicio de sesión, lo que describes se ajusta a la imagen mental que he desarrollado sobre lo que está sucediendo. Es una lástima que la mayoría de los doctores técnicos no logren distinguir entre los dos animales. Especialmente para la referencia a [este artículo] (http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/windows-nt-session.html). Leer esto ahora ayudó a cristalizar todo. ¡Thx otra vez! – Confused

+0

Gracias de nuevo. He estado perdiendo toda una mañana solo para descubrir que los documentos utilizan la palabra "sesión" de una manera diferente. He intentado crear una sesión de consola utilizando LogonUser en vano, la función se realiza pero el token devuelto es para una sesión de LSA, no una sesión interactiva. –

+0

Las estaciones de ventana y los servicios de terminal no están conceptualmente vinculados entre sí. De hecho, solía haber un momento en que TS no era una parte integral de Windows y todavía teníamos escritorios y estaciones de ventana. – 0xC0000022L

Cuestiones relacionadas