
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ファイルにパスワードまで記述してしまうのは脆弱すぎるとかのご指摘は申し訳ありませんがご遠慮願います。
よろしくお願いいたします。
No.4ベストアンサー
- 回答日時:
SendKeysを用いた方法が下記ページに^^;
http://www.fpcu.jp/dosvcmd/bbs/log/cat1/4-0451.h …
けど、使い勝手を考えると・・・
Poderosaで接続ショートカットを保存する方法はどうでしょうか?
http://ja.poderosa.org/
接続するたびにパスフレーズを入力するのが面倒です
http://ja.poderosa.org/faq/15.html
この回答への補足
ご回答ありがとうございます。
長くなりましたので、補足欄にて失礼します。
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/defa …
なお、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 …
運用 Windows管理者のためのWindows Script Host入門
キー SenKeysメソッドのパラメータ
Enter {ENTER} または ~
とありました。
以上、自分への説明です^^;
また、Poderosaについては、
>Telnet,SSH1,SSH2 はもちろん、ローカルの Cygwin シェルもサポートしています。
おおっ、Cygwinも!
>未踏ソフトウェア創造事業
Lunascapeと同じで、発展して会社にまでなるかも…。。
と、いろいろ驚きでした。こちらは自宅マシンにて試させていただきます。
みなさま、大変参考になるご回答をいただき、ありがとうございました。
m(_ _)m 感謝!!!
ポイントについて。
ポイントにつきましては、
20:ズバリの回答者様
10:上記を除き、一番勉強になった回答者様
とさせていただきます。
みなさま、ご回答ありがとうございましたっm(_ _)m
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
ユーザー名
パスワード
------------------------------------------------------------
も確かめてみたいところです。
ご回答ありがとうございます。
>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窓が閉じてしまうので、エラーの内容がわからないため追加しました。
もし、私の理解が間違っていましたら、ご指摘をお願いいたします。
No.2
- 回答日時:
Windows標準の telnet クライアントではなく、TeraTerm などの別のアプリケーションの利用では、ダメですか?
http://www.stackasterisk.jp/tech/systemManagemen …
ご回答ありがとうございます。
Terattermなどなら、sshで通信の暗号化もできるし(といっても閉鎖ネットワークで、個人情報は言語研修で使う範囲、研修用ログインID、パスくらいしか含まれていないので、情報漏えい的観点からはセキュリティは考慮しなくてもよいのですが)、フリーソフトだし、と思うのですが、
「できるだけ、ソフトをインストールすることは控えるように(OSをインストールした直後の環境を保持するように)」
との上長のお達しなので、自分の勉強も兼ねてbatファイルで作成できないかと思い、質問させていただきました。
No.1
- 回答日時:
DOSのバッチファイルはDOSレベルでのコマンドしか制御できません。
TelnetはDOS上で動くアプリなのでtelnet.exeが起動した時点でバッチファイルの制御から外れてしまいます。
telnetが終わったあとの制御は可能です。
要はtelnet上のコマンド入力はバッチファイルでは不可能です。
かわりにtelnetにスイッチをつけてバッチファイルに組み込めば良いのです。
telnet <IPアドレス> でopenなしでいきなり接続に行くはずです。
↑<>はいりません。
ご回答ありがとうございます。
>DOSのバッチファイルはDOSレベルでのコマンドしか制御できません。
>TelnetはDOS上で動くアプリなのでtelnet.exeが起動した時点でバッチファイルの制御から外れてしまいます。
batファイルで制御できない理由がとてもわかりやすく、勉強になりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
windowsからtelnetでログインし自動処理
その他(OS)
-
telnetで接続した先のコマンドのバッチファイルを作成したい
その他(プログラミング・Web制作)
-
[WSH|JS|VB] telnetコマンドの標準出力を受け取りたい
Visual Basic(VBA)
-
-
4
batファイルでのtelnetについて
その他(プログラミング・Web制作)
-
5
TERA TERMを隠す方法
その他(プログラミング・Web制作)
-
6
telnetの自動シェルバッチを作成したい
その他(プログラミング・Web制作)
-
7
バッチでテキストファイルから任意の行のみ取得したい
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vba クリップボードクリアにつ...
-
数学、プログラミング、物理、...
-
pip --versionがエラーになる
-
Google ColaboでGUI作成
-
CSVファイルの複数行削除
-
HTMLソースが表示のページのも...
-
Python 3.12.2 か一番最新のパ...
-
画像生成AIのプロンプトの作り...
-
テキストファイルの1行目のみを...
-
Python... 環境設定 初心者です...
-
pythonの実行に関する質問
-
OS入ってる機器のソフト・アプ...
-
初心者powershellのPS1ファイル...
-
パイソンのソースコードをChatG...
-
google Colabでmatplotlibの描...
-
マイクロソフトがvbを捨てたの...
-
Pythonのエラーメッセージをコ...
-
Pythonでの文字列からfloatへの...
-
Webサイト内に埋め込んだmp4動...
-
HLMT、CSSについて相談です。 ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
構造体のメンバをfor文で回したい
-
mailto:の本文に文字数制限はあ...
-
batファイルでtelnetを起動⇒文...
-
動的にプロパティ名を変えたい
-
EXCEL VBA でユーザー定義型デ...
-
UWSCで出目画像カウントしたい
-
Bresenhamのアルゴリズムを用い...
-
時間の平均値を計算する方法を...
-
mailto:の中に&を入れる
-
Wi-Fiが繋がらなくなりました N...
-
アクセスで有給休暇管理表を作...
-
USB3.2 GEN2×2のケーブルにThun...
-
ネットワーク上に存在しないIP...
-
デフォルトドメインの意味
-
Oculus Riftが映らない。セット...
-
MACアドレスで逮捕できる?
-
Active Directory運用でのマス...
-
ネットワーク入門者です、おし...
-
RTX810でローカルルータとして...
-
iPhoneのテザリングにてWiFiをp...
おすすめ情報