私は奇妙な問題に遭遇し、多くの異なることを試みました。
目標は、他のいくつかのサーバーでバッチファイルを実行するWebページのボタンをクリックするようにユーザーに指示することです。
私はColdFusion8を使用しています。ユーザーがボタンをクリックすると、CFExecuteはPSExec.exeを起動して、リモートマシンでファイルを実行します。
batファイルからの抜粋
cd c:\web\www >> \\firstmachine\c$\web\qa\html\RA\ra.log
git pull origin master >> \\firstmachine\c$\web\qa\html\RA\ra.log
cd c:\web\aaa >> \\firstmachine\c$\web\qa\html\RA\ra.log
git pull origin master >> \\firstmachine\c$\web\qa\html\RA\ra.log
コマンドプロンプトから実行すると、gitは正しく実行され、wwwとaaaからプルします。ログファイルには、すべてが期待どおりに機能したことが示されています。
c:\web\qa\html\RA\PsExec.exe \\othermachine -u domain\adminaccount -p <password> c:\web\qa\html\RA\script.bat
CFExecuteを使用してCFから同じコマンドを実行すると、gitはwwwのみをプルし、aaaはプルしません。
<cfexecute name="c:\web\qa\html\RA\PsExec.exe"
variable="var" arguments="\\othermachine -u
domain\adminaccount -p <password> c:\web\qa\html\RA\script.bat"
timeout="50">
</cfexecute>
行を入れ替えると、gitはwwwではなくaaaをプルします。このような場合、最初にプルが成功した後は、プロセスが中止されたかのようにログファイルに何も表示されませんが、異常なことは何も見つかりません。
どんな考えでも大歓迎です!