
こんにちは。
Windows Scripting Host(WSH)でtelnetコマンドのオートパイロット(自動操縦)をしたいと思っています。
そこで、ログインプロンプトなどを待つ際、waitで時間で待つのではなく、「login:」という文字を待ってログインするようにしたいのですが、できるでしょうか?教えてください。
WSHをご存知ない場合は、VBの範囲でお答えいただければと思います。適用できる可能性がありますので。
なお、言語は、JScript,VBScriptどちらでも構いません。
よろしくお願い致します。
No.2ベストアンサー
- 回答日時:
telnet コマンドは、実装が二つありますよね。
95 にあった、Window アプリケーションのとNT のコマンドプロンプトで動くやつ。
Window アプリケーションだと、キーを送り込むのは簡単だが、表示を取るのは、まず、不可能ですよね。
コンソールアプリケーションであれば、どうやってコンソールバッファのハンドルを取得するか
が、難しそう。
rsh もどきが作りたいのであれば、socket を扱うプログラムを作る方が、何百倍も簡単です。
# この回答が、期待に添わないであろう、という意味で自信無しにしておきます
ご回答ありがとうございます。
2つ種類あるのですか?すみません。コンソールの方です。
プロセスを指定したら、そこに入ってくるメッセージは簡単に取得できるのかなと思ったのですが、簡単に取れるわけではないのですね。
ハンドルを取得する必要があると。
ありがとうございます。
ここはsocketプログラミングを勉強して組んだ方がよさそうですね。
その方が一般的に使えますし。
どうもありがとうございます!
目的が、「オートパイロットしたい」というより「作りたい」なので、回答は期待に添っています。socketを扱うより、telnetコマンドを操作した方が手っ取り早いかなと思ったのです。
どうもありがとうございます。
No.5
- 回答日時:
BASP21のソケットオブジェクトを利用すればWSHでも出来ますよ。
下記URLのfaq:「ソケットオブジェクトでtelnetしたい」を参照してください
参考URL:http://www.hi-ho.ne.jp/babaq/basp21.html

No.4
- 回答日時:
telnetのオートパイロットならTeratermの方が簡単に組めると思いますが。
なぜWSHで?
秀Termもマクロは強力ですが、有料ですしね。
No.3
- 回答日時:
既存のTelnetクライアントソフトを使うのは?
Tera Termとか
秀Termとか
ご回答ありがとうございます。
Windows標準ソフト以外に依存せずに、
下記にもあります通り、
汎用的なrshコマンド(UNIX等に接続して、UNIXのコマンドをWindowsのコマンドプロンプト等から実行)のようなものが作りたいのです。
原稿できているものは、こんな感じです。
※現段階ではホスト名・コマンドなどは決め打ちです。
何か情報があればよろしくお願い致します。
今のところ,socketでないとできなそうですが、
WSHなら、OSの機能が呼べて何とかなるかもしれないので・・・。
よろしくお願いします。
--
var WShell = WScript.CreateObject("WScript.Shell");
WShell.Run("telnet hostname", false, false);
WScript.Sleep(1000);//5秒待って
WShell.Sendkeys("user{ENTER}");//キーを送る
WScript.Sleep(1000);//5秒待って
WShell.Sendkeys("pass{ENTER}");//キーを送る
WScript.Sleep(1000);//5秒待って
WShell.Sendkeys("make{ENTER}");//キーを送る
WScript.Sleep(1000);//5秒待って
WShell.Sendkeys("exit{ENTER}");//キーを送る
No.1
- 回答日時:
socket (もしくは、WinSock) と言われて、分かりますか?
分からないようであれば、かなり難しいですね。
もし、分かっても、telnet ポートを使って制御するのは、結構難しいです。画面の制御コードの
処理とかが入るので(login: を待つくらいなら、そんなに難しくない)。
VB が分かる程度であれば、Windows の種類を選ぶかもしれませんが、rsh というコマンドを
実行するようなイメージにする方が良いのでは?
ご回答ありがとうございます。
一応、socketはわかりますが、やりたいことは、指定ウィンドウ(ここではtelnetコマンドのウィンドウ)への文字の入出力なので、socketを意識する必要は内容に思うのですがいかがでしょうか?でも、受け取るにはsocketレベルor telnetプロトコルレベルの制御が必要なのでしょうか?
イメージとしては、まさにrshコマンドもどきを作りたいのです。
(実際は、telnetコマンドのオートパイロットですが。)
よろしくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトで表示が多...
-
コマンドプロンプトが実行中か...
-
ttlで戻り値を取得する方法
-
コマンドキーがないんですけど...
-
Tera Term Proに関する質問です。
-
makeコマンドのエラー
-
Teraterm macro
-
テキストボックスが未入力のと...
-
viの行削除コマンドを教えて下...
-
DOSコマンドでポートから受信
-
バッチファイルでキー操作を行う。
-
VBユーザーフォームで時間入力
-
vbsによるユーザ情報の取得につ...
-
コマンドプロンプトですべてのU...
-
ローマ字入力で「トゥ」を入力...
-
1点の辻の字に変換したいがエク...
-
word の文字入力 文字が青色に...
-
送信エラー時、レポートメール...
-
ACCESS VBA でのエラー解決の根...
-
Excelでエラー(#N/Aなど)値を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドプロンプトが実行中か...
-
コマンドプロンプトで表示が多...
-
ttlで戻り値を取得する方法
-
Tera Term Proに関する質問です。
-
バッチファイルでキー操作を行う。
-
別のユーザーフォームのコマン...
-
コマンドキーがないんですけど...
-
【Teratermマクロ】文字列の一...
-
VBユーザーフォームで時間入力
-
mountのDOSコマンド
-
文字の点滅はどうやるのですか?
-
DOSコマンドでポートから受信
-
RTX1100の削除コマンド
-
EEPROMのデータの初期化について
-
VBでDosコマンドを動かすには
-
makeコマンドのエラー
-
コマンドプロンプトですべてのU...
-
デフォルトのショートカットキ...
-
ディスクの空き容量を取得する...
-
JP1起動バッチについて
おすすめ情報