Kann der Windows-Telnet-Client per Skript ausgeführt werden?


7

Ist es möglich, mit dem Windows Telnet-Client eine Reihe von Befehlen in einem Skript auszuführen?

Wenn nicht, gibt es Alternativen?


1
Entweder sind Sie ziemlich verwirrt darüber, was ein Telnet-Client sein soll, oder Sie haben Ihre Frage nicht richtig erklärt.
Juliano

@ Juliano: Bei einigen Telnet-Clients können Sie Daten mithilfe einer Skriptsprache an den Remotecomputer senden, um den Prozess zu steuern. Denken Sie wie "erwarten" Skripte, aber mit Telnet verbunden.
Evan Anderson

1
Es kann hilfreich sein, wenn Sie uns eine Vorstellung davon geben, was Sie tun möchten, da es möglicherweise bessere Methoden als die Verwendung der Telnet-App gibt.
John Gardeniers

Wie Cygwin SSH mit einer kennwortlosen Authentifizierung mit öffentlichem Schlüssel. superuser.com/questions/6475/…
nik

Antworten:


6

Vor langer Zeit habe ich einen COM-Server geschrieben, damit ich Telnet von VBScript aus ausführen kann. Wenn Sie eine Kopie (einschließlich Quelle) wünschen, würde ich sie gerne irgendwo ins Internet stellen. Ich verwende es für den Remote-Neustart von Routern.

Um Ihnen eine Vorstellung davon zu geben, was es tut, finden Sie hier ein Beispielskript (wobei die Fehlerprüfung entfernt wurde).

const SVR = "www.microsoft.com"
dim telnet, s, i

set telnet = CreateObject("Rhs.Telnet")
telnet.Startup()

telnet.Connect SVR, 80
telnet.Writeline "GET / HTTP/1.0"
telnet.Writeline "Host: www.microsoft.com"
telnet.Writeline "User-Agent: RhsTelnet"
telnet.Writeline "Accept: */*"
telnet.Writeline ""

do while telnet.Readline(s, 1000)
  wscript.echo s
loop

telnet.Disconnect()
telnet.Cleanup()

JR

Link zum COM-Server: Hallo Lachlan, versuchen Sie es mit http://www.ratsauce.co.uk/RouterCheck.zip

Dies ist der COM-Server und ein Skript zum Neustart eines Draytek-Routers. Das Skript RouterCheck.wsf prüft, ob es einige Testhosts anpingen kann, sodass Sie wahrscheinlich den größten Teil des Codes ignorieren möchten. Verwenden Sie einfach die RebootRouter-Funktion und ignorieren Sie den Rest. Dies ist am Ende meiner ADSL-Zeile, daher kann der Download etwas langsam sein.

Wenn jemand die Quelle haben möchte (Visual C ++ 5.0 mit ATL), kann ich sie auf SourceForge ablegen.


Das Remote-Neustarten von Routern ist das, was ich auch tun möchte. Wenn Sie Ihren COM-Server verfügbar machen könnten, wäre das großartig.
LachlanG

Ich konnte den COM-Server noch nicht greifen. Ist es noch da?
LachlanG

@Lachlan: Mein ADSL ist jetzt zurück, sodass der ursprüngliche Link wieder funktioniert.
John Rennie

7

Ja. Schauen Sie sich diesen Thread an .


1
Zow! Verwenden von SendKeys zum Senden von Tastenanschlägen an den TELNET-Client. Es ist ein Einweg-Kommunikationskanal ... Ich denke, es hängt davon ab, ob das Poster Daten vom TELNET-Client zurückholen muss oder nicht.
Evan Anderson

Wo ein Wille ist, ist auch ein Weg :-).
Adam Brand

3

Sie können Perl installieren und Net :: Telnet verwenden, mit dem Sie die empfangenen Daten sowohl senden als auch interpretieren können.

ActivePerl ist wahrscheinlich der schnellste Weg, um damit zu arbeiten:

http://www.activestate.com/activeperl/

Und Net :: Telnet ist hier dokumentiert:

http://search.cpan.org/~jrogers/Net-Telnet-3.03/lib/Net/Telnet.pm

Weitere Fragen zum Codieren mit Net :: Telnet gehören wahrscheinlich zu StackOverflow. Beispiele und Tipps finden Sie auch unter www.perlmonks.org.


1

Ich weiß, dass dies ein schrecklich alter Thread ist, aber ich bin von einer verwandten Frage hierher gekommen und habe festgestellt, dass eine sehr offensichtliche Antwort übersehen wurde. Schon mal was von Kitt gehört? Es gibt eine skriptfähige Befehlszeilenversion namens plink.

Plink Howto Plink Ausführbar


0

Wenn Ihnen eine kommerzielle Lösung nichts ausmacht, gibt es einen Business-Telnet-Client namens TeSSH , der über eine umfangreiche Skriptsprache verfügt und über die Befehlszeile ausgeführt werden kann. Es unterstützt das Schreiben von Skripten in vbs, perl und lua. Es ist ziemlich günstig bei 34,95 $. Sie können auch die TeSSH-Supportforen besuchen .


0

Ich habe dieses Batch-Skript basierend auf einer vorherigen Antwort erstellt :

@ECHO OFF
SET ME=from@example.com
SET TO=to@example.com
SET TF=%TEMP%\%~n0.vbs
(
 ECHO Set sh = WScript.CreateObject^("WScript.Shell"^)
 ECHO sh.SendKeys "HELO %COMPUTERNAME%~"
 ECHO sh.SendKeys "MAIL FROM: %ME%~"
 ECHO sh.SendKeys "RCPT TO: %TO%~"
 ECHO sh.SendKeys "DATA~"
 ECHO sh.SendKeys "From: %ME%~"
 ECHO sh.SendKeys "To: %TO%~"
 ECHO sh.SendKeys "Subject: Example subject...~"
 ECHO sh.SendKeys "~"
 ECHO sh.SendKeys "Contents...~"
 ECHO sh.SendKeys ".~"
 ECHO sh.SendKeys "QUIT~"
 ECHO WScript.Sleep 1000
 ECHO sh.SendKeys "~"
) > "%TF%"
START "" TELNET.EXE SMTPSERVER 25
CSCRIPT //NoLogo "%TF%"
DEL "%TF%"
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.