Page 1 sur 1

[R] Attendre un mot dans PuTTY ou l'invité de commande

Posté : jeu. 19 mars 2015 16:47
par caropost
Bonjour à tous,

Nouvelle dans la programmation avec AutoIt, je viens solliciter votre aide d'experts :D

Pour vous mettre dans le contexte : je me connecte avec le port série à un switch via PuTTY et je souhaiterais automatiser certaines tâches. Je souhaiterais que mon programme vérifie de temps en temps qu'il fait bien ce qu'il faut au bon moment (par exemple attendre l'apparition du mot "login" avant de rentrer le login). Pour l'instant, je m'en sors avec des Sleep mais il suffit que pour une raison X ou Y la tâche précédente mette plus de temps que d'habitude à se réaliser pour empêcher le bon fonctionnement de mon script.

J'ai fais des recherches sur internet, sur ce forum et celui en anglais, j'ai regardé les exemples fournis lors de l'installation du logiciel, j'ai testé des choses mais sans résultats :( Je suis coincé, pourriez-vous m'aider svp ? :)

Je vous remercie par avance :)

Re: [...] Attendre un mot dans PuTTY ou l'invité de commande

Posté : jeu. 19 mars 2015 17:19
par Tlem
Re bonjour Caro.
Essayez plutôt d'utiliser un UDF conçu pour dialoguer avec Putty ou similaire.

Voici deux liens du forum US concernant de tels UDF :
- http://www.autoitscript.com/forum/topic/166579-udf-ssh
- http://www.autoitscript.com/forum/topic ... nk-wrapper

Il me semble qu'il y a d'autres exemples ici et là bas. ;)

Re: [...] Attendre un mot dans PuTTY ou l'invité de commande

Posté : jeu. 19 mars 2015 19:34
par jguinch
Je te conseille de te tourner vers plink, qui sera plus facilement automatisable (si tu en as la possibilité)

Re: [...] Attendre un mot dans PuTTY ou l'invité de commande

Posté : ven. 20 mars 2015 10:45
par caropost
Merci pour vos réponses :)

J'ai testé mais je n'arrive pas à me connecter :( En même temps, je ne peux pas installer Plink sur le pc...
C'est dommage parce que c'est vraiment ça qu'il me manque pour finir mon script : récupérer des données de la fenêtre (PuTTY ou invité de commande) et pouvoir les exploiter :(

Re: [...] Attendre un mot dans PuTTY ou l'invité de commande

Posté : ven. 20 mars 2015 11:43
par jguinch
Plink ne nécessite pas d'installation, il peut être utilisé comme exécutable autonome (tout comme Putty) : http://www.chiark.greenend.org.uk/~sgta ... nload.html
Il est alors possible de l'inclure dans l'exécutable au moment de la compilation, l'extraire sur le poste client dans un répertoire temporaire pour l'utiliser, puis le supprimer du répertoire temporaire => voir FileInstall

Re: [...] Attendre un mot dans PuTTY ou l'invité de commande

Posté : ven. 20 mars 2015 14:16
par caropost
Oui pardon (le pire c'est que je le sais -_- Ce doit être le vendredi, avant le week-end ^^)
Lorsque je lance l'exécutable, il me dit que Plink n'est pas une application valide pour Win32...

Re: [...] Attendre un mot dans PuTTY ou l'invité de commande

Posté : ven. 20 mars 2015 15:22
par orax
C'est dommage parce que c'est vraiment ça qu'il te manque pour finir ton script. Image

Le fichier téléchargé est peut-être corrompu ou l'antivirus aurait pu le bloquer. Retélécharge le dans le doute http://the.earth.li/~sgtatham/putty/lat ... /plink.exe

Re: [...] Attendre un mot dans PuTTY ou l'invité de commande

Posté : lun. 23 mars 2015 10:13
par caropost
Ce n'est pas gentil de se moquer des demoiselles en détresse :P
Et ce n'est pas tout à fait ce qu'il me manque, dans l'idéal ce serait de pouvoir ouvrir mon profil pré-enregistré dans PuTTY ou de pouvoir enregistrer un fichier qui m'informerai si la configuration s'est bien déroulée ou non sans avoir à utiliser des clics de souris mais je ne sais pas si c'est faisable...

J'ai retéléchargé Plink avec ton lien, c'était le 6ème téléchargement et le 6ème échec... (c'est "marrant", suivant le lien où je l'ai téléchargé, soit le pc m'affiche un pop up m'informant que ce n'est pas une appli pour Win32, soit une sorte d'invité de commande s'ouvre pour se refermer un quart de seconde plus tard).

Comme j'utilise le port série pour me connecter au switch, je pourrais m'en servir pour récupérer l'information en sortie ?

Re: [...] Attendre un mot dans PuTTY ou l'invité de commande

Posté : lun. 23 mars 2015 14:35
par orax
caropost a écrit :soit une sorte d'invité de commande s'ouvre pour se refermer un quart de seconde plus tard
C'est normal puisque c'est un programme en ligne de commande. Il faut l'exécuter depuis l'invite de commande : touche MAJ + clic droit dans le dossier où est Plink > fenêtre de commande...

Re: [...] Attendre un mot dans PuTTY ou l'invité de commande

Posté : lun. 23 mars 2015 15:22
par caropost
Oui, j'ai vu ça mais il n'y a pas l'option pour me connecter en série... Je vais regarder un peu sur internet (j'ai pas encore cherché, on m'a interrompu ^^)
J'ai réussi à me connecter en SSH mais le but de la manoeuvre est de me connecter en série pour rentrer l'adresse IP du switch et faire le reste de la configuration et de temps en temps, contrôler que ça se passe bien (par exemple, vérifier que le switch demande bien le login et le mdp pour pouvoir les insérer, vérifier que la ligne que j'attends est bien présente pour faire ce que le script simule la touche entrée plutôt que de faire un sleep etc).

Re: [...] Attendre un mot dans PuTTY ou l'invité de commande

Posté : lun. 23 mars 2015 16:04
par jguinch
Connexion au port série : plink.exe -serial :wink:

Re: [...] Attendre un mot dans PuTTY ou l'invité de commande

Posté : lun. 23 mars 2015 16:08
par caropost
jguinch a écrit :Connexion au port série : plink.exe -serial :wink:
Malheureusement, le PC a un XP tellement vieux qu'il ne propose pas l'option série :( Je ne pense pas qu'il sera possible de mettre un minimum à jour ce PC donc je pense que l'option plink tombe à l'eau :(

Re: [...] Attendre un mot dans PuTTY ou l'invité de commande

Posté : mar. 24 mars 2015 16:54
par caropost
Je teste de partir sur le CommAPI pour les communications série (https://www.autoitscript.com/wiki/CommAPI). J'ai pris les scripts fournis et le premier exemple mais il me retourne l'erreur comme quoi il ne peut pas utiliser kernel32.dll. Savez-vous comment résoudre le problème ?

Re: [...] Attendre un mot dans PuTTY ou l'invité de commande

Posté : mar. 24 mars 2015 18:26
par orax
caropost a écrit :Malheureusement, le PC a un XP tellement vieux qu'il ne propose pas l'option série :(
Je ne vois pas le rapport... M'enfin dans le doute j'ai quand même vérifié sur un "vieux" XP et il y a bien -serial.

Re: [...] Attendre un mot dans PuTTY ou l'invité de commande

Posté : mer. 25 mars 2015 15:03
par caropost
Oui pardon, c'était en fait la version de plink qui devait être trop ancienne, je l'ai retéléchargé et maintenant l'option -serial apparait.

Je peux lancer plink, je peux également lancer un profil préenregistré mais je n'arrive toujours pas à détecter si ma fenêtre affiche bien "login :" ou non... J'ai essayé en reprenant les liens donnés par Tlem mais sans succès. j'ai une fenêtre qui se lance et se ferme quelques dizaines de millisecondes plus tard.

Depuis ce lien : http://www.autoitscript.com/forum/topic ... k-wrapper/
J'ai créé un script qui inclus ce script, lancé ma connexion série :

Code : Tout sélectionner

_Start_plink("C:/Program Files/PuTTY/plink.exe", "Mon profil")
J'ai donc modifié un peu le handle en :

Code : Tout sélectionner

$_plinkhandle = Run(@comspec & " /c" & $_plink_loc & " -serial " & $_plinkserver,"",@SW_HIDE,7)
ainsi que d'autres modifications mais je n'ai pas une fenêtre qui s'ouvre et reste (même en commentant la ligne qui commence par fermer plink).

Me disant que ça venait de ce que j'avais écris, refais la même chose mais en reprenant le script original et en gardant un connexion SSH.

Code : Tout sélectionner

_Start_plink("C:/Program Files/PuTTY/plink.exe", "192.168.5.15")
Et la même chose se passe : une fenêtre s'ouvre et se referme quelques dizaines de millisecondes après).

Sauriez-vous me dire ce que je fais de mal ?

Re: [...] Attendre un mot dans PuTTY ou l'invité de commande

Posté : mar. 07 avr. 2015 09:40
par caropost
Bonjour,

Pour essayer de savoir ce qu'une fenêtre de console (Putty ou Plink) affiche pour pouvoir dire à mon script de continuer, je souhaite utiliser STDINWRITE et STDOUTREAD.
J'ai essayé plusieurs façons et aucune ne fonctionne comme je le souhaite.

J'ai repris le script Plink Wrapper pour l'adapter un peu à mes besoins mais aucun de mes tests ne fonctionne correctement.

Voici les fonctions que j'utilise :
► Afficher le texte

Et voici ce que je fais :
► Afficher le texte

Les problèmes sont que ma fenêtre "Test" (dans la fonction Expect) s'ouvre vide et que le fichier de log se rempli comme ceci jusqu'à ce que j'arrête le script manuellement :
► Afficher le texte

Sauriez-vous m'aider à corriger mon erreur ? Merci d'avance :)

Re: [...] Attendre un mot dans PuTTY ou l'invité de commande

Posté : ven. 29 mai 2015 10:42
par caropost
Ce problème a été résolu :)

Re: [R] Attendre un mot dans PuTTY ou l'invité de commande

Posté : ven. 29 mai 2015 10:45
par jbnh
N'hésite pas a poster ta solution... pour les prochains :wink:

Re: [R] Attendre un mot dans PuTTY ou l'invité de commande

Posté : ven. 29 mai 2015 15:06
par caropost
Au final je n'utilise pas PuTTY mais plink :)

Les fonctions que j'utilise (dans un lien donné plus haut) :
► Afficher le texte
Et mon bout de code :
► Afficher le texte
:)

Bon, par contre, ça fonctionne si on est branché en direct sur le PC mais pas si on est branché via un adaptateur USB/Série, ce qui m'embête énormément sinon tout mon truc tombe à l'eau :(