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で質問しましょう!
似たような質問が見つかりました
- その他(コンピューター・テクノロジー) batファイルでPCの設定内容やプロパティーを取得したいのですが、コマンド1個で1ファイルとなるのを 2 2022/04/27 15:27
- その他(Microsoft Office) Office(Windows版,Word/Excel/PowerPoint等)にログインできません 4 2022/07/24 15:18
- その他(プログラミング・Web制作) フォルダ内の特定 拡張子のファイルを一括実行するBat ファイルについて 4 2022/04/17 09:51
- その他(プログラミング・Web制作) バッチファイルでPCのモデル名を取得したい 1 2022/03/31 10:58
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- その他(プログラミング・Web制作) ファイル名の一部をbatで変更したい batファイルを使って、以下のようにファイル名の一部を変更した 3 2023/02/21 20:09
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- その他(プログラミング・Web制作) Windowsのマクロプログラムで、こんなことできますか? 3 2022/06/28 14:30
- その他(プログラミング・Web制作) 新しいフォルダを作るbatファイルを作りたいです。 1 2022/10/15 00:41
- その他(プログラミング・Web制作) テキストから指定行を抜き出したい 2 2022/07/13 19:35
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
windowsからtelnetでログインし自動処理
その他(OS)
-
telnetで接続した先のコマンドのバッチファイルを作成したい
その他(プログラミング・Web制作)
-
batファイルでのtelnetについて
その他(プログラミング・Web制作)
-
-
4
telnetの自動シェルバッチを作成したい
その他(プログラミング・Web制作)
-
5
[WSH|JS|VB] telnetコマンドの標準出力を受け取りたい
Visual Basic(VBA)
-
6
TERA TERMを隠す方法
その他(プログラミング・Web制作)
-
7
telnet へのパイプができないです
UNIX・Linux
-
8
telnetの時にタイムアウトが発生する
その他(インターネット接続・インフラ)
-
9
Telnetでファイルを送信したり解凍したりするには?
UNIX・Linux
-
10
「ホストへアクセスできませんでした」と表示される接続エラーの原因を掘り下げて詳しく調べる方法
ネットワーク
-
11
batである文字列内に特定の文字列が含まれているか確認したい
その他(プログラミング・Web制作)
-
12
バッチファイルについて
Windows Vista・XP
-
13
ttlで戻り値を取得する方法
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラマーと学歴の関係性に...
-
プログラミングを教えたいです...
-
vba クリップボードクリアにつ...
-
小学1年生の子です。塾に行かせ...
-
楽しくて最高のプログラミング...
-
プログラミング、アーキテクチ...
-
Windowsのアプリ開発ってなんの...
-
プログラミング
-
Google ColaboでGUI作成
-
Pythonでgif画像が上手く作れない
-
ExcelVBAでFormulaR1C1を列範囲...
-
昔のパソコン少年の武勇伝「店...
-
IT業界より楽に稼げる業界って...
-
chatGPTで次々と質問をしていく...
-
初心者が簡単なPowerShellスク...
-
python の 連鎖代入の文法
-
windowsでテキストファイルの各...
-
matplotlibで任意の角度の円弧...
-
プログラミングで例えばゲーム...
-
ものづくりに向いているプログ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
構造体のメンバをfor文で回したい
-
batファイルでtelnetを起動⇒文...
-
mailto:の本文に文字数制限はあ...
-
mailto:の中に&を入れる
-
動的にプロパティ名を変えたい
-
時間の平均値を計算する方法を...
-
UWSCで出目画像カウントしたい
-
エラーログの意味
-
指定日の?日 前後の求め方
-
アクセスで有給休暇管理表を作...
-
PINGに応答するメリット,デメリ...
-
NTT PR-500MIとGoogle Wifiの接続
-
ネットワークカード2枚挿し TC...
-
Windows端末でのsyslog受信につ...
-
TCPとUDPについて
-
Solaris8 ルーティングの設定...
-
「ナスネ」がPS4と繋がらないの...
-
outlookのアドレス帳について
-
USB3.2 GEN2×2のケーブルにThun...
-
ゲームプログラミングのネット...
おすすめ情報