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

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
caropost
Niveau 4
Niveau 4
Messages : 63
Enregistré le : jeu. 19 mars 2015 16:24
Status : Hors ligne

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

#1

Message 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 :)
Modifié en dernier par caropost le ven. 29 mai 2015 10:42, modifié 1 fois.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11812
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

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

#2

Message 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. ;)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

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

#3

Message par jguinch »

Je te conseille de te tourner vers plink, qui sera plus facilement automatisable (si tu en as la possibilité)
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
caropost
Niveau 4
Niveau 4
Messages : 63
Enregistré le : jeu. 19 mars 2015 16:24
Status : Hors ligne

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

#4

Message 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 :(
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

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

#5

Message 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
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
caropost
Niveau 4
Niveau 4
Messages : 63
Enregistré le : jeu. 19 mars 2015 16:24
Status : Hors ligne

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

#6

Message 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...
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

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

#7

Message 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
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
caropost
Niveau 4
Niveau 4
Messages : 63
Enregistré le : jeu. 19 mars 2015 16:24
Status : Hors ligne

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

#8

Message 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 ?
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

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

#9

Message 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...
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
caropost
Niveau 4
Niveau 4
Messages : 63
Enregistré le : jeu. 19 mars 2015 16:24
Status : Hors ligne

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

#10

Message 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).
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

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

#11

Message par jguinch »

Connexion au port série : plink.exe -serial :wink:
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
caropost
Niveau 4
Niveau 4
Messages : 63
Enregistré le : jeu. 19 mars 2015 16:24
Status : Hors ligne

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

#12

Message 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 :(
caropost
Niveau 4
Niveau 4
Messages : 63
Enregistré le : jeu. 19 mars 2015 16:24
Status : Hors ligne

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

#13

Message 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 ?
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

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

#14

Message 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.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
caropost
Niveau 4
Niveau 4
Messages : 63
Enregistré le : jeu. 19 mars 2015 16:24
Status : Hors ligne

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

#15

Message 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 ?
caropost
Niveau 4
Niveau 4
Messages : 63
Enregistré le : jeu. 19 mars 2015 16:24
Status : Hors ligne

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

#16

Message 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 :)
caropost
Niveau 4
Niveau 4
Messages : 63
Enregistré le : jeu. 19 mars 2015 16:24
Status : Hors ligne

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

#17

Message par caropost »

Ce problème a été résolu :)
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

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

#18

Message par jbnh »

N'hésite pas a poster ta solution... pour les prochains :wink:
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
caropost
Niveau 4
Niveau 4
Messages : 63
Enregistré le : jeu. 19 mars 2015 16:24
Status : Hors ligne

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

#19

Message 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 :(
Répondre