
Windows Telnet クライアントを使用して、スクリプト内の一連のコマンドを実行することは可能ですか?
そうでない場合、代替手段はありますか?
答え1
ずいぶん前に、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サーバーへのリンク: hi Lachlan tryhttp://www.ratsauce.co.uk/RouterCheck.zip
これは COM サーバーであり、Draytek ルーターを再起動するスクリプトです。スクリプト RouterCheck.wsf は、いくつかのテスト ホストに ping できるかどうかをチェックするので、コードの大部分は無視したほうがよいでしょう。RebootRouter 関数だけを使用して、残りは無視してください。これは私の ADSL 回線の終端にあるため、ダウンロードが少し遅くなる場合があります。
ソース (Visual C++ 5.0 with ATL) が必要な方は、SourceForge にアップロードできます。
答え2
はい。これを見てください糸。
答え3
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 を参照することもできます。
答え4
商用ソリューションを気にしないのであれば、ビジネス用Telnetクライアントがあります。テSSHは、豊富なスクリプト言語を備え、コマンドラインから実行できます。VBS、Perl、Luaでのスクリプト記述をサポートしています。価格は34.95ドルとかなり安価です。TeSSH サポート フォーラム。