我使用PHP5.4在Windows 2008 R2上运行IIS 7。我的一个PHP脚本试图使用UNC路径访问受保护网络共享上的文件。如何将IIS服务帐户更改为具有访问共享权限的帐户?这在Apache服务器上非常容易(您只需更改它),但不清楚如何使用IIS。我能做什么?
更新:
我在我的网站的“基本设置”中使用了"Connect As“选项,然后指定了一个可以访问网络共享的帐户。我的问题似乎与这个问题有关:
发布于 2013-01-30 18:26:30
对于运行在Windows 2008 R2上的IIS 7.在IIS Manager中,选择运行网站的Application Pool。
点击“高级设置”。Identity将有一个条目(它在Process Model部分下)。单击它,为具有访问共享权限的帐户提供凭据。
更新
您应该确保如果您使用的是Active Directory域帐户,那么您在Identity下为运行的App提供了正确的服务。例如,MYDOMAIN\myAccount。
在进行此更改后,您将需要执行以下操作:
更新II
从对这个答案的评论讨论中,@HydroPowerDeveloper能够让PHP脚本能够使用WebSite -> Basic Settings -> "Connect As“并在那里设置凭据,通过UNC路径访问网络共享。
在过去,我一直使用通过Application Pool设置Application Pool的方法,这允许我的代码通过UNC路径访问网络共享。
但是,我在IIS上部署的所有站点/应用程序都是基于.NET的WCF或ASPX站点。
我推测(但不是100%肯定,需要研究/测试来确认),Application Pool中指定的Application Pool是通过执行.NET代码来使用的,而"Connect As“则是由PHP使用的。
发布于 2014-06-23 02:36:31
通常,应用程序池是使用尽可能少的权限设置的。
http://msdn.microsoft.com/en-us/library/ff647402.aspx
最简单的方法是允许访问当前IIS帐户。
在资源管理器中,导航到共享目录。
右击->属性->安全性
如果没有在列表(组或用户名)中看到预期的IIS用户,请根据需要编辑和添加该用户。
我使用了“网络服务”->检查名称。
详细说明在那个网站上。
这样,系统仍然受到限制,我们只允许访问特定的目录,我们不需要创建任何新用户,我们不需要回收应用程序池,也不需要执行任何漂亮的模拟代码。
发布于 2018-05-15 15:53:12
复活一个古老的问题..。
我刚刚设置了一个Win 2016服务器,它使用一些Perl访问UNC共享。我将Application设置为我验证对该共享具有正确权限的帐户。然后我将我的网站设置为“连接为.”(在“基本设置”下)同一个用户。我还是找不到工作。
很久之后,我意识到我的“虚拟目录”cgi是在最初的“通过”帐户下运行的。然后,我将虚拟目录设置为“连接为.”。与站点和应用程序池相同的帐户和,宾果,它都工作得很好。
所以,请记住更新任何虚拟目录以及站点和App .
https://stackoverflow.com/questions/14611015
复制相似问题