解決できた場合は2000ポイント差し上げます。遠隔地の2003server(202.248.xxx.xxx)にWinXP(非固定IP)で接続しています。2003Server上にftpコマンドを書いたバッチファイルがあります。このバッチファイルを実行すると20003Serverから別のAというサーバーへファイルをアップロードするシステムなのですが、AというサーバーでIPフィルタリングがかかっているので、(202.248.xxx.xxx)のみからしか接続できず、XP(非固定IP)からは接続が出来ません。2003Serverのバッチファイルを普通に開くと、WinXP上にダウンロードされて実行されてしまうためAというサーバーへ通知されるIPが非固定となってしまい接続できません。このバッチファイルをサーバー上で実行して、Aというサーバーへ(202.248.xxx.xxx)を通知する方法はないでしょうか。もちろん全サーバー自分とその関係者の管理するものです。また、リモートデスクトップと2003Server上でのプロキシはできれば使いたくないです。要は、バッチファイルをダウンロードせずにサーバーサイドで実行できれば解決です。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2004/11/16 23:06:07
  • 終了:--

回答(12件)

id:ring_ring No.1

ring_ring回答回数84ベストアンサー獲得回数02004/11/16 23:44:23

ポイント83pt

http://www.atmarkit.co.jp/fwin2k/win2ktips/066admintools/adminto...

@IT:Windows TIPS -- Tips:サーバ用管理ツールをクライアントPCにインストールする

すでにご存知かも知れませんが、2003serverではtelnetサービスを標準で利用することができます。

したがって、お使いのWinXPから2003serverにtelnetログインし、対象のバッチコマンドを実行すればよろしいのではないでしょうか?

具体的には、XPのコマンドプロンプトから、

telnet 202.248.xxx.xxx (2003serverのIPアドレス)

を実行し、お使いのIDとパスワードでログインして、あとはDOSコマンドの要領でバッチコマンドを実行するということです。

id:Iwa No.2

Iwa回答回数120ベストアンサー獲得回数62004/11/16 23:49:44

ポイント83pt

http://www.hatena.ne.jp/1100613967#

人力検索はてな - 解決できた場合は2000ポイント差し上げます。遠隔地の2003server(202.248.xxx.xxx)にWinXP(非固定IP)で接続しています。2003Server上にftpコマンドを書いたバッチ..

リモートデスクトップやVNC等を使いたくないのであれば、Perl等でCGIスクリプトを作成し、ブラウザからCGIを呼び出してその中でバッチファイルを動かすという方法が思いつきます。(自分ならこうします)

ただ、こうなると2003serverをHTTPサーバーにする必要もでてきます。

また、勝手に誰でも実行できないように認証をかける必要もでてくるでしょうね。

Perlでやるなら、

system(’hogehoge.bat’) ←system関数

`hogehoge.bat` ←バックスラッシュで囲む

を使ってバッチファイルを実行できます。

id:upride No.3

upride回答回数220ベストアンサー獲得回数12004/11/16 23:54:20

ポイント83pt

<html>

<head>

<script language=”VBScript”>

Sub cmdExec(Link)

Dim oWs , Rtn

Set oWs = CreateObject(”Wscript.Shell”)

Rtn = oWs.Run(”cmd.exe /C ” & chr(34) & Replace(Link,”/”,”¥”) & chr(34) , 1, False)

Set oWs = Nothing

End Sub

</script>

</head>

<body onclick=”cmdExec(’ftp.bat’)”>

</body>

</html>

2003server上でIISを稼動させて

こんなスクリプトをXPクライアントから実行するなら

実行ユーザはサーバ上のユーザですので

IP制限にひっかからないと思います

こんなのでどうでしょうか?

id:sandaler No.4

sandaler回答回数671ベストアンサー獲得回数02004/11/17 00:00:41

ポイント83pt

DOSのREXECコマンドを使ってリモート実行すればいいと思います。

id:nao1026 No.5

nao1026回答回数25ベストアンサー獲得回数12004/11/17 00:18:15

ポイント83pt

全く別の視点から回答させて頂きます。

XPマシンからのタイミング的な指示が必要であれば問題外ですので、ポイントは結構です^^;

バッチファイルを実行する、という目的に絞り、さらにXPマシンからリモート操作を行う必要は無くて、一定周期の決まった時刻にバッチファイルが実行できればそれでよいというのであれば、タスク機能で簡単に出来ます。

複数のサーバ間でファイルの同期などを取りたいのであれば、これで十分な場合があります。

(1)システムツール → タスク でタスクの追加を実行。

(2)作成したバッチファイルを指定する。

 (デフォルトではバッチファイルは候補に出てこないと思いますので、実行するプログラム → 参照 → ファイル名に*.bat → 開く でバッチファイルを無理矢理?表示させます)

(3)スケジュールを設定します。また、「新規」→ 複数設定できるので、1日何回も実行するようにすることも出来ます。

(4)パスワードは必ず設定します。

(5)バッチファイル実行後、コマンドプロンプト画面が残ってしまわないように、exit /b 等は忘れずに・・・。

id:mizushima

現在、いままで回答頂いた手順を試しています。

バッチファイルの内容は「ftp -s c:¥script.txt >>c:¥exec.log」だけなのですが・・・。

2004/11/17 00:31:37
id:sandaler No.6

sandaler回答回数671ベストアンサー獲得回数02004/11/17 01:07:56

ポイント83pt

4の回答者です。

すいません、REXECは2003serverでサービスが用意されていませんでした。

RSHやRCPも同様にサービスが用意されていないようです。

このあたりのコマンドが使えれば簡単なんですけどね。

ちなみにコマンドそのものは有効ですのでUNIX系のサーバーなら大丈夫です。

1の方の回答のTelnetが一番簡単だと思いますがセキュリティには気をつけてください。

ポイントは不要です。

id:mizushima

現在telnetでなんとかならないかなーといろいろ調べているのですが、telnetを起動して、自動的にIDとパスワードを入力して、コマンドを自動的に(バッチファイルのように)入力していく方法が分かりません。。。UNIXのexpectのようなコマンドはないのでしょうか。2003ServerにREXECをリクエストしたら、正しいパスワードを入れてもrejectされたので、おかしいなと思ったらそういうことだったんですね。ありがとうございました。

2004/11/17 01:13:14
id:nouveaux No.7

nouveaux回答回数2ベストアンサー獲得回数02004/11/17 03:00:39

ポイント83pt

2003 serverにcygwinのsshdを入れて、XPからsshで制御する、というのはどうでしょうか。

sshの公開鍵認証は、ある公開鍵が使われるとあらかじめ指定されたコマンドを実行する、という使い方があります(クライアントが送ったコマンドは無視されます)。

これを利用して、まず認証を公開鍵認証に限定して、更に実行するコマンドも固定してしまえば、セキュリティも強化できるし自動実行もできるので、一石二鳥です。

URLは「sshd cygwin」でgoogle検索すると最初にヒットするページです。他の検索結果も併せて参照されることをおすすめします。

公開鍵認証を用いた自動実行については、下記のURLの「authorized_keys ファイルの形式」というセクションに書かれています。

id:sanchan No.8

sanchan回答回数164ベストアンサー獲得回数02004/11/17 03:31:20

ポイント83pt

TeraTermProのマクロではいかがでしょうか?

マクロファイルを”FTPup.TTL”とすると、

  ttpmacro.exe FTPup.TTL

でオートパイロット出来ます。

【FTPup.TTLの例】

--↓ここから-------------------------

connect ’サーバー名’

UsernamePrompt = ’login: ’

Username = ’アカウント’

PasswordPrompt = ’password: ’

Password = ’パスワード’

Prompt = ’>’

wait UsernamePrompt

sendln Username

wait PasswordPrompt

sendln Password

wait Prompt

sendln ’ftp -s c:¥script.txt >>c:¥exec.log’

wait Prompt

sendln ’exit’

closett

--↑ここまで-------------------------

Win2k+Service for Unix(プレーンテキスト認証)での確認のため

Win2003SVやHOST側設定で違うかも知れません。

id:aki73ix No.9

aki73ix回答回数5224ベストアンサー獲得回数272004/11/17 07:47:00

ポイント83pt

ならばTelnetを TERATERMを利用して 使ってみてはいかがでしょうか?

マクロファイルを TTPMACRO.EXEに関連付けることで、マクロファイルをダブルクリックするだけで、接続からログイン、パスワードの入力、コマンドラインからの実行まで全部自動で行ってくれるようになります

例)

注:ログインスクリプトを 一部抜粋しただけです

flushrecv

testlink

if result<2 connect ’192.168.0.1’

getpassword ’user.dat’ UPASS passwd

:lopbk

timeout=20

wait ’User’ ’Password’

if result=0 goto timeoutx

if result=1 goto sid

if result=2 goto spswd

if result=3 goto enter

:timeoutx

disconnect

goto ent

:sid

wait

sendln ’Administrator’

goto lopbk

:spswd

・・・・こんな感じです

SSHにも対応してるのでいかがでしょうか?

id:yoisho No.10

yoisho回答回数10ベストアンサー獲得回数02004/11/17 10:34:16

ポイント83pt

Windows2003server、WinXP(非固定IP)、AサーバがそれぞれVPNを通じてLANのようにあつかえれば良いのではないでしょうか。

しかも、現状のIPフィルタリングやルータ等の条件は一切変えずにであれば、

Aのサーバに、YourServerというソフトをダウンロードして、IDとパスワードを決めて公開させます。

Windows2003から、http://(登録ID).server.co.jpにアクセスしてファイル共有を一度行います。

そうすれば、Windows2003のマイネットワークにshare.(登録ID).server.co.jpというフォルダーが自動的に作成されます。

(ここまでの作業で、VPNを設定してファイル共有がかかるようになり、社内LANのような状態です。ルータの設定やIPフィルタリング等の設定も変更する必要はありません。現状のセキュリティの状態を保ったままですので大丈夫です)

Aのサーバのshare.(登録ID).server.co.jpにバッチファイルを置いて起動させれば、良いのではないでしょうか。

id:pikka No.11

pikka回答回数72ベストアンサー獲得回数02004/11/17 11:14:09

ポイント83pt

http://www.monyo.com/technical/windows/19.html

$B%j%b!<%H$N(BNT$B%^%7%s>e$G%3%^%s%I$r<B9T$9$k(B </p>

具体的に説明まではできませんが、以前実際に行っていました。

参考程度にお考え下さい。

id:foobar_777 No.12

foobar_777回答回数78ベストアンサー獲得回数182004/11/18 00:21:04

ポイント83pt

http://support.microsoft.com/default.aspx?scid=kb;ja;313289

[HOWTO] Windows NT で At.exe コマンドを使用してバックアップをスケジュールする方法

サーバ側のAdministratorのパスワードを知っていることが条件ですが、ATコマンドでも可能です。

-----

at ¥¥コンピュータ名id/delete時刻/interactive/every:日付[,...]/next:日付[,...]”コマンド”

・¥¥コンピュータ名 - リモート コンピュータを指定します。このスイッチを指定しないと、コマンドはローカル コンピュータでスケジュールされます。

・command - 実行するプログラム、または C:¥Backup.cmd などのバッチ ファイルを指定します。

http://support.microsoft.com/default.aspx?scid=kb;ja;313565

[HOWTO] AT コマンドを使用してタスクをスケジュールする方法

例えばこんな感じでどうでしょうか。

(1)必要な権限を取得    net use ¥¥202.248.xxx.xxx /user:Administrator

(2)サーバの時刻を確認   net time ¥¥202.248.xxx.xxx

(3)実行コマンドをセット at hh:mm ¥¥202.248.xxx.xxx cmd /c c:¥hoge.bat

id:mizushima

いろいろ試してみたのですが、なかなかうまくいきませんでした。試せなかった手段もあり、申し訳ありません。ポイントは1000ポイントを全員で分配でお願いします。

2004/11/19 02:36:54
  • id:mizushima
    ポイントの分配について

    結局解決していないのですが、試していない回答もあるので
    それは話が違う!という方はのっかりはてな等で
    個人的にご連絡ください。ここの掲示板に書いて頂いても
    常にチェックは出来ませんのでご容赦ください。
  • id:taknt
    なかなか

    LANって難しいねぇ。

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません