[.net2] wrapper pour api windows terminal services.

Soyez le premier à donner votre avis sur cette source.

Vue 9 694 fois - Téléchargée 435 fois

Description

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.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cedricsynix
Messages postés
4
Date d'inscription
samedi 21 janvier 2006
Statut
Membre
Dernière intervention
2 septembre 2009
-
Salut,

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
Console.WriteLine(sess_ext.WTSClientAddress.ToString)


Si qq d'autre à une idée pour trouver l'ip d'un client connecté, ca m'intéresse :)

Merci d'avance,

Cédric
cs_Willi
Messages postés
2376
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
16 -
Etrange, cela tourne depuis des mois sur des applis sous Windows2000 Pro et XP et RAS...
As-tu un cluster de monter sur tes serveurs TSE ?
nethobbit
Messages postés
1
Date d'inscription
samedi 24 décembre 2005
Statut
Membre
Dernière intervention
17 octobre 2008
-
Je crois avoir le même problème que Dimitriusai. J'utilise le dll à partir d'une classe dans une appli Winforms en C#. Je peux exécuter l'application une fois ou deux, mais à la longue l'appli gèle lors de l'appel à la fonction Close() de la dll. Et j'ai un processus "vshost" qui persiste toujours. Le "try/catch" que j'ai codé n'est jamais atteint car je n'ai aucun retour de l'appel à Close().
dimitriusai
Messages postés
76
Date d'inscription
lundi 6 novembre 2006
Statut
Membre
Dernière intervention
7 mai 2009
-
rien n'est levé, le try catch ne détecte rien du tt. Le programme plante simplement. Dans la boucle suivante.

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
cs_Willi
Messages postés
2376
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
16 -
Que veux-tu dire par "cela plante" ?
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.