IIS7访问网络共享

时间:2013-01-30 18:22:07

标签: iis-7 windows-server-2008-r2

我使用PHP 5.4在Windows Server 2008 R2上运行IIS 7。我的一个PHP脚本尝试使用UNC路径访问受保护网络共享上的文件。如何将IIS服务帐户更改为有权访问共享的帐户?这在Apache HTTP服务器上很容易做到(你只需更改它),但目前还不清楚如何处理IIS。我该怎么办?

更新

我能够使用我网站“基本设置”中的“连接为”选项让工作正常,然后指定可以访问网络共享的帐户。它出现 我的问题与这个问题有关:

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

3 个答案:

答案 0 :(得分:35)

对于在Windows Server 2008 R2上运行的IIS 7 ...在IIS Manager中,选择运行您的网站的Application Pool

单击“高级设置”。 Identity会有一个条目(位于Process Model部分下方)。单击它,为您有权访问共享的帐户提供凭据。

<强>更新

如果您使用的是Active Directory域帐户,则应确保在Identity下正确地为正在运行的应用程序池提供了该帐户。例如,MYDOMAIN\myAccount

进行此更改后,您需要执行以下操作:

  1. 停止网站。
  2. 回收您的应用程序池。
  3. 启动网站。
  4. 更新II

    通过对此答案的评论讨论,@ HydroPowerDeveloper能够使PHPS脚本能够使用WebSite通过UNC路径访问网络共享 - &gt;基本设置 - &gt; “连接为”并在其中设置凭据。

    过去,我一直使用通过Identity设置Application Pool的方法,这使我的代码可以通过UNC路径访问网络共享。

    但是,我在IIS上部署的所有站点/应用程序都是基于.NET的WCF或ASPX站点。

    我会推测(但我不是100%肯定这个,需要研究/测试来确认)Identity中指定的Application Pool是通过执行.NET代码来使用的,而“ “连接为”由PHP脚本使用。

答案 1 :(得分:6)

通常,应用程序池使用尽可能少的权限进行设置。

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

最简单的方法是允许访问当前的IIS帐户。

在资源管理器中,导航到共享目录。

右键单击 - &gt;属性 - &gt;安全

如果在列表中没有看到预期的IIS用户(组或用户名),请根据需要编辑和添加用户。

我使用“网络服务” - &gt;检查姓名。

详细说明在该网站上。

通过这种方式,系统仍受限制,我们只允许访问特定目录,我们不需要创建任何新用户,我们不需要回收应用程序池,我们不需要执行任何漂亮的模拟代码。

答案 2 :(得分:1)

复活旧问题......

我刚刚设置了一台使用Perl访问UNC共享的Win 2016服务器。我将应用程序池设置为我验证的对该共享具有正确权限的帐户。然后我将我的网站设置为&#39; Connect as ...&#39; (在&#39;基本设置下&#39;)同一个用户。我仍然无法访问工作。

后来很多人头疼,我意识到我的虚拟目录&#39; cgi-bin是在最初的&#39;通过&#39;帐户。然后我将虚拟目录设置为&#39; Connect as ...&#39;与网站和应用程序池相同的帐户,宾果游戏,一切正常。

因此,请记住更新任何虚拟目录以及站点和应用程序池......