IIS 7でWindows Server 2008 R2でPHP 5.4。私のPHPスクリプトがアクセスしようとしていますUNCパスを使用して保護されたネットワーク共有上のファイル。IISサービスアカウントを共有へのアクセス許可を持つアカウントに変更するにはどうすればよいですか? (変更するだけです)、IISの使用方法は明確ではありません。
更新:
Webサイトの[基本設定]の[接続]オプションを使用して、ネットワーク共有にアクセスできるアカウントを指定することで、機能するようになりました。それ出現私の問題はこの質問に関連している:
IIS 7 Windows Server 2008 R2で実行中... IIS Manager
]で、Webサイトが実行されているApplication Pool
を選択します。
「詳細設定」をクリックします。 Identity
のエントリがあります(Process Model
セクションの下にあります)。クリックして、共有へのアクセス許可を持つアカウントの資格情報を提供します。
[〜#〜] update [〜#〜]
Active Directoryドメインアカウントを使用している場合は、実行中のアプリケーションプールのIdentity
で正しく指定したことを確認する必要があります。たとえば、MYDOMAIN\myAccount
。
この変更を行った後、次を実行する必要があります。
更新II
この回答に関するコメントの議論から、@ HydroPowerDeveloperはPHPスクリプトを取得し、WebSite-> Basic Settings-> "Connect As"を使用してUNCパスを介してネットワーク共有にアクセスできました。そこで資格情報を設定します。
過去に、私は常にApplication Pool
を介してIdentity
を設定するアプローチを使用しており、それによりコードがUNCパスを介してネットワーク共有にアクセスできるようになりました。
ただし、IIS
にデプロイしたサイト/アプリケーションはすべて、.NETベースのWCFまたはASPXサイトです。
Application Pool
で指定されたIdentity
が.NETコードの実行に使用されているのに対し、「Connect As 「PHPスクリプト。
通常、アプリケーションプールは、可能な限り最小限の特権を使用して設定されます。
http://msdn.Microsoft.com/en-us/library/ff647402.aspx
最も簡単な方法は、現在のIISアカウントへのアクセスを許可することです。
エクスプローラーで、共有ディレクトリに移動します。
右クリック->プロパティ->セキュリティ
リストに期待されるIISユーザー(グループ名またはユーザー名))が表示されない場合は、必要に応じてユーザーを編集および追加します。
「ネットワークサービス」->名前の確認を使用しました。
詳細な手順はそのサイトにあります。
このように、システムは依然として制限されており、特定のディレクトリへのアクセスのみを許可しています。新しいユーザーを作成する必要はありません。アプリケーションプールをリサイクルする必要も、実行する必要もありません気の利いた偽装コード。
古い質問を復活させるには...
Perlを使用してUNC共有にアクセスするWin 2016サーバーをセットアップしました。アプリケーションプールを、その共有に対する正しいアクセス許可があることを確認したアカウントに設定しました。次に、同じユーザーを「接続...」(「基本設定」の下)に設定します。私はまだアクセスを機能させることができませんでした。
頭をひっかいて、「仮想ディレクトリ」であるcgi-binが元の「パススルー」アカウントで実行されていることに気付きました。次に、仮想ディレクトリを「Connect as ...」に設定し、サイトおよびアプリケーションプールと同じアカウントを使用します。ビンゴはすべて正常に機能します。
そのため、サイトとアプリケーションプールだけでなく、仮想ディレクトリも必ず更新してください...