在Windows计划任务中以SYSTEM身份执行时,PHP编写器无法正常工作的原因是什么?

问题描述

在Windows 2012服务器上,有一个名为xyz.bat的脚本

以任何可以运行它的用户身份在本地运行时,它可以正常工作。

通过以下方式在本地作为SYstem运行时:

psexec /s /i cmd.exe

它也可以正常工作。

转换为计划任务并以SYstem身份运行时,与脚本有关的所有内容都可以正常工作,除了composer install --no-dev 仍然会创建composer.lock(如果它不存在),但是不会从指定的存储库中提取文件。这是一个内部存储库,所有GIT访问均正常运行。

作为计划任务运行,其中我的用户是运行身份帐户,它也可以正常工作。

关于可能导致这种情况的任何想法?我已经准备好让管理员创建更多用户帐户来运行这些操作,但这似乎是必须做的,并且会导致维护问题。

解决方法

最终以以下方式重新执行计划的任务:

  1. 创建计划任务以我自己的用户身份运行
  2. 运行它,并验证它是否正常运行
  3. 清理运行时工件(删除作曲家自己做的事情)
  4. 更新计划任务以SYSTEM身份运行
  5. 通过单击运行任务(以前没有用过,但是现在可以了)