2011-01-14 8 views
13

Sitzungen, Fensterstationen und Desktops.Sitzungen, Fensterstationen und Desktops

Eine Sitzung besteht aus allen Prozess- und anderen Systemobjekten, die ein einzelnen Benutzer-Anmeldesitzung darstellen. Sitzungen enthalten Fenster Stationen und Fenster Stationen enthalten Desktops.

Die oben ist von http://blogs.technet.com/b/askperf/archive/2007/07/24/sessions-desktops-and-windows-stations.aspx

(Ähnliche Artikel sagen dasselbe, zB blogs.technet.com/b/askperf/archive/2007/04/27/application-compatibility-session-0- isolation.aspx und blogs.msdn.com/b/ntdebugging/archive/2007/01/04/desktop-heap-overview.aspx)

Ich habe Sitzungen und Anmeldesitzungen immer verstanden, um ein und dieselbe Sache zu sein .

Allerdings lesen p. 474, Russinovich und Solomon, Windows Internals, 5. Auflage, sagt er (vorletzter Absatz):

Die CreateProcessWithLogon Funktion auch ein Token erzeugt, indem eine neue Anmeldesitzung mit einem anfänglichen Prozess zu schaffen, das ist, wie die Der Runas-Befehl startet Prozesse unter alternativen Tokens .

So erstellt Runas eine neue Anmeldesitzung. Wenn wir Runas verwenden, um Editor unter den Anmeldeinformationen eines anderen Benutzers auszuführen, sehen wir, dass es auf dem Desktop angezeigt wird. Also Notepad läuft auf dem gleichen Desktop wie alles andere. (Dies ist, soweit ich es verstehe, der Standard-Desktop in Window Station Winsta0; die interaktive Fensterstation.) Also, was wir jetzt haben, sind zwei Anmeldesitzungen mit der gleichen Sitzung (die Sache, die Fenster Stationen enthält) zugeordnet. Sitzungen und Anmeldesitzungen scheinen also nicht identisch zu sein.

Kann jemand bitte dies bestätigen?

Konfus

+2

Die folgende Webseite zeigt eine illustrierte Erklärung von Sitzungen, Fensterstationen und Desktop: http://securityinternals.blogspot.ae/2014/01/on-sesssion-windows-and-desktops.html – user295490

Antwort

18

Es gibt tatsächlich zwei Arten von Sitzungen hier. Hier ist mein Verständnis davon, wie sie funktionieren.

  1. A logon session[2] vom verwaltet wird Local Security Authority[2] und verwaltet den Umfang einer Benutzeranmeldung. Diese werden in erster Linie durch den Prozess winlogon, aber auch sekundär durch API-Funktionen wie LogonUser, CreateProcessAsUser und CreateProcessWithLogonW oder durch Anwendungen, die diese Funktionen verwenden, wie z. B. den Befehl runas, erstellt.

    Eine Anmeldesitzung ist nicht als window stations and desktops auf spezifische Object Manager[2] Konzepte gebunden. Es ist im Grunde nur ein Informationsblock, der die Anmelde-SID und einige zwischengespeicherte Sicherheitsinformationen über das Konto enthält. Dieser Block von Informationen, diese Anmeldesitzung, ist, was ein access token zeigt.

  2. Der andere Sitzungstyp wird manchmal als Terminaldienstesitzung, Terminalserversitzung, Remote Desktop session, Anmeldesitzung (so verwirrend wie diese), Benutzeranmeldungssitzung oder Benutzersitzung bezeichnet. Gewöhnlich wird es jedoch nur als "Sitzung" ohne weitere Qualifikation bezeichnet.

    Dies ist die Art von Sitzung, die Sie normalerweise hören werden, und was window stations gehören. Diese Art von Sitzung came about unterstützt mehrere interaktive GUI-Anmeldungen, wie von den Terminaldiensten (jetzt Remote Desktop) bereitgestellt, und wird jetzt auch zur Unterstützung von Fast User Switching verwendet. Sitzungen bieten die erforderliche Isolierung zwischen den Object Manager-Objekten, die jeder Benutzeranmeldung zugeordnet sind.

Ich verbringe nicht viel Zeit mit all diesem Zeug durcheinander, also bin ich ein wenig verschwommen auf einige der Details, aber ich denke, das ist eine ziemlich gute Darstellung des Gesamtbildes ist. Ich hoffe, es klärt die Dinge ein wenig auf.

+0

Danke! Nachdem ich das Wochenendkapitel 3 von Windows Internals gelesen und mit Sysinternals Tools wie Logonsession experimentiert habe, passt das, was du beschreibst, zu dem mentalen Bild, das ich aufgebaut habe, über das, was vor sich geht. Es ist nur schade, dass die meisten M $ -Techniker nicht zwischen den beiden Tieren unterscheiden. Thx vor allem für den Verweis auf [diesen Artikel] (http://homepage.ntlworld.com/jonathan.booynepollard/FGA/windows-nt-session.html). Dies zu lesen, half weiter, alles zu kristallisieren. Danke nochmal! – Confused

+0

Danke nochmal. Ich habe gerade einen ganzen Morgen verschwendet, nur um zu entdecken, dass die Doktoren das Wort "Sitzung" auf eine andere Weise benutzen. Versuchen Sie, eine Konsolensitzung mit LogonUser vergeblich zu erstellen, die Funktion ist erfolgreich, aber das zurückgegebene Token ist für eine LSA-Sitzung keine interaktive Sitzung überhaupt. –

+0

Fensterstationen und Terminaldienste sind nicht konzeptionell miteinander verbunden. Tatsächlich gab es eine Zeit, in der TS kein integraler Bestandteil von Windows war und wir hatten Desktops und Window Stations. – 0xC0000022L