
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も見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vba 正規表現について教えてく...
-
pythonでのローカルファイルか...
-
画像生成AIのプロンプトの作り...
-
CSVファイルの複数行削除
-
vba クリップボードクリアにつ...
-
if関数とは?
-
COPYコマンドで、最後に1文字...
-
uwscでPauseキーが押されたら、...
-
自作scratch アニメの商用利用
-
プログラム言語
-
Geminiフォーム 画像生成で 人...
-
pip --versionがエラーになる
-
プログラミングに興味があるの...
-
IT業で開発をされてる方々に質...
-
Pythonのエラーメッセージをコ...
-
Python... 環境設定 初心者です...
-
著作権法について
-
今のプログラミング言語
-
プログラミングについて
-
数学、プログラミング、物理、...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
構造体のメンバをfor文で回したい
-
mailto:の本文に文字数制限はあ...
-
batファイルでtelnetを起動⇒文...
-
mailto:の中に&を入れる
-
UWSCで出目画像カウントしたい
-
R8Cマイコンの乗算
-
動的にプロパティ名を変えたい
-
携帯の良番を持ってると思いま...
-
携帯・PCアクセス振り分け IP...
-
Wi-Fiが繋がらなくなりました N...
-
USB3.2 GEN2×2のケーブルにThun...
-
outlookのアドレス帳について
-
逆引き権限委譲とは?
-
Windows端末でのsyslog受信につ...
-
パケットの計算方法について
-
アクセスで有給休暇管理表を作...
-
MACアドレスで逮捕できる?
-
C言語でTCPの3way handshake
-
PINGに応答するメリット,デメリ...
-
ネットワーク構成に関する質問...
おすすめ情報