Fensterstation und Desktoperstellung
Das System erstellt automatisch die interaktive Fensterstation. Wenn sich ein interaktiver Benutzer anmeldet, ordnet das System die interaktive Fensterstation der Benutzeranmeldungssitzung zu. Das System erstellt außerdem den Standardeingabedesktop für die interaktive Fensterstation (Winsta0\default). Prozesse, die vom angemeldeten Benutzer gestartet werden, sind dem Winsta0\default-Desktop zugeordnet.
Ein Prozess kann die CreateWindowStation--Funktion verwenden, um eine neue Fensterstation zu erstellen, und die CreateDesktop oder CreateDesktopEx--Funktion, um einen neuen Desktop zu erstellen. Die Anzahl der Desktops, die erstellt werden können, ist durch die Größe des Systemdesktop-Heaps begrenzt. Weitere Informationen finden Sie unter CreateDesktop.
Wenn ein nichtinteraktiver Prozess wie eine Dienstanwendung versucht, eine Verbindung mit einer Fensterstation herzustellen und für die Prozessanmeldungssitzung keine Fensterstation vorhanden ist, versucht das System, eine Fensterstation und einen Desktop für die Sitzung zu erstellen. Der Name der erstellten Fensterstation basiert auf dem Anmeldesitzungsbezeichner, und der Desktop heißt Standard, wie hier beschrieben:
- Wenn ein Dienst im Sicherheitskontext des LocalSystem-Kontos ausgeführt wird, aber das attribut SERVICE_INTERACTIVE_PROCESS nicht enthält, verwendet er die folgende Fensterstation und den Desktop: Service-0x0-3e7$\default. Diese Fensterstation ist nicht interaktiv, sodass der Dienst keine Benutzeroberfläche anzeigen kann. Darüber hinaus können vom Dienst erstellte Prozesse keine Benutzeroberfläche anzeigen.
- Wenn der Dienst im Sicherheitskontext eines Benutzerkontos ausgeführt wird, basiert der Name der Fensterstation auf dem Benutzer SID Service-0xZ1-Z2$, wobei Z1 der hohe Teil der Anmelde-SID und Z2 der niedrige Teil der Anmelde-SID ist. Da eine SID für die Anmeldesitzung eindeutig ist, erhalten zwei Dienste, die im selben Sicherheitskontext ausgeführt werden, eindeutige Fensterstationen. Diese Fensterstationen sind nicht interaktiv.
Die diskretionäre Zugriffssteuerungsliste (ACCESS Control List, DACL) für die Fensterstation und den Desktop umfasst die folgenden Zugriffsrechte für das Benutzerkonto des Diensts:
Fensterstation:
- WINSTA\_ACCESSCLIPBOARD WINSTA\_ACCESSGLOBALATOMS WINSTA\_CREATEDESKTOP WINSTA\_EXITWINDOWS WINSTA\_READATTRIBUTES STANDARD\_RIGHTS\_REQUIRED
Desktop:
- DESKTOP\_CREATEMENU DESKTOP\_CREATEWINDOW DESKTOP\_ENUMERATE DESKTOP\_HOOKCONTROL DESKTOP\_READOBJECTS DESKTOP\_WRITEOBJECTS STANDARD\_RIGHTS\_REQUIRED