IIS 执行系统程序权限

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IIS 执行系统程序权限相关的知识,希望对你有一定的参考价值。

环境: windows 2008 server R2  IIS7.5 fastcgi
问题: 原来的程序采用Apache 运行,现在移植到IIS 上,原来的在程序中调用生成图片的系统程序出现不能执行问题,也看了很多微博,现在总结一下,从一下几个思路中进行解决;
 
因为原来的程序是执行正常的,因此主要是环境的变化导致的,所以排除程序问题,主要是从权限不同考虑。
 

1: 在查询里看一下执行的用户是谁。
      exec( "whoami" , $output , $ret );
      显示一下$output 的信息,可以确认一下,iis执行的时候,用户是谁。
     $ret 如果是 1 , 则说明执行有错误, 0 则执行正常。
 
2: 因为apache 是从系统用户运行的,iis是网络用户,因此需要设置cmd的用户权限,位置在c:/windows/system32/cmd.exe , 增加IUSR的可执行权限;
增加了此用户还是不能正常运行;
 
3: 配置IIS的应用程序池,把标识改为LocalSystem ,  IIS默认的是ApplicationPoolIdentity
技术分享
 
4:  增加网站权限,因为程序需要写入数据,点击你的网站,又上角有一个编辑权限,给你需要写入数据的目录增加你的网络用户权限读写,一般为IUSR用户。
5:如果前面还不能解决房问题,确认一下执行程序的位置,因为IIS采用的网络用户执行,因此系统的环境与普通验证用户不同,把需要执行的程序路径写完整了,不要采用相对路径;往往可以解决问题。
 
我的这个问题上摸索了一个上午,最后在第五部的时候把问题解决了,在我本地windows7 没有问题,最后增加了一个完整路径的配置,以后不同环境增加一个配置,我把这个问题整理一下,以便给有类似问题的人一个解决思路吧。

以上是关于IIS 执行系统程序权限的主要内容,如果未能解决你的问题,请参考以下文章

iis 无法执行脚本了 怎么办

IIS权限问题

如何在域控制器上分配 IIS 7.5 文件系统访问权限?

iis6.0的错误问题

如何在iis中配置权限,使局域网用户可以访问,其他用户不能访问?(详细讲解)

IIS中的权限该怎么设置?