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

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

wKiom1YcYE2xZQLoAAIo2yHMzX0736.jpg


故障情况:

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


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


另外说明:

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

wKioL1YcYlSyHD5xAAGROP_h3b0000.jpg

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

wKioL1YcYv2STOPRAAIOrmMKZKs588.jpg