ベストアンサー ※ ChatGPTを利用し、要約された質問です(原文:telnetで接続先の操作方法について) telnetで接続先の操作方法について 2010/12/13 23:23 このQ&Aのポイント telnetで接続先の操作方法についてvisualC++でプログラムを作成し、バッチファイルを呼び出す方法を説明しますtelnetで接続して(1)は成功するが、(2)と(3)が実行されない問題についてアドバイスを求めています telnetで接続先の操作方法について こんにちは 今、visualC++でプログラムを作っています。 内容はsystem関数を使ってバッチファイルを呼び出すプログラムなのですが int main(void){ system(tel.bat); return 0; } バッチファイルの内容は (1)telnet 192.168.○○○ (2)cd フォルダA (3)test.exe です。 作って実行してみると(1)の接続はできました。ですがその次の(2)、(3)は実行されませんでした。 どうしたらできるのでしょうか?できればtelnetで実行できるようにしたいです。 操作側 接続先 OS:windows7、windowsCE よろしくお願いいたします。 質問の原文を閉じる 質問の原文を表示する みんなの回答 (1) 専門家の回答 質問者が選んだベストアンサー ベストアンサー Wr5 ベストアンサー率53% (2173/4061) 2010/12/14 00:07 回答No.1 >バッチファイルの内容は >(1)telnet 192.168.○○○ >(2)cd フォルダA >(3)test.exe >です。 >作って実行してみると(1)の接続はできました。ですがその次の(2)、(3)は実行されませんでした。 telnetコマンドが終了するまで、バッチファイルは次の処理に進みません。 サーバ側から切断させればtelnetコマンドが終了しますので、次の行のcdコマンド、およびtest.exeが『クライアントのローカル環境で』実行されます。 そういうバッチファイルになっています。 希望する動作は、telnetで接続して、サーバ側でディレクトリ移動とtest.exeを実行したいのではないですか? telnetコマンドの標準入力に流し込めば動くかと思われますが… # ただし、試したコトはありません。 バッチファイルではなく、CreateProcess()でプロセス起動して、標準入出力のパイプで操作する。 という方法もあります。 「CreateProcess パイプ」辺りで検索すると見つかるでしょう。 http://www.fpcu.jp/dosvcmd/bbs/log/cat1/4-0451.html こんなネタもあります。 他の方法としては…希望する処理を記述したTeraTermマクロを作成して、system()でそのマクロを実行する。 とかですかね。 たぶんこっちの方が簡単でしょう。 質問者 お礼 2010/12/28 14:18 回答ありがとうございます。 telnetコマンドが終了するまで次の命令に移らないんですね。 勉強になりました。 アドバイスしてくださったのを試してみます。ありがとうございました 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピュータープログラミング・開発C・C++・C# 関連するQ&A 自動でtelnet お世話になります。 ボタンクリックすると自動でTelnetを起動しコマンドを投げてtelnetを終了する...処理を作っています。 telnet接続からの操作はvbsで作成、 そのvbsをbatfileで起動するようにしました。 古いパソコン環境で動かす(32bit)というので、あえてvc++6.0で作成し正常に、動きました。 それを64bitのWindows2012で動かしたら、vbsの中のtelnetの接続のところでエラーになります。 'telnet'は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチファイルとして認識されていません と、なります。 telnet clientはinstallしてあり、 コマンドプロンプトでbatファイルをたたくとちゃんと正常に動きます。 batファイルをダブルクリックでも動きます。 コマンドプロンプトでcscript xxx.vbs としても正しく動きます。 プログラムから CreateProcessで、「cmd xxx.bat」としているのですが。。。 どこが間違ってるのか、何がダメなのか判断が付かないのです。 至急アドバイスをいただけないでしょうか。 よろしくお願いいたします。 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を呼び出したまでは良かったのですが、 上手くログインできず止っています。 宜しくお願いします。 telnetで接続した先のコマンドのバッチファイルを作成したい 毎回動作確認のため、 1、クライアントPCからサーバへtelnetで接続して、 2、接続後、ログイン、動作確認のコマンドを打ちます。 毎回同じコマンドを打つので、 バッチファイルで対応しようかと思いますが可能でしょうか。 それとも他の別の方法がありますでしょうか。 宜しくお願いします。 1のバッチファイル telnet 192.168.0.2 2のバッチファイル (192.168.0.2のログインユーザ名) (パスワード) (動作確認のコマンド)… のようなイメージかなぁと考えています。 よろしくおねがいします。 ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム telnet接続 ある装置にtelnet接続し、コマンド(ccc dd ee)を送信して帰ってきた値を outou.dat というファイルに保存するプログラムを作っています。 接続すると login: と表示されるので「aaaa」と入力すると Welcome to aaaa > と表示され、「bbbb」と入力するとプロンプトが「#」に変わります。 >bbbb # そこでコマンド「ccc dd ee」を入力したときに帰ってくる応答をファイルに保存します。 #ccc dd ee ------応答データ-------- これを行うのに下記プログラムを実行しましたが、エラーは出ませんがファイルに何も 保存されませんでした。 何がいけないのかわかる方教えてください。 use strict; use Net::Telnet; my $host = '192.168.1.1'; my $login = 'aaaa'; my $enable = 'bbbb'; my $prompt1 = '/>/'; my $prompt2 = '/\S/'; my $telnet = new Net::Telnet( Timeout => 10, ); $telnet->open($host); $telnet->waitfor('/login:/i'); $telnet->print($login); $telnet->waitfor($prompt1); $telnet->print($enable); $telnet->waitfor($prompt2); my @result; $telnet->print("ccc dd ee"); ($result) = $telnet->waitfor($prompt2); open(OUT, "> outou.dat"); print(OUT "@result\n"); close(OUT); $telnet->close; batファイルでのtelnetについて お世話になります。題名のとおりtelsetをbatファイルで自動実行したいのですが、こんなことは出来るのでしょうか?ftpはbatファイルで自動実行出来るのですが。 どうしても、telnetでユーザ名等を渡す処理が分かりません。よろしくお願いいたします。 Windows7でのtelnet接続について Windows7パソコンでのtelnet接続について教えてください。 異なるセグメント間ではtelnetはできないのでしょうか。 10.4.xxx.xxx から 10.6.xxx.xxx に接続しようとしています。 telnetを実行したのですが、下記メッセージが表示されてしまいました。 「ポート番号 23:接続に失敗しました。」 パソコン側では下記の設定をしています。 Windows の機能の有効化または無効化で「Telnetクライアント」と「Telnetサーバー」をチェック Windowsファイアウォールによるプログラムの許可で「Telnet」をチェック サービス一覧で「Telnet」を開始 以上よろしくお願いします。 タスクスケジューラでのtelnet実行について よろしくお願いいたします。 ネットワーク機器に定期的にログインチェックを行う必要が生じたため、 バッチファイルとVBSを作成し、手動で実行すると問題なく動作しました。 ところがWindowsタスクスケジューラでユーザーがログオフした状態で実行すると 異常終了してしまいました。 処理の流れは以下になります。 (1)バッチファイル起動 (2)バッチファイルが適当な名前を付けたコマンドプロンプトを起動。 (3)バッチファイルがVBSを起動 (4)VBSが(2)で起動したコマンドプロンプトをアクティブにする。 (5)VBSがSendKeysメソッドでコマンドプロンプト上でtelnetを実行 原因が分からず困っています。 ユーザーがログオフしている環境ではtelnetは実行できないものなのでしょうか。 どうぞご教授下さい。 実行結果が表示されません 今回PHPからCISCOのルータにテルネット経由にてログインしコマンドを実行、実行結果を出力するプログラムを考えています。 一応ログインし、実行しているようですが・・・実行結果が表示されないです。 何かほかに良い方法があればアドバイス等を頂ければと思います。 <?php // Telnet接続 $tel = new Telnet('ホスト名'); if( @!$tel->connect() ) { return 'TELNET_FAIL'; } elseif( @!$tel->login('ユーザー名' , 'パスワード') ) { return 'TELNET_FAIL'; } $tel->setPrompt($host.'#'); $tel->exec("terminal length 0"); $result[0]=exec("show momory statics"); print $result[0]; ?> win2008r2 バッチファイル起動しない バッチファイルの実行に関して、質問させてください。 現在作成したバッチファイルをWindows7上でうまく動きます(コマンドプロプトン、ダブルクリック、スケジューラ)が、windows 2008R2(AD機能)で起動しないです。コマンドプロプトンで【test.bat】Enterキー押すと”操作可能なプログラムまたはバッチ ファイルとして認識されていません”というメッセージが出ます。環境変数のPATHTEXTに".BAT"の記述はあります。スケジューラで実行されるみたいですが、リターンコードは1で、バッチファイルの内容は実行されていないようです。ダブルクリックしても、ほしい結果がでません。結構困っています。解決方法があれば、ご教授ください。 smtpサーバへtelnetログインし、対話形式でメールを送付するところを自動化したい 「smtpサーバへ、telnetログイン(ポート指定:25)後、対話形式でメールを送付する。」 というのを自動化したいのですが、手動でコマンドを投入する分ではうまく行くのですが、Windowsのバッチファイル(.bat)で実行すると、ログインしたところで止まってしまいます。 どうすればうまくいくでしょうか? Telnetをログアウトしても処理を続けたい PC1(AIX UNIX)からPC2(Win2000 sp2)へtelnetでログインし、PC2上のバッチファイルを実行させようとしています。 一連の作業を自動化させたいため、PC1上のシェルスクリプトでバッチファイルを起動させているのですが、ログアウトするとバッチファイルのプロセスも切れてしまいます。 シェルスクリプトはsleepコマンドのため、自動的にexitがかかってしまい、長い処理や処理時間の読めないプログラムを走らせることができません。UNIX系のnohupのようなことをWindows上で行うことはできないのでしょうか? 色々と調べても情報がなかったので、あきらめかけてます。ご存じの方、またご経験のある方がいましたら教えて下さい。 net use コマンドでのサーバ接続について 初めまして。 現在、WINDOWS2003サーバ(Aサーバ)を使用して、サーバ内でBATファイルを実行しています。 BATファイルの実行方法は、別のWINDOWS2003(Bサーバ)のバッチファイルから Aサーバにnet useコマンドで接続し、AサーバのBATファイルを実行するというものです。 Aサーバには複数のバッチが存在し、同時にBサーバ、CサーバからAサーバの各BATファイル を実行しています。 そこで問題が発生しているのですが、BサーバからバッチファイルでAサーバのバッチファイルを実行している間に、同時にCサーバのバッチファイルからAサーバのバッチファイルを実行しようとしたところ、先に実行されていたBサーバのバッチの処理が突然終わってしまい(Aサーバへの接続が切れた?)、Cサーバのバッチだけが実行される状態になってしまいます。 BサーバのバッチとCサーバのバッチを同時に実行することはできないのでしょうか? そもそもAサーバにnet useコマンドで複数のサーバから接続できないということでしょうか? ちなみにサーバは複数ありB,Cサーバ以外にも5つほどのサーバで同時にAサーバに接続を行いたいと思っています。 かなりはまって困っています。 わかる方ご教授いただけますでしょうか。よろしくお願いします AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム 【初心者】バッチファイルの作成方法について Windowsバッチファイルの作成方法について質問させて下さい。 以下の処理を行うバッチファイルの作成を考えています。 ・C:\Program Files\Microsoft Visual Studio 8\VCへ移動 ・上記フォルダ内にある vcvarsall.batファイルを実行 ・C:\Program Files\Microsoft Platform SDKへ移動 ・上記フォルダ内にある SetEnv.cmdファイルを実行 ・Cドライブ直下(C:\)へ移動 目的としては、「Microsoft Visual C++2005」の環境設定ファイルを バッチファイルにて一括実行することです。 実際に自分で作成したバッチファイル(setenv.bat)の内容は 以下のとおりです。 ---------------------------------------------------------- @echo off echo setenv.batを実行します cd C:\Program Files\Microsoft Visual Studio 8\VC echo vcvarsall.batを実行して環境設定をおこないます vcvarsall.bat cd C:\Program Files\Microsoft Platform SDK echo SetEnv.cmdを実行して環境設定をおこないます SetEnv.cmd cd C:\ ---------------------------------------------------------- [実行結果] C:\>setenv.bat setenv.batを実行します vcvarsall.batを実行して環境変数を設定します Setting environment for using Microsoft Visual Studio 2005 x86 tools. 実行結果のとおり、setenv.batの実行までしか処理が行われず、 vcvasall.batは実行されません。 原因と対処方法について、どなたか教えて頂けませんでしょうか? telnet 初心者です。 telnetの参考書を買いました。 Windows2000 で、ファイル名を指定して実行に”telnet”と、打ち込みました。 Microsoft Telnet > と表示されます。 Microsoft Telnet > open 192.168.0.1 と、打っても接続できません。どうしてでしょうか? ルータのIPアドレスが192.168.0.1であることは間違いありません。 ポート番号:23 接続失敗しました。 と、表示されます。 ルーター側でtelnetを受け入れる設定が必要なのでしょうか? 何か間違っていますか? TELNETについて サーバーはさくら(スタンダードプラン)を使っており下記URLを参考に以下の手順で実行しました。 http://support.sakura.ad.jp/support/manual/rs/tech_telnet.shtml#login スタート→ファイル名を実行→cmd→プロンプトにtelnet アカウント.sakura.ne.jp ※osはwinxpです。 としエンターを押すと接続中となるのですがホストへ接続できませんでした。ポート番号23:接続に失敗しました。 どうすれば接続できるでしょうか?具体的な対策案などアドバイス頂けますと幸いです。 Javaプログラムからバッチ起動 Runtimeクラスを使用し、バッチファイルをJavaプログラム内で呼び出す処理を実装しました。Javaにより呼び出されるバッチファイル(X.bat)は、他の2つのバッチファイル(A.bat、B.bat)を呼び出すようにプログラムされています。ここで質問なのですが、実際にこのJavaプログラムを実行しX.batを呼び出し、最終的にA.bat、B.batが呼ばれているかどうかの確認をしたところ、どうもB.batが呼ばれずにA.bat終了後、処理が終了してしまっているなのですが、この原因についてご教授いただきたく質問いたしました。 バッチファイルで他のバッチファイルを呼び出した後、元に戻ってこれない。 バッチファイルで他のバッチファイルを呼び出した後、元に戻ってこれない。 バッチファイルでほかのバッチファイルを呼び出した後の処理で困っています。 どうぞ教えてください。 「A.bat」というバッチファイルを実行すると、「1.bat」というバッチファイルを 実行させ、「1.bat」の実行結果によって、処理を分岐させたいと考えています。 「1.bat」をcallで呼び出し、実行はできたのですが、「1.bat」は最後にエンタキーを 押さないと終了しないようになっています。そのため、「エンターキーを押して終了させて ください」というメッセージが出たままの画面で終わってしまい、「A.bat」に帰ってくることが できません。 「1.bat」は中身を扱えないようにしてあるバッチファイルなので、こちらでエンターキーを 押さずに終了させるようにはできません。何かいい方法はないでしょうか? ファイル操作 コンパイラ:VisualC++6.0 ファイル操作について質問です。 書き込みは出来ますが、書き込みの追記の仕方が分かりません。(毎回上書きされる) #include<stdio.h> int main(void){ FILE* fp; char write[100]; fgets(write,sizeof(write),stdin); fp=fopen("../test.txt","w"); if(fp==NULL){ printf("エラー"); return 0; } fprintf(fp,"%s",write); fclose(fp); return 0; } よろしくお願いします。 ttlコマンドでのtelnet接続について teratermのマクロ機能を使用してtelnet接続の自動化をしたいと考えています。 いろいろなサイトを見て ****************************************** HOSTADDR = '接続先IPアドレス' USERNAME = 'ユーザ名' PASSWORD = 'パスワード' COMMAND = HOSTADDR strconcat COMMAND ':23 /nossh /T=1' connect COMMAND wait 'login:' sendln USERNAME wait 'Password:' sendln PASSWORD end ****************************************** でできることができたのですが、使用者にアカウント名、パスワード名を知られたくありません。 【やりたいこと】 (1) 1. ttlファイルを実行する 2. 接続先のIPアドレスを入力する 3. 自動でtelnet接続する。 (2) 上記に加えて使用者にttlファイルの中身を参照されたときにアカウント、パスワードがわからないようにする。 ⇒暗号化されたファイルを読み込むようにする? (1)-2についても実装できていません。 アドバイスをお願いします。 telnetでWeb監視 Webサービスを社内で提供してますが各支店から通信の確認をするために telnetで80ポートに接続して 何かしらレスポンスが帰ってくる様子をファイルにリダイレクトできないかなと考えています。 環境はWindows XPでバッチコマンドをつくり 結果のファイルを吐き出すイメージです。 どなたかいい手法ご存知でしたら教えてください 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター プログラミング・開発 Microsoft ASPC・C++・C#CGIJavaJavaScriptPerlPHPVisual BasicHTMLXMLCSSFlashAJAXRubySwiftPythonパフォーマンス・チューニングオープンソース開発SEOスマートフォンアプリ開発その他(プログラミング・開発) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
お礼
回答ありがとうございます。 telnetコマンドが終了するまで次の命令に移らないんですね。 勉強になりました。 アドバイスしてくださったのを試してみます。ありがとうございました