Cette source fournit un wrapper pour une partie de l'API Windows Terminal Services. A savoir.
-Retrouver les serveurs TS d'un domaine.
-Enumèrer toute les sessions (TSE et console) sur un serveur TS (peu importe l'état de la session).
-Enumèrer les sessions (TSE et console) selon leur état (Active/Connecter/Déconnecter).
-Retrouver le nom utilisateur d'une session TSE à partir d'un session ID.
-Retrouver le session ID à partir du nom utilisateur de la session TSE.
-Obtenir une multitude d'informations sur une session à partir de son session ID ou du nom utilisateur TSE. (Adresse ip du client, nom du client, protocole, domaine,nom de la station cliente...)
-Obtenir des informations de temps sur une session (Connect time, Login time, idle time, disconnected time, last input time)
-Rechercher un utilisateur TSE sur l'ensemble des serveurs TS un domaine et obtenir le nom du serveur TS sur lequel il est connecté.
-Envoyer un message à une session à partir de son session ID ou de son nom utilisateur TSE.
Utilisation d'un api nom documenté pour obtenir des infos de temps sur session TSE:
http://groups.google.com/...
Une démo console est également fournit dans la source !.
Je pense avoir fait le tour de la source. Ah si celle ci est documentée et commentée.
Conclusion :
Bon développement à tous.
Commentaires
Tout d'abord, merci de partages tes efforts et connaissances avec nous autres.
J'aimerais savoir comment récupérer l'IP du client. Pas l'ip lan mais WAN.
Quand je fais ceci, c'est l'ip 192.168.x.x qui est retournée et non 212.166.x.x
Si qq d'autre à une idée pour trouver l'ip d'un client connecté, ca m'intéresse :)
Merci d'avance,
Cédric
As-tu un cluster de monter sur tes serveurs TSE ?
Try
For i As Integer = 0 To MysqlResult1.Count - 1
Dim wts As New WTSHelper()
Dim count As Integer = 0
Dim hServer As IntPtr = wts.Open(MysqlResult1(i).Item(0).ToString)
MsgBox(MysqlResult1(i).Item(0).ToString)
For Each sess As Integer In wts.EnumAllSessionsId(hServer)
Dim sess_ext As WTSLib.WTS_SESSION_INFO_EXT = wts.GetSessionInfos(hServer, sess)
sess_ext.ToString()
Dim tab As New ArrayList
Dim tab2(3)
tab2(0) = sess_ext.WTSUserName
tab2(1) = sess_ext.WTSClientName
tab2(2) = sess_ext.WTSSessionId
tab2(3) = statuschng(sess_ext.WTSConnectState)
'tab.Add(tab2)
'DataGridView1.Rows.Add(tab)
Next
wts.Close(hServer)
Next
Catch ex As Exception
MsgBox("catch" & ex.Message)
End Try
J'ai réutilisé ta dll en vb.net
Tu as une exception de levée ?
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.