2009-09-18 7 views
1

J'ai essayé d'utiliser WTSEnumerateSessions pour déterminer le nombre d'utilisateurs actuellement connectés, comme indiqué dans cette section post.Présentation des informations de session de WTSEnumerateSessions

Mon principal problème est de ne pas comprendre comment utiliser le contenu de la structure WTS_SESSION_INFO retournée pour déterminer le nombre d'utilisateurs connectés. Dans Windows XP Pro SP3, lorsqu'un utilisateur unique est connecté, j'obtiens deux lots d'informations de session;

Win Nom de la station: console, ID: 0
Win Nom de la station: RDP-Tcp, ID: 65536

Dans Windows 7 Édition Intégrale (64 bits), encore une fois quand est enregistré un seul utilisateur sur, je reçois deux beaucoup d'informations de session:

Win station Nom: services, ID: 0
Win Nom de la station: console, ID: 1

quelqu'un peut-il me expliquer/pointer dans la direction d'une ressource qui peut expliquer comment et pourquoi les informations de session diffèrent entre les deux syst ems? Et comment puis-je déterminer combien d'utilisateurs sont connectés à partir de ces informations?

Un grand merci

Répondre

3

Pourquoi la session 0 a changé: http://msdn.microsoft.com/en-us/library/bb756986.aspx

La session RDP-Tcp avec ID 65536 est une séance d'écoute - il écoute juste pour les connexions entrantes.

Pour déterminer le nombre d'utilisateurs connectés, je suggère de compter le nombre de sessions avec des noms d'utilisateur non vides. Vous pouvez récupérer le nom d'utilisateur d'une session en utilisant WTSQuerySessionInformation. Si vous utilisez un langage .NET, vous pouvez trouver le Cassia library plus pratique à utiliser.

1

Si vous souhaitez utiliser cette fonction pour obtenir des informations sur les utilisateurs connectés, pensez à utiliser WTSEnumerateSessionsEx, car elle contient des champs supplémentaires utiles, notamment pUserName et pDomainName.

je pense qu'il est moins de mal qu'un combo de WTSEnumerateSessions et WTSQuerySessionInformation.

+2

Malheureusement, 'WTSEnumerateSessionsEx' n'est disponible que sous Windows 7 et supérieur. – Paul

Questions connexes