web-dev-qa-db-ja.com

ネットワーク共有にアクセスするIIS7

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

更新:

Webサイトの[基本設定]の[接続]オプションを使用して、ネットワーク共有にアクセスできるアカウントを指定することで、機能するようになりました。それ出現私の問題はこの質問に関連している:

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

22

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

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

[〜#〜] update [〜#〜]

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

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

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

更新II

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

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

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

Application Poolで指定されたIdentityが.NETコードの実行に使用されているのに対し、「Connect As 「PHPスクリプト。

38
Philip Tenn

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

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

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

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

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

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

「ネットワークサービス」->名前の確認を使用しました。

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

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

6
razodactyl

古い質問を復活させるには...

Perlを使用してUNC共有にアクセスするWin 2016サーバーをセットアップしました。アプリケーションプールを、その共有に対する正しいアクセス許可があることを確認したアカウントに設定しました。次に、同じユーザーを「接続...」(「基本設定」の下)に設定します。私はまだアクセスを機能させることができませんでした。

頭をひっかいて、「仮想ディレクトリ」であるcgi-binが元の「パススルー」アカウントで実行されていることに気付きました。次に、仮想ディレクトリを「Connect as ...」に設定し、サイトおよびアプリケーションプールと同じアカウントを使用します。ビンゴはすべて正常に機能します。

そのため、サイトとアプリケーションプールだけでなく、仮想ディレクトリも必ず更新してください...

1
SAL