- PR -

ネットワークドライブへのアップロードの設定方法について

投稿者投稿内容
ita
常連さん
会議室デビュー日: 2006/10/10
投稿数: 25
お住まい・勤務地: 兵庫県
投稿日時: 2006-10-10 11:51
はじめましてITAです。

Windows2003+IIS6+ASPでWebアプリケーションを作成しています。
以前のシステムをとある事情で仕様変更となり、ファイルのアップロード先をサーバー
上のローカルドライブではなくネットワーク接続された他のサーバー上のドライブに
変更する必要が生じました。
単純にネットワークドライブをマッピングしてそこに保存しようとした処、下記の
エラーが発生し、保存できなくなりました。
アクセス権限の影響かと思われますが、これを回避する設定をどなたか教えて頂けま
せんでしょうか?よろしくお願いします。

■エラー内容:
Microsoft VBScript 実行時エラー (0x800A0046)
書き込みできません。

■エラーのソース:
set fs=server.CreateObject("Scripting.FileSystemObject")
res=fs.CreateFolder("L:\\Attach_File") ' ★ここでエラー発生

Lドライブは、サーバー上のローカルドライブではなく、ネットワーク接続された他の
サーバーのドライブです。
因みに、上記のソースをvbsファイルでローカル上で実行した処、問題なくアクセス
可能です。IISの設定が原因だと思われるのですが?

又、参考になるページでも良いので教えて下さい。

よろしくお願いします。


[ メッセージ編集済み 編集者: ITA 編集日時 2006-10-10 11:51 ]
minminnana
大ベテラン
会議室デビュー日: 2004/02/05
投稿数: 246
お住まい・勤務地: 盛岡
投稿日時: 2006-10-11 08:53
Lドライブに書込みに行ったユーザーに書込み権限を付けてあげれば良いのですよね。
IIS6のデフォルトであれば「Network Service」になっていると思います。
また、実行アカウントはIISマネージャから変更することも可能です。
(ここら辺はセキュリティが絡むので書籍等でじっくり理解されてからの方が良いかもしれませんね)

環境が判らないので一般的な話としてご参考までに。
ita
常連さん
会議室デビュー日: 2006/10/10
投稿数: 25
お住まい・勤務地: 兵庫県
投稿日時: 2006-10-11 13:06
回答ありがとうございます。ITAです。
ここらへんの設定には、とんと疎いもので具体的にどう設定していいものか理解できません。
環境が判らないとのことですが、下記の環境です。
Webサーバー:Windows server 2003 SPなし+IIS6+ASP
保存用サーバー:Windows server 2000 SP4
環境:イントラネット内

■やったこと:
1.保存用サーバーのLドライブを共有設定した。
2.Webサーバーで保存用サーバーのLドライブをネットワークの接続で接続し、
  Lドライブとした。
  (Webサーバー上のエクスプローラで、Lドライブは見え、フルアクセスできる状態)
3.前記のソースでエラー

■minminnanaさんから回答で試したこと
1.WebサーバーのインターネットゲストアカウントがIUSR_PSBGと確認
2.保存用サーバーのLドライブのプロパティのセキュリティに「IUSR_PSBG」の
  ユーザーを追加し、フルアクセスに設定した。
3.アプリケーションプールのセキュリティアカウントは「Network service」でした。
4.結果は同じものでした。

minminnanaさんの回答に対して的外れかもしれませんが、ご指摘下さい。

これらの説明がある書籍の紹介でもいいので教えていただけないでしょうか?

よろしくお願いします。
macoto
常連さん
会議室デビュー日: 2006/02/15
投稿数: 25
お住まい・勤務地: 東京都/東京都
投稿日時: 2006-10-11 16:44
Webサーバのワーカプロセスの実行ユーザを保存用サーバに書き込める権限のあるユーザに変更すれば良いと思います。確かNetwork serviceではリモートリソースにデフォルトではアクセスできなかったと思います。
minminnana
大ベテラン
会議室デビュー日: 2004/02/05
投稿数: 246
お住まい・勤務地: 盛岡
投稿日時: 2006-10-11 17:00
書籍としてはこの掲示板でもよく紹介されていますが以下に詳しいと思います。
http://www.amazon.co.jp/gp/product/toc/4891004304/ref=dp_nav_0/250-5831477-0652209?ie=UTF8&n=465392&s=books
(Vol4だったかどうかは確認しないと自信が有りません)
(若干高めの書籍なので、どこか詳しいサイトがあると良いのですが私は判りません・・・)

引用:
3.アプリケーションプールのセキュリティアカウントは「Network service」でした。


もしドメイン環境なのであれば、「Network service」をドメインユーザーに変更し、そのユーザーに対して、Lドライブにマッピングしているサーバーのフォルダに書込み権限を付けてあげるのが簡単だと思います。
(運用的にそれで良いかはケースバイケースだと思いますが)
ita
常連さん
会議室デビュー日: 2006/10/10
投稿数: 25
お住まい・勤務地: 兵庫県
投稿日時: 2006-10-11 17:01
macotoさん、回答ありがとうございます。

> Webサーバのワーカプロセスの実行ユーザを保存用サーバに書き込める権限のあるユーザに変更すれば良いと思います。

大変初歩的な質問かもしれませんが、このワーカプロセスの実行ユーザは、どこで
選択(設定)できるのでしょうか?

レベルの低い質問で申し訳ありませんがよろしくお願いします。
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2006-10-11 22:45
Worker process 自体は Network Service で起動されていますが、legacy の ASP の場合、その上で、IUSR_hostname で偽装されて動作しているでしょう。
# 匿名認証の場合

ということで Worker process の実行 account を変更したところで、無駄に終わるでしょう。

でわどうすればいいかというと、匿名 account (default IUSR_hostname) を変更する方法がありますが、これは危険なんで絶対にやるべきではないです。

ということで、その部分だけ COM+ server application にしてやって、偽装してから実行されるようにするのをお勧めします。
minminnana
大ベテラン
会議室デビュー日: 2004/02/05
投稿数: 246
お住まい・勤務地: 盛岡
投稿日時: 2006-10-12 00:04
引用:
Worker process 自体は Network Service で起動されていますが、legacy の ASP の場合、その上で、IUSR_hostname で偽装されて動作しているでしょう。


そうですね、ASPはデフォルトで偽装でしたね。
失礼しました。

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