Script Telnet en Batch (.bat) - Windows

Script Telnet en Batch (.bat) - Windows - Réseaux - Systèmes & Réseaux Pro

Marsh Posté le 22-08-2011 à 11:38:36    

Bonjour,

 

J'ai besoin de la lumière de spécialiste pour m'aider a résoudre un problème.

 

Cela fait 3 heure que je tente des choses avec des résultat de recherche sur des forums.

 

Pour vous expliquer la chose, je souhaite créer un script en .bat (executable sous windows, environnement au travail ) qui exécuterai une commande Telnet.
J'ai un vidéo-projecteur Sanyo qui dispose d'un port RJ-45 Réseau qui est manageable par navigateur et également en Telnet.
Je sais que telnet est rétrograde, mais les postes clients sont toujours sous windows XP donc c'est parfait.
L'idée est, que lorsque un enseignant ferme sa session utilisateur, l'ordinateur (via GPO) executerai un script de fermeture de session qui ne serait qu'un .bat dont la commande est celle qui éteint le video-projecteur et ce, via Telnet. Cela serait valable aussi pour l'ouverture de session.

 

Pourquoi en arrivé la me direz-vous?
La premiére étant que plus d'une fois les video-projecteurs ne sont pas éteint.
La seconde est le fait que les télécommande sont soit perdue, soit oublié. Alors avec un script, plus besoin de courir et de gerer les télécommandes. A terme on souhaite que chaque salle de cours, dispose d'un video-projecteur.

 

Le Telnet répond vraiment à mes besoin, seulement je ne parvient pas à rédiger un script qui fonctionne.

 

Sur le net j'ai trouvé différent solution:

 

- utiliser l'application NetCat dont l'utilisation est du genre:
nc.exe @ip @port < commande.txt
J'arrive à me loggué mais les commande ne s’exécute pas.

 

- Une autre solution est d'utiliser expect.exe:
je ne suis pas parvenu a l'utiliser. j'ai trouvé l'application sur le net, j'ai du prendre un .dll et il me dit que c'est mal configuré. Avec les message d'érreur je suis remonté au site officiel. De tout facon la solution ne m'intéresse pas car elle nécessite l'installation de logiciels. Je souhaite avoir que des application .exe qui puisse être dans le system32.

 

- La derniere solution est d'utiliser Telnet Script Tool
J'arrive à faire un script avec et entrer les loggins mais les commandes ne fonctionnent pas.

 

L'aide du soft donne:

 
Citation :

Usage Syntax:
tst10.exe /r:script.txt [options]

 

/r:script.txt      run script.txt
[options]          any of these:

 

/o:output.txt      send session output to output.txt
/m                 run script in minimized window

 

Usage Example:

 

tst10.exe /r:script.txt /o:output.txt /m

 

Scripting Syntax:

 

HOSTNAME PORT      port number optional, default: 23
WAIT "string"      string to wait for
SEND "string"      string to send
\"                 represents the a quote character
\m                 represents a <CR/LF>
\\                 represents the backslash character

 

Scripting Example:

 

hostname.com 23
WAIT "login"
SEND "root\m"
WAIT "password"
SEND "mypassword\m"
WAIT ">"
SEND "dip internet.dip\m"
WAIT ">"

 

Scripting Note:

 

You can start with either WAIT or SEND commands,
but you *must* alternate them. ie: you can't use two
or more WAIT or SEND in a row.

 

Note:

 

TST will disconnect and close as soon
as its done with the last entry of the script.

 

If you need to, you can type in the terminal
window while the script is running.

 

Mon fichier .bat fonctionne et il contient:

 
Code :
  1. tst10.exe /r:cmd.txt /o:output.txt /m
 

Le fichier cmd.txt appelé contient donc les lignes à executer:

 
Code :
  1. 1xx.2x.3.1 10000
  2. WAIT "PASSWORD"
  3. SEND "xxxx\m"
  4. WAIT "Hello"
  5. SEND "C02"
 

Sachant que le vidéo-proj comprend ces instructions:

 

C00 Mise sous tension
C02 Mise hors tension
C09 Augmentation du volume
C0A Diminution du volume
C0B Coupure du son activée
C0C Coupure du son désactivée
C1C Affichage du menu activé
C1D Affichage du menu désactivé

 

La commande C00 et C02 fonctionne en direct en Telnet, mais dans le script il ne les prend pas. je ne sais pas pourquoi. Je ne sais plus comment faire un script à l'aide de Telnet et c'est la que j'ai besoin de vous pour m'aider à avancé.

 

Merci pour votre aide.

 

Edit:
j'ai trouvé qu'on pouvais faire quelque choses avec putty, puttytel et plink. Seulement on peut spécifié un password que pour SSH. Et moi c'est Telnet !!!
Source: http://forum.hardware.fr/hfr/Windo [...] 3409_1.htm

 

Pour le moment je fait des recherches du coté des requetes car j'ai trouver un soft de Sanyo qui arrive à allumer et éteindre via SNMP


Message édité par neo-blaster le 22-08-2011 à 14:51:40
Reply

Marsh Posté le 22-08-2011 à 11:38:36   

Reply

Marsh Posté le 23-08-2011 à 17:27:33    

J'ai réussit a faire fonctionner mon script telnet avec Telnet Script Tool.

 

Je n'y était pas très loin, mais les facteur d'échec était particulier !

 

Déjà, le script ne fonctionnais pas sur mon PC. Il semble vérolé et est défectueux donc ca n'allait pas aider.
Ensuite, j'ai compris que lorsque j'arrivais à avoir la console du script (que l'on peut obtenir en demandant WAIT "<quelque chose qui ne viendra jamais>" ), je pouvais tapé des commandes, mais elles marchaient pas. Pourquoi? parce que, il semblerait que je m'était loggué avec un mot de passe, bien que j'obtenais le "Hello". Ainsi j'ai compris que la console fonctionnait mais que les commande devait être éronner.

 

Le paramètre "\m" permet de faire "entrer" dans la console. Lorsque je ne le mettais pas, la console s’affichait et lorsque je validais personnellement ca fonctionnait. Quand il y était, ca ne marchais pas? Pourquoi j'en sais rien. Je me suis dis qu'il fallait que je termine avec un WAIT car il faut alterner comme c'est dit dans la notice.

 

L'ennuis pour faire un "WAIT" Valide, c'est que le message que l'on reçois avec le video-proj quand il a reçu le message ce n'est pas "ok" ou autre chose c'est un pique comme dans les jeux de carte..... (très intelligent...)
Bref en relisant, il y à écrit d'alterner les WAIT and SEND obligatoirement sur un "row". En gros une ligne.
J'ai donc tenté de faire un SEND "quit" (quitter le terminal telnet) et la miracle, ca à fonctionner !!!! fpfiou, deux jour pour ca ....

 

Bref, voilà les scripts obtenu, si jamais ca peut servir a quelqu'un:

 

Script de démarrage: SanyoOn.bat

 
Code :
  1. tst10.exe /r:"C:\up.txt" /m
 

Le fichier appelé "up.txt":

 
Code :
  1. 172.26.3.1 10000
  2. WAIT "PASSWORD"
  3. SEND "xxxx\m"
  4. WAIT "Hello"
  5. SEND "C00\m"
  6. SEND "QUIT"
 

Script de fermeture: SanyoOff.bat

 
Code :
  1. tst10.exe /r:"C:\down.txt" /m
 

Le fichier appelé "down.txt":

 
Code :
  1. 172.26.3.1 10000
  2. WAIT "PASSWORD"
  3. SEND "xxxx\m"
  4. WAIT "Hello"
  5. SEND "C01\m"
  6. SEND "QUIT"
 

Nota:
1 - c'est bien C01 et non C02. C02 ne fait rien. Erreur dans la notice
2 - J'ai mis mes script au cas ou un jour quelqu'un tombe sur ce genre de difficulté.
3 - Si jamais quelqu'un à besoin d'un video-proj qui s'allume et s'éteint de facon autonome avec le PC, vous pouvez prendre le script. Le modèle du Video-Proj est "Sanyo PLC-XD2200"

 

Voilà

   



Message édité par neo-blaster le 23-08-2011 à 17:30:33
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed