Сессии, оконные станции и рабочие столы - PullRequest
14 голосов
/ 14 января 2011

сеансов, оконных станций и рабочих столов.

Сессия состоит из всего процесса и другие системные объекты, которые представляют сеанс входа одного пользователя. сессии содержат оконные станции и окно Станции содержат рабочие столы.

Выше 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 / Архив / 2007/01/04 / настольными кучного overview.aspx)

Я всегда понимал сеансы и сеансы входа в систему как одно и то же.

Тем не менее, чтение с. 474, Руссинович и Соломон, Windows Internals, 5-е издание, в нем говорится (предпоследний абзац):

функция CreateProcessWithLogon также создает токен, создавая новый сеанс входа в систему с начальным процессом, как команда Runas запускает процессы по альтернативе лексемы.

Итак, Рунас создает новый сеанс входа. Если мы используем Runas для запуска Блокнота с учетными данными другого пользователя, мы видим его на рабочем столе. Так что Блокнот работает на том же рабочем столе, что и все остальное. (Насколько я понимаю, это рабочий стол по умолчанию в Window Station Winsta0; интерактивная оконная станция.) Итак, теперь у нас есть два сеанса входа в систему, связанных с одним и тем же сеансом (который содержит оконные станции). Таким образом, сеансы и сеансы входа не будут выглядеть одинаково.

Кто-нибудь может подтвердить это, пожалуйста?

Confused

1 Ответ

20 голосов
/ 16 января 2011

Здесь действительно есть два типа сессий.Вот мое понимание того, как они работают.

  1. A сеанс входа в систему [ 2 ] управляется Local Security Authority [ 2 ] и управляет областью входа пользователя в систему.Они создаются главным образом с помощью процесса winlogon , а также с помощью таких функций API, как LogonUser, CreateProcessAsUser и CreateProcessWithLogonW или приложениями, использующими эти функции, такими как команда runas.

    Сеанс входа не привязан ни к какому конкретному Диспетчеру объектов [ 2 ] понятия как оконные станции и рабочие столы .По сути, это просто блок информации, содержащий SID входа в систему и некоторую кешированную информацию о безопасности учетной записи.Этот блок информации, этот сеанс входа в систему, на что указывает маркер доступа .

  2. Другой тип сеанса иногда называют сеансом служб терминалов, сервером терминаловсеанс, сеанс удаленного рабочего стола , сеанс входа в систему (как это ни странно), сеанс входа пользователя или сеанс пользователя.Обычно, однако, это просто называется «сеанс», без дополнительной квалификации.

    Это тип сеанса, о котором вы обычно слышите, и к которому относятся оконные станции .Этот тип сеанса появился примерно для поддержки нескольких интерактивных входов в систему с графическим интерфейсом пользователя, как это предусмотрено службами терминалов (теперь известными как Remote Desktop ), и теперь также используется для поддержки Fast UserПереключение .Сеансы обеспечивают необходимую изоляцию между объектами Object Manager, связанными с каждым входом пользователя в систему.

Я не трачу много времени на то, чтобы возиться со всеми этими вещами, поэтому я немного размышляю над некоторымииз деталей, но я думаю, что это довольно справедливое представление общей картины.Надеюсь, это немного прояснит ситуацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...