Понимание информации о сеансе из WTSEnumerateSessions - PullRequest
1 голос
/ 18 сентября 2009

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

Моя главная проблема - не понимание того, как использовать содержимое возвращенной структуры WTS_SESSION_INFO, чтобы определить, сколько пользователей вошли в систему. В Windows XP Pro с пакетом обновления 3 (SP3), когда один пользователь вошел в систему, я получаю два больших объема информации о сеансе;

Название Win Station: консоль, ID: 0
Название станции выигрыша: RDP-Tcp, ID: 65536

В Windows 7 Ultimate (64-разрядная версия), снова, когда один пользователь вошел в систему, я получаю две партии информации о сеансе:

Win Station Название: услуги, ID: 0
Название Win Station: console, ID: 1

Может ли кто-нибудь объяснить / направить меня в сторону ресурса, который может объяснить, как и почему информация о сеансе отличается между двумя операционными системами? И как я могу определить, сколько пользователей вошли в систему по этой информации?

Большое спасибо

Ответы [ 2 ]

3 голосов
/ 21 сентября 2009

Почему сессия 0 изменилась: http://msdn.microsoft.com/en-us/library/bb756986.aspx

Сеанс RDP-Tcp с идентификатором 65536 является сеансом прослушивания - он просто прослушивает входящие соединения.

Чтобы определить, сколько пользователей вошли в систему, я бы посоветовал подсчитать количество сеансов с непустыми именами пользователей. Вы можете получить имя пользователя сеанса, используя WTSQuerySessionInformation . Если вы используете язык .NET, вы можете найти библиотеку Cassia более удобной в использовании.

1 голос
/ 11 мая 2011

Если вы хотите использовать это для получения информации о вошедших в систему пользователях, рассмотрите возможность использования WTSEnumerateSessionsEx , поскольку в нем есть несколько полезных дополнительных полей, включая pUserName и pDomainName.

Я думаю, что меньше проблем, чем комбо из WTSEnumerateSessions и WTSQuerySessionInformation.

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