• ベストアンサー

batファイルでtelnetを起動⇒文字コードをセット⇒ログイン としたいです。

XPで、Red Hat Linuxサーバにtelnetログインをしています。 C:\WINDOWS\system32\telnet.exeのショートカットをデスクトップに作成し、 1.telnet.exeのショートカットをダブルクリック 2.set CODESET Japanese EUC を設定(文字化けを防ぐため) 3.open 192.168.xx.xx として、ログインしているのですが、batファイル化したいです。 login.batを作成し、  telnet 192.168.xx.xx  pause と二行だけ記入しておき、login.batをダブルクリックすると、  Red Hat Linux ...  Kernel ....  login: と表示され、ユーザー名とパスワードでログインできるのですが、 set CODESET Japanese EUC を設定してからログインするようにするやり方がわかりません。。 リダイレクトやパイプなども調べてみていろいろ試したのですが、できませんでした。 どなたがms-dosに詳しい方、ご教授お願いいたします。 ※後学のために、もし、ユーザー名、パスワードもbatファイルに含めることができるのでしたら、その方法も知りたいです。 ※イントラの閉鎖されたネットワークで座席fixでの研修作業なので、sshでないtelnetはやめようとか、batファイルにパスワードまで記述してしまうのは脆弱すぎるとかのご指摘は申し訳ありませんがご遠慮願います。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Nii
  • ベストアンサー率48% (79/162)
回答No.4

SendKeysを用いた方法が下記ページに^^; http://www.fpcu.jp/dosvcmd/bbs/log/cat1/4-0451.html けど、使い勝手を考えると・・・ Poderosaで接続ショートカットを保存する方法はどうでしょうか? http://ja.poderosa.org/ 接続するたびにパスフレーズを入力するのが面倒です http://ja.poderosa.org/faq/15.html

miraise
質問者

お礼

ポイントについて。 ポイントにつきましては、 20:ズバリの回答者様 10:上記を除き、一番勉強になった回答者様 とさせていただきます。 みなさま、ご回答ありがとうございましたっm(_ _)m

miraise
質問者

補足

ご回答ありがとうございます。 長くなりましたので、補足欄にて失礼します。 SendKeysの方法を試してみましたところ、できました! 参考・備忘録・後学までに、スクリプトをコピペしておきます。 紹介いただいたサイトより ↓引用---------------------------------------------------------- rshが使えない環境だとすると、telnetで、VBS+WSH の sendkeys を使うくらいでしょうか。キー入力のシミュレーションなんでエラーや想定外の事象にはとても弱いです。サンプルは、 -----------testtelnet.bat------------------ start "ABC" cscript testtel.vbs ------------------------------------------- -----------testtel.vbs--------------------- set WshShell = WScript.CreateObject("WScript.Shell") WshShell.AppActivate "ABC" WScript.Sleep 3000 WshShell.SendKeys "telnet ホスト名~" WScript.Sleep 3000 WshShell.SendKeys "ユーザー名~" WScript.Sleep 3000 WshShell.SendKeys "パスワード~" WScript.Sleep 3000 WshShell.SendKeys "コマンド~" WScript.Sleep 3000 WshShell.SendKeys "exit~" -------------------------------------------- sleepの単位はミリ秒です。適宜調整ください。 一部の記号や特殊キーについては下記参照。 http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/script56/html/wsmthsendkeys.asp なお、tlntadmn は windows上のtelnetサーバーにログインする設定の変更コマンドなので今回は関係ありません。 ↑引用---------------------------------------------------------- です。 私が作成したのは、 login.bat ------------------------------- start "ABC" cscript tellogin.vbs ------------------------------- tellogin.vbs ------------------------------- set WshShell = WScript.CreateObject("WScript.Shell") WshShell.AppActivate "ABC" WshShell.SendKeys "C:\WINDOWS\system32\telnet.exe~" WScript.Sleep 1000 WshShell.SendKeys "set CODESET Japanese EUC~" WScript.Sleep 1000 WshShell.SendKeys "open 192.168.xx.xx~" WScript.Sleep 1000 WshShell.SendKeys "ユーザ名~" WScript.Sleep 1000 WshShell.SendKeys "パス~" ------------------------------- になります。 VBS+WSHは無知なので調べました。 start "ABC" については、サイトより、 「testtelnet.bat から start "ABC" であらたにABCというタイトルのコマンドプロンプト画面を開いて、AppActivate で、ABCというタイトルのウィンドウをアクティブにし、そこにsendkeysする」方法とのこと。 ccsriptについては、Windowsのコマンドで、 cscript  指定したスクリプトの実行 とのこと。 WshShell.SendKeys "パス~" ←最後のチルダが意味不明だったのですが、 http://www.atmarkit.co.jp/fwin2k/operation/wsh05/wsh05_04.html 運用 Windows管理者のためのWindows Script Host入門 キー SenKeysメソッドのパラメータ Enter {ENTER} または ~ とありました。 以上、自分への説明です^^; また、Poderosaについては、 >Telnet,SSH1,SSH2 はもちろん、ローカルの Cygwin シェルもサポートしています。 おおっ、Cygwinも! >未踏ソフトウェア創造事業 Lunascapeと同じで、発展して会社にまでなるかも…。。 と、いろいろ驚きでした。こちらは自宅マシンにて試させていただきます。 みなさま、大変参考になるご回答をいただき、ありがとうございました。 m(_ _)m 感謝!!!

その他の回答 (3)

  • auty
  • ベストアンサー率58% (284/486)
回答No.3

「リダイレクトやパイプなども調べてみていろいろ試した」とあり、確認はしていませんが, ------------------------------------------------------------ login.bat ------------------------------------------------------------ telnet 192.168.xx.xx ------------------------------------------------------------ login.doc ------------------------------------------------------------ set CODESET Japanese EUC open 192.168.xx.xx を準備し、 login.bat < login.doc は、確かめたでしょうか。 ・ pauseは不要だと思われますが。 ・ もしうまくいけば、 ------------------------------------------------------------ login.doc ------------------------------------------------------------ set CODESET Japanese EUC open 192.168.xx.xx ユーザー名 パスワード ------------------------------------------------------------ も確かめてみたいところです。

miraise
質問者

お礼

ご回答ありがとうございます。 >login.bat < login.doc というのは、login.batとlogin.docを用意し、それとは別にコマンドプロンプトを立ち上げて実行、ということでよいのでしょうか。 login.bat ------------------------------- telnet 192.168.xx.xx pause ------------------------------- login.txt ------------------------------- set CODESET Japanese EUC open 192.168.xx.xx ------------------------------- を用意してdos窓で C:~\デスクトップ>login.bat < login.txt を試してみましたが、 C:~\デスクトップ> の状態に戻るだけでダメでした。 また、他サイトを参考に、 login.bat ------------------------------- telnet < login.txt pause ------------------------------- login.txt ------------------------------- set CODESET Japanese EUC open 192.168.xx.xx ------------------------------- で、login.batを実行も試してみましたが、 続行するには何かキーを押してください . . . と表示されるだけでダメでした。 ※pauseコマンドは、batファイルを実行したときに一瞬でdos窓が閉じてしまうので、エラーの内容がわからないため追加しました。 もし、私の理解が間違っていましたら、ご指摘をお願いいたします。

  • DIooggooID
  • ベストアンサー率27% (1730/6405)
回答No.2

Windows標準の telnet クライアントではなく、TeraTerm などの別のアプリケーションの利用では、ダメですか? http://www.stackasterisk.jp/tech/systemManagement/teraterm01_04.jsp

miraise
質問者

お礼

ご回答ありがとうございます。 Terattermなどなら、sshで通信の暗号化もできるし(といっても閉鎖ネットワークで、個人情報は言語研修で使う範囲、研修用ログインID、パスくらいしか含まれていないので、情報漏えい的観点からはセキュリティは考慮しなくてもよいのですが)、フリーソフトだし、と思うのですが、 「できるだけ、ソフトをインストールすることは控えるように(OSをインストールした直後の環境を保持するように)」 との上長のお達しなので、自分の勉強も兼ねてbatファイルで作成できないかと思い、質問させていただきました。

  • ZaZaMuShi
  • ベストアンサー率40% (58/142)
回答No.1

DOSのバッチファイルはDOSレベルでのコマンドしか制御できません。 TelnetはDOS上で動くアプリなのでtelnet.exeが起動した時点でバッチファイルの制御から外れてしまいます。 telnetが終わったあとの制御は可能です。 要はtelnet上のコマンド入力はバッチファイルでは不可能です。 かわりにtelnetにスイッチをつけてバッチファイルに組み込めば良いのです。 telnet <IPアドレス> でopenなしでいきなり接続に行くはずです。     ↑<>はいりません。

miraise
質問者

お礼

ご回答ありがとうございます。 >DOSのバッチファイルはDOSレベルでのコマンドしか制御できません。 >TelnetはDOS上で動くアプリなのでtelnet.exeが起動した時点でバッチファイルの制御から外れてしまいます。 batファイルで制御できない理由がとてもわかりやすく、勉強になりました。

関連するQ&A

  • BATファイル起動について

    お世話になっております。 javaのclassを実行する 以下の処理を行うbatファイルを作成したところ (ディレクトリ移動→classpathの設定→javaコマンド) cmd.exeよりこのbatファイルを実行すると 正常に動作してくれるのですが batファイルをダブルクリックすると javaを正常に実行しません。 errorや例外も特に発生していません。 batファイルを cmd.exeからの実行するのと ダブルクリックで実行するのには 何か違いがあるのでしょうか? よろしくお願いします。

  • telnet でログイン出来ないユーザ

    昔使用していたLinux機を久々に起動し、新規のユーザを作成したところ そのユーザで、telnetでのログインが出来ません。 既存のユーザは問題なくログインできますし、既存でログインした後に su で新規作成のユーザに変更も出来ます。 また、コンソールからのログインは、新規ユーザでも可能です。 同じPCからですし、host.allow , host.deny 系の設定ファイルも 特別な設定のないことは確認しました。 以下、作業した手順です。 ・既存ユーザ[test1]でログイン ・su - root で rootに変更 ・useradd - test2 で、新規ユーザ[test2]を作成 ・passwd test2 を実行して、test2のパスワードを設定 →新規に telnet 接続でログインしようとすると失敗(Login incorrect) OSは、Linux release 2.4.9-e.9.30ml です。 どなたかわかる方いらっしゃいましたら、よろしくお願いいたします。

  • windowsからtelnetでログインし自動処理

    windowsからUNIXサーバーへtelnetでログインし その後、様々な処理を行い、ログアウトするまでの一連の操作をバッチファイル化したいのですが、上手くログインできません。 WINODWSで telnet.batというバッチファイルをダブルクリックするとその中の telnet open 192.168.1.1 user passwd cd usr cp a.tar b tar exit といった処理を実行させたいのですが、 TELNETを呼び出したまでは良かったのですが、 上手くログインできず止っています。 宜しくお願いします。

  • batよりjava起動

    お世話になっております。 javaのclassを実行する 以下の処理を行うbatファイルを作成したところ (ディレクトリ移動→classpathの設定→javaコマンド) cmd.exeよりこのbatファイルを実行すると 正常に動作してくれるのですが batファイルをダブルクリックすると javaを正常に実行しません。 errorや例外も特に発生していません。 batファイルを cmd.exeからの実行するのと ダブルクリックで実行するのには 何か違いがあるのでしょうか? 最終的な目的はタスクにこのbatを登録し 指定した時間に定期的に実行する事なのですが、 タスクにbatを登録して実行した場合 batをダブルクリックした時と同様の現象になり 正常に動作しませんでした。 原因をご存知の方がいらっしゃいましたら 教えて頂けないでしょうか? よろしくお願いします。

    • ベストアンサー
    • Java
  • telnetでログインできない

    HP-UXよりwindows2003サーバーへtelnet接続の自動化を考えています。 色々なサイトを参考にし、シェルには下記のように記載しました。 ※ユーザID・・・aaa ※パスワード・・bbb 【user.sh】 #!/bin/csh sleep 10; echo "aaa" sleep 10; echo "bbb" 【login.sh】 #!/bin/csh sh user.sh | telnet ※ip しかし、実行結果は下記の通りとなり、ログインはできません。 ----------------------------------------------------- Trying... Connected to ※ip Escape character is '^]'. Local flow control off Welcome to Microsoft Telnet Service login: aaabbb Session timed out. Telnet Server has closed the connection Connection closed by foreign host. ----------------------------------------------------- 手動で実行する場合はもちろんログインすることはできます。 手動実行時のエンターキーが押されていない状態です。 HP-UX間では上記方法で問題なくログインできます。 windowsサーバーのtelnetの設定が問題なのでしょうか? ちなみに、windowsサーバーのtelnetの設定は下記の通りです。 ----------------------------------------------------- Microsoft Telnet> display エスケープ文字は'ctrl+]'です。 自動認証(NTML 認証)を使わない ローカル エコー: オフ ニューライン モード - リターン キーで CR および LF を送信します 現在のモード: コンソール 使用する端末の種類をネゴシエートする 優先する端末の種類は ANSI です ----------------------------------------------------- 他に情報がいる場合は教えてください。

  • 動画ファイルの結合について、batファイル?

    十個の拡張子不明のファイルと、一個のbatファイルをダウンロードしました、 batファイルを開いてみると、MS-DOSで、ファイルを一個コピーしました、 と出てきて、exeファイルと、またMSDOSへのショートカットのようなアイコンがでてきました、そこで、exeファイルを開くと、MSDOSの画面になり、this file can not be run in DOS modeっていうダイアログが出てくるんです・・・・どうやったら動画ファイルを見ることができるんでしょうか? どうか助けてください

  • telnetをすると"Remote Management Console"が表示されログイン出来ない

    コマンドプロンプトからtelnet接続を実施するとたまにログイン画面に"Remote Management Console"というメッセージが画面上部に表示されます。上記メッセージと共に"login:"メッセージも表示されるのですが、通常はログインができているユーザID/パスワードを入れてもエラーメッセージ"### Login Faild"が表示されログインできません。 通常はログイン画面として"SunOS5.8"というメッセージと共に"login:"が表示されるのですが、なぜこのような"Remote Management Console"が表示され、ログインできなくなる現象が起こるのでしょうか。 ちなみに端末をreboot後にtelnet接続をすると通常のログイン画面が表示されたりします。ただ、時間が立つとまた上記の"Remoto~"になってしまいます。 pingは通ります。 何か参考となる情報等ありましたらご教授いただけますでしょうか。 よろしくお願いします。

  • 文字コードについて

    仕事場のワークステーションがUNIX→Linuxに移行することが決まりました。 そこで現在使用しているUNIXのプログラムをLinuxにコピーしたのですが、文字コードがおかしいのか文字化けして動作しません。 動作としては プログラムを立ち上げる    ↓ 環境設定ファイルを読み込む    ↓ 上手く起動する 正常なら上記の動作ですが、環境設定ファイルが読み込めず停止してしまいます。 そこで環境設定ファイルを開くと文字化けしてました。 その後、今までのUNIX上での環境設定ファイルをlessで表示させ、 新たなLinuxマシンにviでコピー・ぺ-ストして保存したところ 正常に動作しました。 操作は別端末のTeraTaermで行っています。 これはLinuxマシンの文字コードがUTF-8のためEUCが認識できないからでしょうか? 行き詰ってますので、どうかお願いいたします。 Linuxの環境は Red Hat 8.0のエンタープライズ版です。

  • viを使おうとするとunknown terminal type

     Red Hat Linux 6.2Jを使っています。telnetでSolaris 8にログインし、viを使おうとすると、unknown terminal typeと出て、ラインエディタのようになってしまいます。どう対処すればいいでしょうか。

  • smtpサーバへtelnetログインし、対話形式でメールを送付するところを自動化したい

    「smtpサーバへ、telnetログイン(ポート指定:25)後、対話形式でメールを送付する。」 というのを自動化したいのですが、手動でコマンドを投入する分ではうまく行くのですが、Windowsのバッチファイル(.bat)で実行すると、ログインしたところで止まってしまいます。 どうすればうまくいくでしょうか?

専門家に質問してみよう