【问题标题】:CakePHP Shell "could not start" from Scheduled task and Windows 2003 ServerCakePHP Shell 从计划任务和 Windows 2003 Server “无法启动”
【发布时间】:2012-12-13 11:32:55
【问题描述】:

我正在尝试通过 Windows 2003 服务器的计划任务运行 CakePHP Shell 脚本,但我发现该任务无法启动

当我从命令提示符手动运行它时,它运行良好:

C:\Inetpub\wwwroot\CakePHP\lib\Cake\Console\cake mail read

Scheduled task Run 字段完全相同,Start in 设置为:

C:\Inetpub\wwwroot\tickets\app

Run as 字段设置为具有所有权限的计算机管理员(不是 ISS 用户)

计划任务日志在尝试执行时显示此消息:

“Ticket Mail System.job”(蛋糕)13/12/2012 07:15:00 ** ERROR **

无法启动任务。

具体错误是:

0x80070005:访问被拒绝。

好像是权限问题。

我已尝试为两个用户(IIS 6 用户和 Internet 访客帐户 用户)放弃 lib/Cake/Consol/cake.bat 文件的所有权限,但仍然没有工作。

你知道这可能是什么原因吗?

【问题讨论】:

  • 如果您在谷歌上搜索错误代码(“计划任务 0x80070005”),则需要尝试大量故障排除:检查事件日志,确保它以管理员身份运行(您的管理员用户确实是其中的一部分) admin 组),确保任务目录有正确的权限,确保 cmd.exe 有,等等。
  • 我已经尝试过那些东西 :)
  • 知道了!嗯..您是否尝试过以 IIS 用户身份运行并将该 IIS 用户权限授予 cmd.exe? (不是那个管理员不应该工作......)
  • 是的,我试过了 :) 我玩的权限超过了 cmd.execake.bat。没有任何效果。但现在我找到了解决方案。它在我的回答中。

标签: cakephp scheduled-tasks cakephp-2.2 windows-2003-webserver cakephp-2.3


【解决方案1】:

它在 Windows 7 上运行良好,但在 Window 2003 Server 上却不行。

最后,我尝试在调用Shell后添加.bat,它可以工作。

我必须把它放在 Run 字段中:

C:\Inetpub\wwwroot\CakePHP\lib\Cake\Console\cake.bat mail read

Windows 2003 似乎最后需要.bat...

我在以下位置找到它:http://www.geekyboy.com/archives/376

【讨论】:

  • 嗯,这很奇怪 - 我从来没有遇到过这个问题。 Windows 对我来说从来不需要.bat 扩展名,它总是意识到它应该使用那个文件。很高兴你成功了!
【解决方案2】:

谢谢大家,这解决了我的问题。

发现我的“.bat”文件的扩展名为“.CMD”,到目前为止它似乎工作正常。

通过重命名文件扩展名并更改任务计划程序中的目录来修复它。(因为它仍然具有“.CMD”扩展名。

【讨论】:

    猜你喜欢
    • 2011-08-04
    • 2010-09-14
    • 1970-01-01
    • 1970-01-01
    • 2010-12-30
    • 2010-09-07
    • 1970-01-01
    • 1970-01-01
    • 2014-10-08
    相关资源
    最近更新 更多