web-dev-qa-db-fra.com

Comment obtenir l'adresse IP d'un client de bureau distant? Et comment puis-je déclencher une commande Shell lors de la connexion RDP?

Existe-t-il un moyen de déterminer l'adresse IP d'un client de bureau distant à l'aide de PowerShell (ou d'une autre méthode) sur le serveur? (Windows Server 2008 R2 x64 est ce que j'utilise)

EDIT: Je trouve que je peux grep stdout de netstat pour récupérer cette information qui est très faisable, alors comment puis-je déclencher un script/Shell-commande quand un client se connecte?

23
chaz

D'accord, j'ai compris que le task scheduler l'application fournie avec Windows est configurable pour que je puisse exécuter un script batch, déclenché lorsqu'un événement dans le journal des événements est généré. Via l'interface utilisateur, vous choisissez le type d'événement, la source d'événement et l'ID d'événement, auquel cas j'ai utilisé 4264 (et oui capture tous les types d'ouverture de session). Ici, j'ai plutôt utilisé un simple script batch:

SET logfile="rdp_ip_logs.log"
date /T>>%logfile%
time /T>>%logfile%
netstat -n | find ":3389" | find "ESTABLISHED">>%logfile%

J'ai également trouvé un exemple très utile sur la façon de s'abonner/écouter les écritures d'événement dans .NET: http://msdn.Microsoft.com/en-us/library/bb552514 (v = vs.90) .aspx Je vais finir par l'utiliser à la place pour écrire certains événements dans une base de données pour un examen en ligne.

Le seul inconvénient de cette solution est que si vous avez activé les services Bureau à distance et que plusieurs personnes sont connectées, vous ne pouvez pas les différencier dans la sortie netstat.

12
chaz

À partir d'une invite de commande, vous pouvez exécuter la commande suivante pour obtenir une liste des adresses IP distantes connectées à RDP (port 3389).

netstat -n | find ":3389" | find "ESTABLISHED"

Je suis certain que cela peut être scripté en PowerShell (ou même simplement un ancien fichier batch). Je peux vous donner un exemple demain si vous êtes intéressé.

22
John Homer

Si vous n'avez pas besoin de l'écrire, vous pouvez consulter le journal des événements de sécurité pour l'ID d'événement 4624. Il y aura une ligne:

Adresse réseau source: 192.168.xxx.xxx

5
Tamerz