• 締切済み

他PCへのファイルコピー

お世話になります。 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 としてみてもダメでした。 どうすればアップできるでしょうか? なにか権限の問題でもあるのでしょうか?

みんなの回答

  • kero_mio
  • ベストアンサー率90% (94/104)
回答No.2

>ただ、\\server1\temp のフォルダは、すでにEveryoneでフルコントロール、読取、変更の許可をしているのです。 なるほど。ちなみにアクセス件はフォルダのアクセス件だけでなく、 共有のアクセス件についてもEveryoneフルコントロール状態でしょうか? もしかしたら、共有のアクセス権限がないだけだと思いますので ご確認ください。 >匿名アクセスのときに使用する、 >IUSR_[Webサーバーのコンピュータ名]というユーザーですが、 >これのパスワードってデフォルトは決まっているのでしょうか? はい。すでに、決められているものです。 基本的にIUSR_[マシン名]ユーザに、パスワードを変更しようとすると 警告が出ますので、すでに割り当てられている特殊なものだと思えば いいです。 >このユーザーをserver1に追加するとか それは、できません。 >Webサーバーにも、server1にも共通にあるユーザーを匿名アクセスのときのユーザーに設定すればうまくいくのでしょうか? それも関係ありません。 とり急ぎ、フォルダのアクセス権だけでなく、共有のアクセス権限も 確認をお願いします。

  • kero_mio
  • ベストアンサー率90% (94/104)
回答No.1

コピー先のフォルダである、\\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-file-to-remote-server-194678.html でも同じことを言ってますので、ご参考になれば幸いです。

参考URL:
http://forums.aspfree.com/asp-development-5/copy-file-to-remote-server-194678.html
angelinaane
質問者

補足

アドバイスありがとうございます。 ただ、\\server1\temp のフォルダは、すでにEveryoneでフルコントロール、読取、変更の許可をしているのです。 匿名アクセスのときに使用する、 IUSR_[Webサーバーのコンピュータ名]というユーザーですが、 これのパスワードってデフォルトは決まっているのでしょうか? このユーザーをserver1に追加するとか Webサーバーにも、server1にも共通にあるユーザーを匿名アクセスのときのユーザーに設定すればうまくいくのでしょうか?

関連するQ&A