ウォーターサーバーとコーヒーマシンが一体化した画期的マシン >>

windowsからUNIXサーバーへtelnetでログインし
その後、様々な処理を行い、ログアウトするまでの一連の操作をバッチファイル化したいのですが、上手くログインできません。

WINODWSで telnet.batというバッチファイルをダブルクリックするとその中の
telnet
open
192.168.1.1
user
passwd
cd usr
cp a.tar b tar
exit
といった処理を実行させたいのですが、
TELNETを呼び出したまでは良かったのですが、
上手くログインできず止っています。
宜しくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

TeraTermが、あんまり気に入らないとなると、



1) Expectを使う。
http://www-6.ibm.com/jp/developerworks/linux/020 …
2) perlのNet::Telnetを使う。
man Net::Telnet
3) sshでパスワードなしの鍵を使って、コマンドを実行。
man ssh
4) CGI経由でコマンドをキック。

――とか。
expect、sshはcygwinのものが、PerlはActivePerlが使えます。
sshはサーバー側でsshdが動いている必要があります。
CGIは、大抵、管理権限の無いユーザーで動いてますので、setuidする必要があるかも。
    • good
    • 0
この回答へのお礼

2)でできました。
ありがとうございました。

お礼日時:2002/09/10 20:25

#1の方がおっしゃるとおり,


「TeraTerm PRO」がよいかと思います.

UNIXユーザにとって「TeraTerm」は必需品です.
いまや「TeraTerm」は世界標準ですよね.
マクロファイルを作れば,バッチファイルを実行するような
感覚でマクロをダブルクリックで実行させることもできますよ.

上記バッチファイルを作るような感覚で
マクロも作成できますよ.

がんばってください.
    • good
    • 1

…であれば、「Tera Term PRO」とそのサポートソフト


「Tera Term Menu」を使ってみてはどうでしょう。
OS標準Telnetとバッチファイルより高度なマクロ処理
が可能になっています。

参考URL:http://hp.vector.co.jp/authors/VA002416/,http:// …

この回答への補足

参考にしてみます。
ありがとうございます。

ただ、できれば完全にバッチファイルで実行できるような
ものがあればとても助かります。

補足日時:2002/09/10 19:13
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qtelnetで接続した先のコマンドのバッチファイルを作成したい

毎回動作確認のため、
1、クライアントPCからサーバへtelnetで接続して、
2、接続後、ログイン、動作確認のコマンドを打ちます。

毎回同じコマンドを打つので、
バッチファイルで対応しようかと思いますが可能でしょうか。
それとも他の別の方法がありますでしょうか。
宜しくお願いします。

1のバッチファイル
telnet 192.168.0.2

2のバッチファイル
(192.168.0.2のログインユーザ名)
(パスワード)
(動作確認のコマンド)…


のようなイメージかなぁと考えています。
よろしくおねがいします。

Aベストアンサー

以下のサイトは参考になりませんか?。
http://www.fpcu.jp/dosvcmd/bbs/log/cat1/4-0451.html

Qbatファイルで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ファイルにパスワードまで記述してしまうのは脆弱すぎるとかのご指摘は申し訳ありませんがご遠慮願います。

よろしくお願いいたします。

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:
...続きを読む

Aベストアンサー

SendKeysを用いた方法が下記ページに^^;
http://www.fpcu.jp/dosvcmd/bbs/log/cat1/4-0451.html
けど、使い勝手を考えると・・・

Poderosaで接続ショートカットを保存する方法はどうでしょうか?
http://ja.poderosa.org/
接続するたびにパスフレーズを入力するのが面倒です
http://ja.poderosa.org/faq/15.html

Q[WSH|JS|VB] telnetコマンドの標準出力を受け取りたい

こんにちは。

Windows Scripting Host(WSH)でtelnetコマンドのオートパイロット(自動操縦)をしたいと思っています。
そこで、ログインプロンプトなどを待つ際、waitで時間で待つのではなく、「login:」という文字を待ってログインするようにしたいのですが、できるでしょうか?教えてください。

WSHをご存知ない場合は、VBの範囲でお答えいただければと思います。適用できる可能性がありますので。
なお、言語は、JScript,VBScriptどちらでも構いません。

よろしくお願い致します。

Aベストアンサー

telnet コマンドは、実装が二つありますよね。95 にあった、Window アプリケーションのと
NT のコマンドプロンプトで動くやつ。

Window アプリケーションだと、キーを送り込むのは簡単だが、表示を取るのは、まず、不可能ですよね。

コンソールアプリケーションであれば、どうやってコンソールバッファのハンドルを取得するか
が、難しそう。

rsh もどきが作りたいのであれば、socket を扱うプログラムを作る方が、何百倍も簡単です。

# この回答が、期待に添わないであろう、という意味で自信無しにしておきます

Qtelnet使用時に求められる、loginとpasswordについて

現在DOSプロンプトの勉強をしている
yukidesuyoと申します。
質問ですが、
自宅LANのパソコンにtelnetで接続しようとしたところ、
loginとpasswordを入力しても入れず困っています。
ユーザアカウントの名前とパスワードを入力すると
入れるのかなと思い、入力してもpasswordがはじかれます。
ここに入力するloginとpasswordとは何ですか?
返答のほどよろしくお願いします。

Aベストアンサー

yuubouです。 こんばんわ。

あれこれ情報を集めて会社のPCで実験したところ、それらしき結論が得られ
ましたので試して下さい。

(1)[コントロール パネル] で、[管理ツール] をダブルクリックします。

(2)[ローカル セキュリティ ポリシー] をクリックします。

(3)「セキュリティの設定」
     ↓
 「ローカル ポリシー」
     ↓
 「セキュリティ オプション」
     ↓
 「ネットワーク アクセス: ローカル アカウントの共有とセキュリティ モデル」
 ポリシーを見つけます。
     ↓
 「このポリシーを右クリックし、[プロパティ] をクリックします」
     ↓
 ボックスの [クラシック - ローカル ユーザーがローカル ユーザーとして認証する]
  をクリックします。
     ↓
 [OK] をクリックします。

この設定をした後、telnet serverを再立ち上げして試してみて下さい。

原因は、WindowsXPのセキュリティポリシーでは、Administrator権限を
付与されたユーザでも、ネット接続で入るときは「強制的にGuestユーザとして扱う」
と言う、デフォルト設定にあるようです。
これは「WindowsXPの仕様」なのだそうですが、Windows2000と比べると
かなりガードが堅くなっているようです。

情報源は下記URLにありましたので、参考にして下さい。

参考URL:http://support.microsoft.com/default.aspx?scid=kb;ja;298060

yuubouです。 こんばんわ。

あれこれ情報を集めて会社のPCで実験したところ、それらしき結論が得られ
ましたので試して下さい。

(1)[コントロール パネル] で、[管理ツール] をダブルクリックします。

(2)[ローカル セキュリティ ポリシー] をクリックします。

(3)「セキュリティの設定」
     ↓
 「ローカル ポリシー」
     ↓
 「セキュリティ オプション」
     ↓
 「ネットワーク アクセス: ローカル アカウントの共有とセキュリティ モデル」
 ポリシーを見つけま...続きを読む

Qttlで戻り値を取得する方法

Teratermmacroでローカル(cygwin)に入り、サーバ(HP-UX)にリモートで入った後、
コマンドの戻り値で後の行動を操作したいのですが、うまくいきません。
わかる方、教えていただけませんか。

ざっくり以下のようなマクロを組んでいます。

----------------------------------------------------------
sendln 'ssh name@host1'

wait Prompt
sendln 'sendmsg "test"'(のようなコマンド) ←これの戻り値がほしい

if 戻り値 = 0 then
 ○○
elseif 戻り値 = 1 then
 wait Prompt
 sendln 'exit'
 wait Prompt
 sendln 'ssh name2@host2'

以下略
----------------------------------------------------------

上記の「戻り値」をどのようにすれば戻り値で判別してくれるでしょうか。
if文の条件式を $?やresultでやりましたが、どのような戻り値でも
必ず$?は0、resultは1で固定でした。

また、sendmsgとif文の間に以下のように試しましたが、失敗しました。
例1:
----------------------------------------------------------
sendln 'echo $?'
recvln

if inputstr = 0 then ←syntax errorになります。
 ○○
elseif inputstr = 1 then
----------------------------------------------------------

例2:http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1247390747参照
----------------------------------------------------------
sendln 'echo $?'
recvln
recvln

hensu=inputstr ←Type mismatch.のエラーになる。 直前にstr2intを入れたりしても駄目でした。
ちなみにsendln 'echo $?'を挟まずsendmsgの直後にrecvlnでも駄目です。

if hensu = 0 then
 ○○
elseif hensu = 1 then
----------------------------------------------------------

host1にシェルスクリプトを入れることは出来ません。

Teratermmacroでローカル(cygwin)に入り、サーバ(HP-UX)にリモートで入った後、
コマンドの戻り値で後の行動を操作したいのですが、うまくいきません。
わかる方、教えていただけませんか。

ざっくり以下のようなマクロを組んでいます。

----------------------------------------------------------
sendln 'ssh name@host1'

wait Prompt
sendln 'sendmsg "test"'(のようなコマンド) ←これの戻り値がほしい

if 戻り値 = 0 then
 ○○
elseif 戻り値 = 1 then
 wait Prompt
 sendln 'exit'
 wait Prompt
...続きを読む

Aベストアンサー

基本方針は、echo $? の出力文字をttlで受信して判定、でいいと思います。

・inputstrは文字列なので、=での比較はできません
strcompareコマンドで比較→変数resultで判定
あるいは
str2int 変数 intputstr で変数に数値化→if 変数=0 等と判定
ということになります。
http://ttssh2.sourceforge.jp/manual/ja/macro/syntax/variables.html
http://ttssh2.sourceforge.jp/manual/ja/macro/command/strcompare.html
http://ttssh2.sourceforge.jp/manual/ja/macro/command/str2int.html


・recvln1つではエコーバックの分を受け取ってしまうようです。
他の出力を受信してしまう場合もあります。
確実にやるなら、目印を付けてwaitでそこまで待つ、というのがいい思います

sendln 'echo "=== EXIT STATUS === : $?"'
wait '=== EXIT STATUS === : '
recvln


・シェルスクリプトを入れることはできなくても、複合コマンドを実行することはできるはずです。
sendln '(sendmsg "test" && echo "==== OK ====") || echo "==== NG ===="'
waitlnで待ち→resultで分岐とできます
http://ttssh2.sourceforge.jp/manual/ja/macro/command/waitln.html

基本方針は、echo $? の出力文字をttlで受信して判定、でいいと思います。

・inputstrは文字列なので、=での比較はできません
strcompareコマンドで比較→変数resultで判定
あるいは
str2int 変数 intputstr で変数に数値化→if 変数=0 等と判定
ということになります。
http://ttssh2.sourceforge.jp/manual/ja/macro/syntax/variables.html
http://ttssh2.sourceforge.jp/manual/ja/macro/command/strcompare.html
http://ttssh2.sourceforge.jp/manual/ja/macro/command/str2int.html


・recvln1つではエコーバ...続きを読む

Qコマンドプロンプトから別マシンに命令を投げれるでしょうか

たとえばコマンドプロンプトから
shutdown -m \\another_machine -s
などとするとanother_machineという別Windowsマシンにて
shutdownを実行することができますが、これと同じように
another_machineのc:\test.batが存在した場合、
これを他のWindowsマシンから実行することはできるでしょうか。
もちろん、\\another_machine\c$test.bat
として自分のマシン上でtest.batを実行するわけではなく、
あくまでanother_machine上で動くことを別Windowsマシンから
命令するだけとなります。

Aベストアンサー

ANo.2のwarakuniです。

なんだか早とちりしてたみたいですね。
お恥ずかしい。

それでは、rshはどうでしょうか?
もともとUnixのコマンドですが、Windowsでも使用できます。
MicrosoftのサイトからService for Unix(SFU)というツールをダウンロードしインストールするとrshサーバーのサービスが使えるようになるようです。
http://www.microsoft.com/japan/technet/interopmigration/unix/sfu/default.mspx

SFUは使ったことがなかったので、ためしに入れてみました。

RSH host_name -L user "dir c:\user\" > dir.log

としてみると、ご希望の動作をしているように思います。

はてなに同様の質問がありました

http://q.hatena.ne.jp/1158764077

ご参考まで。

QTERA TERMを隠す方法

TERA TERMでマクロを起動した時、
実行結果の画面が出力されますが
これを最小化もしくはバックグラウンドで
見せないように起動する方法があれば
教えてください。
マクロのオプション /V や /I では
見せないようにすることができませんでした、
何か方法があれば教えてくださいませ。

Aベストアンサー

connect '/I xxx.xxx.xxx.xxx'のように
connectのオプションに/Iをつけてください。

QDirコマンドでフォルダ内ファイルの合計サイズをだすには?(コマンドプロンプトにて)

いろいろ調べましたが不明な点があり、質問します。

WindowsのDOSプロンプトでdirコマンドを打つとフォルダ・ファイルの一覧が表示されますが、その中にファイルサイズが表示されています。
このサイズを合計できるコマンドはありませんか?
DIRコマンドのオプションを調べましたがそれらしいものが見当たりません。
具体的には
C:\xxx\配下に50個程度のファイルがあります。
その50個の合計サイズを知りたいです。
xxxフォルダの親フォルダにはアクセス不可です。

ずーっと悩んでいます。よろしくお願いします。

なお、OSはWindowsNTか2000で使用予定です。

Aベストアンサー

カレントドライブ、カレントフォルダを
C:\xxx\
にした状態で、

dir /s /a-d

/sパラメータででサブディレクトリすべてを検索
/a-dパラメータでディレクトリ以外のファイル(つまり属性に関係なくすべてのファイル

これを実行すると最後にファイルの個数とファイルサイズの合計を表示します。

もし、隠し属性のファイルは合計しないのであれば、

dir /s

だけで良いと思われます。

Qバッチ処理でファイルの中身を変数に入れるやり方

あるファイルの中には1行の文字列があります。
このファイルをバッチで読み取り、変数に設定したいです。

例:
test.txt
abcacbacbacbacbacbacbacbacb

test,bat
set DATA=[test.txtを読み込んだ値]

よろしくお願い致します。

Aベストアンサー

これですね。

参考URL:http://www.upken.jp/kb/dqvgHNRUxwFDkmtoqEwfXHUjDrevNv.html

QFTPコマンドでディレクトリごとファイル移動できるコマンドはありますか?

タイトルどおりなのですが、FTPでファイルを転送する際に、サブフォルダを含むディレクトリごとファイル転送するコマンドはありますでしょうか。
ディレクトリの中にあるすべてのファイルを移動したいのですが、サブフォルダがたくさんあるので、わざわざディレクトリの場所へ移動してmputを繰り返すのはめんどうで仕方ありません。
よろしくお願いします。

Aベストアンサー

ご使用になるOS環境が書いてないのですが、Linux,BSD等ならncftpで、get -R dir。
Windowsならffftpを使えば良いと思います。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング