Récupérer le nom du pc connecté à un serveur en terminal server (rdp)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 14 436 fois - Téléchargée 29 fois

Contenu du snippet

Lorsqu'on est connecté en Terminal Server et qu'on demande le nom du PC on obtient généralement le nom du server (ce qui est normal). Mais la plupart du temps on a besoins du nom du PC Client pour savoir qui effectue certaines opération (sachant qu'on peut avoir un user identique à partir de PC différents).
Donc avec ce code on retrouve le nom du PC Client

Source / Exemple :


Enum WTS_INFO_CLASS
        WTSInitialProgram = 0
        WTSApplicationName = 1
        WTSWorkingDirectory = 2
        WTSOEMIdWTSOEMIdNot = 3
        WTSSessionId = 4
        WTSUserName = 5
        WTSWinStationName = 6
        WTSDomainName = 7
        WTSConnectState = 8
        WTSClientBuildNumber = 9
        WTSClientName = 10
        WTSClientDirectory = 11
        WTSClientProductId = 12
        WTSClientHardwareId = 13
        WTSClientAddress = 14
        WTSClientDisplay = 15
        WTSClientProtocolType = 16
        WTSIdleTime = 17
        WTSLogonTime = 18
        WTSIncomingBytes = 19
        WTSOutgoingBytes = 20
        WTSIncomingFrames = 21
        WTSOutgoingFrames = 22
    End Enum

    Private Const WTS_CURRENT_SERVER_HANDLE As Integer = -1

    Private Declare Sub WTSFreeMemory Lib "wtsapi.dll" (ByVal memory As IntPtr)
    Private Declare Auto Function WTSGetActiveConsoleSessionId Lib "Kernek32.dll" () As Integer
    Private Declare Auto Function WTSQuerySessionInformation Lib "wtsapi32.dll" ( _
            ByVal hServer As Int32, _
            ByVal SessionId As Int32, _
            ByVal InfoClass As WTS_INFO_CLASS, _
            ByRef ppBuffer As IntPtr, _
            ByRef pCount As Int32) As Int32

    Private Function fnGetClientName() As String
        Dim R As String = ""
        Dim Buffer As IntPtr = IntPtr.Zero
        Try
            Dim bytesReturned As Integer
            Dim sessionInfo As Boolean = WTSQuerySessionInformation(IntPtr.Zero.ToInt32, -1, _
                WTS_INFO_CLASS.WTSClientName, Buffer, bytesReturned)
            R = System.Runtime.InteropServices.Marshal.PtrToStringAuto(Buffer)
        Catch ex As Exception

        Finally
            Try
                WTSFreeMemory(Buffer)
                Buffer = IntPtr.Zero
            Catch ex As Exception

            End Try
        End Try
        Return R
    End Function

A voir également

Ajouter un commentaire

Commentaires

Messages postés
2
Date d'inscription
mercredi 23 février 2011
Statut
Membre
Dernière intervention
23 février 2011

bonjour;a tous est ce que vous pouvez me aider,j' ai besoin de cours sur rdp,merciii d'avance
Messages postés
956
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
21 août 2014
1
avant de faire ça, il faut que tu apprennes à développer en visual basic. y a des bouquins simples pour ça... ensuite il faut que tu comprennes ce qu'est le Remote Desktop Protocol et que tu ais un serveur pour tester le source. bonne continuation
Messages postés
4
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
22 avril 2008

AH donc je met implement un .Exe????

QUand je fais ca me dit NTVDM a rencontré une erreur matérielle :(

En tout cas merci de la réponse rapide
Messages postés
956
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
21 août 2014
1
c pas du jscript... mais du vb.net
Messages postés
4
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
22 avril 2008

euh je vais peut etre passé pour un naze , mais on en fait quoi du code???

Je l'ai mis dans un fichier Jscript mais ca n,e fonctionne pas??

Merci de votre aide
Afficher les 17 commentaires

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.