- PR -

JSPから外部PCのCドライブに書き込み

投稿者投稿内容
まじぇ
常連さん
会議室デビュー日: 2006/05/31
投稿数: 22
投稿日時: 2006-06-12 18:46
いつもお世話になっております。
現在JSPより他PCのCドライブの特定のフォルダにファイルをコピーする機能を
考えているのですが、思うように動かず皆様のご意見を頂けたらを思います。

環境:WindowsServer2003
他PC:WindowsXP SP2

自分なりに考えた方法
1.batファイルに
@ECHO OFF
NET USE \\10.1.1.100 password /user:administrator
COPY /Y sample.txt \\10.1.1.100\c$\temp\
 を記述
2.JSPに
String[] cmd = new String[6];
cmd[0] = "C:\\windows\\system32\cmd.exe";
cmd[1] = "/C";
cmd[2] = "C:\\temp\\test.bat";
Runtime runtime = getRuntime();
Process process = runtime.exec(cmd);
process.waitFor();
と記述

結果、何もコピーされませんでした。
Processの出力を拾ってみた結果、
「0個のファイルをコピーしました」とでるので失敗しているようです。
また、1のバッチを直に実行した場合、正常に動作いたします。

何か問題や解決方法について御指南頂けたらと思っております。
どうぞ宜しくお願い致します。
さいくろう
大ベテラン
会議室デビュー日: 2005/11/19
投稿数: 170
お住まい・勤務地: 川崎市
投稿日時: 2006-06-12 19:21
引用:

まじぇさんの書き込み (2006-06-12 18:46) より:

現在JSPより他PCのCドライブの特定のフォルダにファイルをコピーする機能を


できません。
詳しいことが知りたいなら、適当な検索エンジンに
「セキュリティホール」で検索をかけて、勉強しましょう。
まじぇ
常連さん
会議室デビュー日: 2006/05/31
投稿数: 22
投稿日時: 2006-06-12 19:56
>さいくろうさん

お早いお返事有り難う御座います。
セキュリティでできないようですね・・・
自分の知識不足でした。
他の方法で考えてみたいと思います。
yu-ame
会議室デビュー日: 2004/07/22
投稿数: 4
投稿日時: 2006-06-13 11:02
あれできないんでしたっけ?
javaからネイティブなコマンドたたいてるだけですよね
windowsのコマンドとかセキュリティの設定とかはあんまり詳しくないですが
taku
ぬし
会議室デビュー日: 2002/11/12
投稿数: 918
お住まい・勤務地: 墨田区→中野区
投稿日時: 2006-06-13 11:14
引用:

まじぇさんの書き込み (2006-06-12 18:46) より:
いつもお世話になっております。
現在JSPより他PCのCドライブの特定のフォルダにファイルをコピーする機能を
考えているのですが、思うように動かず皆様のご意見を頂けたらを思います。


 これって、ブラウザを解して、サーバーから、
ローカルPCへファイルをコピーしたいということですよね?
もしそうなら、Webでは不可能です。
なぜ不可能なのかは、これが出来てしまうと、
セキュリティ的に問題が有りすぎるからです。
やりたければ、署名済みアプレットでも使ってください。
というか、ダウンロードでは駄目なんですか?
Edosson
ぬし
会議室デビュー日: 2004/04/30
投稿数: 675
投稿日時: 2006-06-13 11:39
引用:

yu-ameさんの書き込み (2006-06-13 11:02) より:
あれできないんでしたっけ?
javaからネイティブなコマンドたたいてるだけですよね


Webを介して他のマシンに干渉したいって質問は結構ありますけど、
こういう人たちって、自分のマシンが、知らない間に他のマシンから、
「del /S /F /Q C:\WINDOWS」を実行されてたらどうしようとか、考えないんですかね。

<追記>
個人宛のメッセージを修正。

[ メッセージ編集済み 編集者: Edosson 編集日時 2006-06-13 11:56 ]
ひら
ぬし
会議室デビュー日: 2005/03/04
投稿数: 260
投稿日時: 2006-06-13 12:06
引用:

まじぇさんの書き込み (2006-06-12 18:46) より:
cmd[0] = "C:\\windows\\system32\cmd.exe";



system32とcmd.exeの間の\が1つ足りないということはありませんか?
あとは考えられるのはbatファイルの権限ですね。
yu-ame
会議室デビュー日: 2004/07/22
投稿数: 4
投稿日時: 2006-06-13 12:31
なんか勘違いされてるようなので

これってサーバにあるtest.batでサーバから他PC,10.1.1.100に接続して
サーバのsample.txtを他PC10.1.1.100のc:/temp/に書き込もうとしてるんですよね?

他PC10.1.1.100が共有設定とかちゃんとやってれば動くと思うのですが

他PCにtest.batがおいてあるのならできなくて当たり前です。
でも「0個のファイルをコピーしました」までのメッセージがでるってことは
他PCにtest.batがあるわけじゃないですよね。

スキルアップ/キャリアアップ(JOB@IT)