none
关于IIS中COM组件权限的问题 RRS feed

  • 问题

  • 环境是Windows 2003 R2 SP2 + IIS6。IIS默认站点的来宾账户为IUSR_7C7C7C7-DC6A758,应用程序池为DefaultAppPool,其中DefaultAppPool的安全账户为网络服务。建立C:\123\文件夹,将其权限设置为拒绝IUSR_7C7C7C7-DC6A758的一切操作。
    之后,在ASP中使用FSO组件枚举C:\123\文件夹下的所有文件,提示“没有权限”。但是使用WScript.Shell来执行“C:\inetpub\wwwroot\cmd.exe /c dir c:\123\”命令却可以正常得到文件列表。再执行“C:\inetpub\wwwroot\cmd.exe /c whoami”提示“nt authority\network service”。
    很显然,cmd.exe的权限是应用程序池里面的安全账户权限,FSO的权限是默认站点的来宾账户权限。因为FSO和WScript.Shell都是COM组件,那么他们的权限应该是一样的,即WScript.Shell拥有的也是来宾账户权限,那么为什么WScript.Shell创建的进程没有继承这一权限而是拥有应用程序池里面的安全账户权限?
    2009年5月24日 6:23