web-dev-qa-db-ja.com

Windows Telnetクライアントをスクリプト化できますか?

Windows Telnetクライアントを使用して、スクリプトで一連のコマンドを実行することは可能ですか?

そうでない場合、可能な代替策はありますか?

7
LachlanG

何年も前に、VBScriptからtelnetを実行できるようにCOMサーバーを作成しました。コピー(ソースを含む)が必要な場合は、インターネットのどこかにそれを置いていただければ幸いです。リモートでルーターを再起動するために使用します。

それが何をするのかいくつかのアイデアを与えるために、ここにスクリプトの例があります(エラーチェックが削除されています)

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

COMサーバーへのリンク:こんにちはLachlanの試み http://www.ratsauce.co.uk/RouterCheck.Zip

これはCOMサーバーであり、Draytekルーターを再起動するスクリプトです。スクリプトRouterCheck.wsfは、いくつかのテストホストにpingを実行できるかどうかを確認するため、ほとんどのコードを無視する必要があります。 RebootRouter関数を使用して、残りは無視してください。これは私のADSLラインの最後にあるので、ダウンロードが少し遅いかもしれません。

ソース(Visual C++ 5.0 with ATL)が必要な場合は、SourceForgeにドロップできます。

6
John Rennie

はい。これをチェックしてください thread

7
Adam Brand

PerlをインストールしてNet :: Telnetを使用すると、受信したデータの送信と解釈の両方が可能になります。

ActivePerlは、おそらくこれを使用して起動および実行する最も速い方法です。

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

そしてNet :: Telnetはここに文書化されています:

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

Net :: Telnetを使用してコーディングする方法についてのさらなる質問は、おそらくStackOverflowに属しています。例やヒントについては、www.perlmonks.orgもご覧ください。

3
James F

私はこれがひどく古いスレッドであることを知っていますが、関連する質問からここに来て、非常に明白な答えが抜けていることに気付きました。パテを聞いたことがありますか? plinkと呼ばれるコマンドラインスクリプト可能なバージョンがあります。

Plink HowtoPlink Executable

1
JamesBarnett

以前の答え に基づいてこのバッチスクリプトを作成しました。

@ECHO OFF
SET [email protected]
SET [email protected]
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%"
0

商用ソリューションを気にしなければ、豊富なスクリプト言語があり、コマンドラインから実行できる TeSSH と呼ばれるビジネスtelnetクライアントがあります。 vbs、Perl、およびluaでのスクリプトの書き込みをサポートしています。それは34.95ドルでかなり安価です。 TeSSHサポートフォーラム にもアクセスできます。

0
Hector Sosa Jr