我正在通过 Web 服务器运行一个 php 脚本,psexec
然后又执行另一个 php 脚本。
当我从命令行正常运行它时,一切都运行正常,没有任何问题。
然而,当我从网络服务器运行它时,我得到了这个:
PsExec v1.98 - Execute processes remotely
Copyright (C) 2001-2010 Mark Russinovich
Sysinternals - www.sysinternals.com
php exited with error code 1.
因此,从这里我可以清楚地看出 psexec 运行正常,但由于某种原因,php 脚本正在退出。不过,就像我说的,如果我从命令行手动运行它,它就可以完美运行。
我试着四处寻找,但还是搞不懂。有人知道吗?
我在 Windows 2008 上运行 Apache2 (XAMPP)
答案1
PsExec 返回的错误代码特定于您执行的应用程序,而不是 PsExec。如果 psexec 成功连接并运行目标程序,它将返回该程序的错误级别。0 通常表示成功,1 通常表示不正确/无效/失败。
您想实现什么目标?也许您可以设置计划任务来运行脚本或使用其他方法启动它。也许运行 apache 的服务帐户对脚本没有执行权限?
编辑:还可以尝试在 PHP 代码中将 -accepteula 标志添加到 psexec 命令中。它可能因接受 EULA 而挂起