我正在尝试通过Windows 2003服务器的计划任务运行CakePHP Shell脚本,但我发现该任务无法启动。
当我从命令提示符手动运行它时,它运行良好:
C:InetpubwwwrootCakePHPlibCakeConsolecake mail read
"计划任务运行"域完全相同,"开始时间"设置为:
C:Inetpubwwwrootticketsapp
运行方式字段设置为具有所有权限的计算机管理员(不是 ISS 用户)
计划任务日志在尝试执行时显示以下消息:
"票务邮件系统.job" (蛋糕) 13/12/2012 07:15:00 ** 错误 **
无法启动任务。
具体错误为:
0x80070005:访问被拒绝。
似乎这是一个权限问题。
我试图为两个用户(IIS 6 用户和 Internet Guest 帐户用户)移交lib/Cake/Consol/cake.bat
文件的所有权限,但仍然不起作用。
知道这可能是原因吗?
它在Windows 7上运行良好,但在Window 2003服务器上则不然。
最后,我尝试在调用 Shell 后添加 .bat
并且它可以工作。
我不得不把它放在"运行"字段中:
C:InetpubwwwrootCakePHPlibCakeConsolecake.bat mail read
似乎Windows 2003需要最后的.bat
...
我在以下位置找到了它:http://www.geekyboy.com/archives/376
谢谢大家,这解决了我的问题。
发现我的".bat"文件反而有扩展名".CMD",到目前为止似乎工作正常。
通过重命名文件扩展名并更改任务计划程序中的目录来修复它。(因为它仍然有".CMD"扩展。