Webサーバーを介してphpスクリプトを実行してpsexec
を実行し、次に別のphpスクリプトを実行します。
これをコマンドラインから正常に実行すると、すべて正常に動作し、問題はありません。
ただし、Webサーバーから実行すると、次のようになります。
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)を実行しています
PsExecによって返されるエラーコードは、PsExecではなく、実行するアプリケーションに固有のものです。 psexecが正常に接続してターゲットプログラムを実行すると、そのプログラムからエラーレベルが返されます。通常、0は成功、1は通常、正しくない/無効/失敗します。
何を達成しようとしていますか?スケジュールされたタスクを設定して、スクリプトまたはスクリプトを起動する他の方法を実行できるかもしれません。たぶん、Apacheを実行しているサービスアカウントには、スクリプトに対する実行権限がありませんか?
編集:PHPコードのpsexecコマンドに-accepteulaフラグを追加してみてください。EULAの受け入れでハングする可能性があります