Почему перечисление сеансов дает дополнительные возможности в Windows 7?

Если я перечисляю сеансы, используя LsaEnumerateLogonSessions(), чтобы получить список идентификаторов LUID сеанса, затем LsaGetLogonSessionData(), чтобы получить сведения о каждом сеансе (как описано в MSDN), то в Windows XP он ведет себя именно так, как я и ожидал, показывая один вход в систему для меня плюс несколько входов в систему для служб.

Запуск той же программы в Windows 7 показывает два сеанса входа в систему плюс сеансы службы. Два сеанса для меня отображаются как один и тот же пользователь и одно и то же время входа в систему.

Я запускал некоторые процессы с повышенными правами, поэтому я подумал, что это может быть так, но второй сеанс все еще существует, когда я закрываю их и даже после перезагрузки. Так кто-нибудь знает, почему существует второй сеанс для каждого реального пользователя, вошедшего в систему? Как определить, какой из них «настоящий»?

Спасибо

Тим


person Tim Haynes    schedule 12.02.2011    source источник


Ответы (1)


Некоторое быстрое гугление, кажется, указывает на то, что Windows 7 (и, возможно, Vista до нее) создает два сеанса входа в систему для пользователей с правами администратора, когда включен UAC — один с повышенными правами и один без.

person Luke    schedule 12.02.2011
comment
Да, это примерно его размер. Пользователь без прав администратора получает только один сеанс, а пользователь с правами администратора — два. Чего я не вижу, так это того, как узнать, какой сеанс является обычным, а какой создан для расширенного использования. Есть идеи? Они выглядят точно так же в структуре, возвращаемой LsaGetLogonSessionData(), за исключением LUID сеанса. - person Tim Haynes; 14.02.2011
comment
Я не совсем знаком с этой областью, но единственное, что я смог увидеть за несколько минут чтения документации, — это запрос токена для TokenStatistics или TokenOrigin; это возвращает идентификатор сеанса входа в систему, из которого был создан токен. Таким образом, вы можете получить один из токенов (полный или ограниченный) и получить его сеанс входа в систему; тогда другой сеанс входа будет соответствовать другому токену. - person Luke; 14.02.2011