Ist es möglich, mit dem Windows Telnet-Client eine Reihe von Befehlen in einem Skript auszuführen?
Wenn nicht, gibt es Alternativen?
Ist es möglich, mit dem Windows Telnet-Client eine Reihe von Befehlen in einem Skript auszuführen?
Wenn nicht, gibt es Alternativen?
Antworten:
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.
Ja. Schauen Sie sich diesen Thread an .
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.
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.
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 .
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%"