最近公司希望将Windows 2003升级为Windows 2008,做完安全设置后发现.net调用批处理拒绝访问的情况。

网上很多说更改应用程序池的权限,建议不需要修改该权限,我这里强烈建议使用默认的权限控制。

IIS调用批处理权限的处理_第1张图片


故障情况:

.net可以正常调用exe文件,但是无法调用批处理文件。


最后使用程序跟踪发现调用批处理需要cmd.exe访问执行权限,因为安全上考虑将cmd.exe的users用户执行权限都删除了。于是在c:\windows\system32\cmd.exe将users权限赋予执行即可正常。


另外说明:

IIS网站根目录只需要USERS读和执行的权限即可正常,如果web应用程序会向目录写东西如自动生成如静态文件的,则只需要将该目录设置为IIS_IUSER为读写权限

IIS调用批处理权限的处理_第2张图片

并且在高级权限设置里面将执行权限拿掉即可。

IIS调用批处理权限的处理_第3张图片