Сессии, окна и настольные компьютеры

Сессии, оконные станции и настольные компьютеры.

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

Вышеуказанное из 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 создает новый сеанс входа в систему. Если мы используем Runas для запуска Notepad под разными учетными данными пользователя, мы видим, что он отображается на рабочем столе. Так что Блокнот работает на одном рабочем столе, как и все остальное. (Это, насколько я понимаю, рабочий стол по умолчанию в Window Station Winsta0, интерактивная оконная станция.) Итак, теперь у нас есть два сеанса входа в систему, связанные с тем же сеансом (вещью, которая содержит оконные станции). Таким образом, сеансы и сеансы входа не будут отображаться как одно и то же.

Кто-нибудь может это подтвердить?

Confused

Ответы

Ответ 1

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

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

    Сессия входа не привязана к какому-либо конкретному Object Manager [2] как оконные станции и настольные компьютеры. В основном это всего лишь блок информации, содержащий идентификатор входа в систему и некоторые кэшированные сведения о безопасности учетной записи. Этот блок информации, этот сеанс входа в систему, указывает на то, что указывает токен доступа .

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

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

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