2008-10-27 6 views
3

Je souhaite écrire une application pour tester si une machine Windows répond correctement à RDP (Remote Desktop) - c'est-à-dire pour vérifier si la machine autorise non seulement la connexion, mais répond aussi normalement, et n'est pas accroché ou ne répond pas anormalement.Test de connectivité/réactivité RDP

Y at-il une bibliothèque ou un utilitaire que je peux utiliser pour faire cela? Mes recherches ont atteint RDC clients, mais j'espère qu'il y a quelque chose là-bas offre au moins une API pour tester. J'aimerais beaucoup utiliser Java ou un langage de script pour cela, mais je suis ouvert aux suggestions.

+0

Avez-vous un accès administrateur à ces machines? – Skyl3r

Répondre

0

trouvé sur Experts Exchange:

use Net::Telnet(); 
$t = new Net::Telnet (Timeout => 10, Prompt => '', Port >= 3389); 
if($t->open("computer.name.or.ip")) { 
    print "Connect successful\n"; 
} 
else { 
    print "Could not connect\n"; 
} 

L'idée était de tenter une connexion et si elle ne peut pas se connecter dans le montant « x » secondes, on suppose qu'il ne va pas fonctionner. Cela devient un peu plus compliqué si vous essayez de voir si une connexion pour un utilisateur spécifique fonctionne ou non, mais cela devrait au moins vous aider à démarrer.

NOTE: Comme indiqué dans les commentaires, la solution originale a quitté le port RDP, donc je compris que dans cette ...

+0

RDP s'exécute sur le port 3389 ... vous devrez donc l'ajouter à votre exemple. – paxos1977

+0

Merci, austirg. Totalement manqué cela. –

+0

Juste pour clarifier, je cherche plus que juste telnet. J'ai besoin de la confirmation que non seulement la connexion peut être traitée, mais que le bureau à distance est également réactif. – Rob

1

Vous pouvez trouver quelques bonnes réponses à cette question: Programmatically create and launch and RDP session (without gui)

Parce que RDP est un constantly evolving proprietary protocol, je suppose qu'il n'y a pas de code open source simple que vous pouvez prendre et utiliser. Cela nous laisse avec deux chemins possibles:

  1. Use Microsoft RDP ActiveX control (sous Windows)
  2. Lancement mstsc.exe et envoyer des événements de clavier à elle (également sous Windows, en utilisant votre langue préférée)

Pour la deuxième option, je suggère AutoHotkey. Il est parfait pour automatiser les programmes Windows et est livré avec une bibliothèque puissante. Il a également une forte communauté derrière elle, vous pouvez donc trouver beaucoup de scripts utiles sur Internet. Je l'utilise pour contrôler winamp (comme 'je déteste cette chanson, supprime-la et passe au suivant') (enfin, techniquement 'passe à la chanson suivante et supprime la précédente' car tu ne peux pas effacer le fichier en cours d'utilisation mais tu avoir l'idée). Si vous choisissez ce chemin, je peux vous aider avec le script.