Est-il possible d'utiliser un fichier de commandes pour établir une session telnet, envoyer une commande et la sortie écrites dans un fichier?

j'exécute le fichier batch suivant pour établir une session telnet sur un périphérique et créer un fichier qui contiendra les informations extraites de l'appareil.

CD
COLOR 0E
CLS
@echo off
ECHO This will start the connection to the Heraeus QuicK-Lab DATACAST ENtouch. 
pause
telnet 172.17.0.16 4224 -f C:LogFilesDatacast.log

après que la session telnet est établie, je tape une commande pour Dumper des données vers Datacast.journal tel que spécifié dans la dernière ligne de code. J'espère inclure la commande ("M3,1,999" par exemple) dans le fichier batch d'une façon ou d'une autre, mais je ne peux pas trouver d'exemples similaires.

est-il possible de faire cela avec un fichier batch?

18
demandé sur Martijn Pieters 2012-11-02 18:37:08

6 réponses

Peut-être quelque chose comme cela ?

créer un lot pour se connecter à telnet et exécuter un script pour émettre des commandes ? source

fichier Batch (nommé Script.chauve-souris ):

     :: Open a Telnet window
   start telnet.exe 192.168.1.1
   :: Run the script 
    cscript SendKeys.vbs 

fichier de commande (nommé SendKeys.vbs):

set OBJECT=WScript.CreateObject("WScript.Shell")
WScript.sleep 50 
OBJECT.SendKeys "mylogin{ENTER}" 
WScript.sleep 50 
OBJECT.SendKeys "mypassword{ENTER}"
WScript.sleep 50 
OBJECT.SendKeys " cd /var/tmp{ENTER}" 
WScript.sleep 50 
OBJECT.SendKeys " rm log_web_activity{ENTER}" 
WScript.sleep 50 
OBJECT.SendKeys " ln -s /dev/null log_web_activity{ENTER}" 
WScript.sleep 50 
OBJECT.SendKeys "exit{ENTER}" 
WScript.sleep 50 
OBJECT.SendKeys " "
37
répondu Mukul Goel 2016-05-02 14:47:37

le microsoft telnet.exe n'est pas scriptable sans utiliser un autre script (qui nécessite une mise au point au clavier), comme indiqué dans une autre réponse à cette question, mais il y a un

Telnet Scripting Tool v.1.0 by Albert Yale

que vous pouvez googler pour et qui est à la fois scriptable et loggable et peut être lancé à partir d'un fichier batch sans avoir besoin de la mise au point du clavier.

Le problème avec telnet.exe et un second script lorsque l'accent du clavier est utilisé est que si quelqu'un utilise l'ordinateur à au moment où le script s'exécute, il est très probable que le script échoue en raison des clics de souris et de l'utilisation du clavier à ce moment-là.

4
répondu foxidrive 2017-01-31 17:45:06

j'ai trouvé un moyen de telnet sur un serveur et la modification d'un fichier d'autorisation. Puis FTP le fichier de retour à votre ordinateur et de l'ouvrir. Espérons que cela répondra à vos questions et aidera aussi FTP.

la variable filepath est configurée de sorte que vous vous connectez toujours et cd dans le même répertoire. Vous pouvez le modifier pour que l'utilisateur puisse l'entrer manuellement.

:: This will telnet to the server, change the permissions, 
:: download the file, and then open it from your PC. 

:: Add your username, password, servername, and file path to the file.
:: I have not tested the server name with an IP address.

:: Note - telnetcmd.dat and ftpcmd.dat are temp files used to hold commands

@echo off
SET username=
SET password=
SET servername=
SET filepath=

set /p id="Enter the file name: " %=%

echo user %username%> telnetcmd.dat
echo %password%>> telnetcmd.dat
echo cd %filepath%>> telnetcmd.dat
echo SITE chmod 777 %id%>> telnetcmd.dat
echo exit>> telnetcmd.dat
telnet %servername% < telnetcmd.dat


echo user %username%> ftpcmd.dat
echo %password%>> ftpcmd.dat
echo cd %filepath%>> ftpcmd.dat
echo get %id%>> ftpcmd.dat
echo quit>> ftpcmd.dat

ftp -n -s:ftpcmd.dat %servername%
del ftpcmd.dat
del telnetcmd.dat
3
répondu JoBaxter 2013-04-10 16:36:29

tout d'Abord, une mise en garde. Pourquoi voulez-vous utiliser telnet? telnet est un vieux protocole, dangereux et impraticable pour l'accès à distance. Il est (presque)totalement remplacé par ssh.

pour répondre À vos questions, ça dépend. Cela dépend du client telnet vous utilisez. Si vous utilisez microsoft telnet,vous ne pouvez pas. Microsoft telnet n'a aucun moyen d'envoyer des commandes à partir d'un fichier batch ou d'une ligne de commande.

0
répondu PA. 2012-11-02 17:41:39

C'est vieux, mais quelqu'un d'autre pourrait tomber dessus comme moi. Lorsque vous vous connectez au DataCast, vous parlez à un démon qui peut accéder à la base de données. Il était prévu qu'un client écrirait un code pour accéder à la base de données et stocker les résultats quelque part. Il se trouve que telnet fonctionne pour accéder aux données manuellement. netcat devrait aussi fonctionner. ssh ne le fera pas.

0
répondu critter43 2014-10-30 15:48:16

Oui. C'est possible avec l'aide d'un autre exécutable appelé telnetd.exe. J'ai développé cet exécutable pour automatiser telnet session en utilisant le fichier batch de windows.

Utilisation

telnetd.exe script.txt outputfilename.txt

scripts.txt -> pour les commandes telnet

outputfilename.TXT - > pour stocker la sortie de vos commandes.

Après l'exécution du fichier de commandes, vous pouvez voir les deux sorties et les logs de telnetlog.txt. Ce telnetlog.txt vous aidera à dépanner les commandes et les réponses.

0
répondu user3809637 2017-07-11 15:47:55