27

PHP 5.4 を使用して Windows Server 2008 R2 で IIS 7 を実行しています。PHP スクリプトの 1 つが、UNC パスを使用して保護されたネットワーク共有上のファイルにアクセスしようとしています。IIS サービス アカウントを共有へのアクセス許可を持つアカウントに変更するにはどうすればよいですか? これは、Apache HTTP サーバーでは非常に簡単に実行できます (変更するだけです) が、IIS での実行方法は明確ではありません。私に何ができる?

アップデート:

Web サイトの「基本設定」にある「Connect As」オプションを使用し、ネットワーク共有にアクセスできるアカウントを指定して、動作させることができました。私の問題はこの質問に関連しているようです:

https://serverfault.com/questions/366234/iis-identities-application-pool-vs-connect-as-in-basic-settings

4

3 に答える 3

46

Windows Server 2008 R2 で実行されている IIS 7 の場合 ...で、Web サイトが実行されている をIIS Manager選択します。Application Pool

「詳細設定」をクリックします。Identity(セクションの下にあります)のエントリがありますProcess Model。それをクリックして、共有へのアクセス許可を持つアカウントの資格情報を提供します。

アップデート

Active Directory ドメイン アカウントを使用している場合はIdentity、実行中のアプリケーション プールに正しく指定したことを確認する必要があります。たとえば、MYDOMAIN\myAccount.

この変更を行った後、次のことを行う必要があります。

  1. Web サイトを停止します。
  2. アプリケーション プールをリサイクルします。
  3. Web サイトを開始します。

アップデートⅡ

この回答に関するコメントの議論から、@HydroPowerDeveloper は、WebSite -> Basic Settings -> "Connect As" を使用して UNC パス経由でネットワーク共有にアクセスできるように PHP スクリプトを取得し、そこで資格情報を設定することができました。

Identityこれまで、私は常にviaを設定するアプローチを使用しApplication Poolてきました。これにより、私のコードは UNC パスを介してネットワーク共有にアクセスできました。

ただし、私が展開したすべてのサイト/アプリケーションは、IIS.NET ベースの WCF または ASPX サイトです。

「Connect As」はPHPスクリプトによって使用されるのに対し、でIdentity指定されたは.NETコードの実行によって使用されると推測します(ただし、これについては100%確実ではありません。確認するには調査/テストが必要です) 。Application Pool

于 2013-01-30T18:26:30.037 に答える
6

通常、アプリケーション プールは、可能な限り最小限の権限を使用して設定されます。

http://msdn.microsoft.com/en-us/library/ff647402.aspx

最も簡単な方法は、現在の IIS アカウントへのアクセスを許可することです。

エクスプローラーで、共有ディレクトリに移動します。

右クリック -> プロパティ -> セキュリティ

予想される IIS ユーザーがリスト (グループまたはユーザー名) に表示されない場合は、必要に応じてユーザーを編集して追加します。

「NETWORK SERVICE」を使用しました->名前を確認してください。

詳細な手順はそのサイトにあります。

このように、システムは依然として制限されています。特定のディレクトリへのアクセスのみを許可しています。新しいユーザーを作成する必要はありません。アプリケーション プールをリサイクルする必要はありません。気の利いた偽装コード。

于 2014-06-23T02:36:31.317 に答える