プロが教える店舗&オフィスのセキュリティ対策術

お世話になります。

Webからファイルアップロードしたいのですが、
ファイルサーバーがWebサーバーとは別になっています。
IISで仮想ディレクトリには設定したのですが、
うまくアップできません。

で、ローカルディレクトリにファイルをアップしてから
ファイルコピーしようとしたのですが、
やはりできません。
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
objFSO.CopyFile "C:\test\aaa.txt", "\\server1\c:\temp\aaa.txt",True

マシンserver1のtempフォルダをネットワークドライブZにしてみて
objFSO.CopyFile "C:\test\aaa.txt", "z:\temp\aaa.txt",True
としてみてもダメでした。

どうすればアップできるでしょうか?
なにか権限の問題でもあるのでしょうか?

A 回答 (2件)

コピー先のフォルダである、\\server1\c:\temp\ に対し、


アクセス権限が認められていないのが原因だと思います。

理由は、下記の通りなので、まず本質をつかんで頂きたく存じます。

・ASPは、IUSR_[Webサーバーのコンピュータ名] というユーザで
 動きます。

・しかし、コピー先のserver1に、ASPを使ってファイルコピーを
 すると、IUSR_[Webサーバーのコンピュータ名]というユーザで
 ファイルをコピーしようとしますので、当然、server1には、
 IUSR_[Webサーバーのコンピュータ名]というユーザに
 対するアクセス権限を持っていないわけです。

さて、問題は、どうやればコピーできるか?なのですが
\\server1\temp のフォルダに対し、Everyoneのアクセス権限を
与えてあげれば、
objFSO.CopyFile "C:\test\aaa.txt", "\\server1\c:\temp\aaa.txt",True
で、コピーができるようになると思います。

ただし、Everyoneのアクセス権限を与えるということは、
セキュリティが低下しますので、アクセス権限の付与は
くれぐれも必要最小限の決められた場所だけに、与えておくのが
よろしいかなと思います。

英語のサイトになりますが、
http://forums.aspfree.com/asp-development-5/copy …
でも同じことを言ってますので、ご参考になれば幸いです。

参考URL:http://forums.aspfree.com/asp-development-5/copy …

この回答への補足

アドバイスありがとうございます。

ただ、\\server1\temp のフォルダは、すでにEveryoneでフルコントロール、読取、変更の許可をしているのです。

匿名アクセスのときに使用する、
IUSR_[Webサーバーのコンピュータ名]というユーザーですが、
これのパスワードってデフォルトは決まっているのでしょうか?
このユーザーをserver1に追加するとか
Webサーバーにも、server1にも共通にあるユーザーを匿名アクセスのときのユーザーに設定すればうまくいくのでしょうか?

補足日時:2008/01/15 10:09
    • good
    • 0

>ただ、\\server1\temp のフォルダは、すでにEveryoneでフルコントロール、読取、変更の許可をしているのです。



なるほど。ちなみにアクセス件はフォルダのアクセス件だけでなく、
共有のアクセス件についてもEveryoneフルコントロール状態でしょうか?
もしかしたら、共有のアクセス権限がないだけだと思いますので
ご確認ください。

>匿名アクセスのときに使用する、
>IUSR_[Webサーバーのコンピュータ名]というユーザーですが、
>これのパスワードってデフォルトは決まっているのでしょうか?

はい。すでに、決められているものです。
基本的にIUSR_[マシン名]ユーザに、パスワードを変更しようとすると
警告が出ますので、すでに割り当てられている特殊なものだと思えば
いいです。

>このユーザーをserver1に追加するとか

それは、できません。

>Webサーバーにも、server1にも共通にあるユーザーを匿名アクセスのときのユーザーに設定すればうまくいくのでしょうか?

それも関係ありません。

とり急ぎ、フォルダのアクセス権だけでなく、共有のアクセス権限も
確認をお願いします。
    • good
    • 0

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