1

IBM WS MQ7.5、Windows MQMFT エージェント、Linux MQ マネージャー。

MQ mft ant スクリプトの xml で定義されているように、powershell スクリプトを実行しようとしています。

agent.properties ファイルの commandPath で、powershell スクリプトへのパスを構成しました。

マネージド コールは開始されるが失敗する

<fte:presrc command="C:\IBM\MFT\script\MoveFileToArchive.ps1" successrc="0">
               <fte:arg value="${base.file}"/>
            </fte:presrc>

エラーは読み取ります

プログラムを実行できません createprocess error=193 MoveFileToArchive.ps1 は有効な win32 アプリケーションではありません

そのように定義されたpowershell.exeでpowershellへのパスを追加しようとしました

<fte:presrc command="C:\windows\system\windowspowershell\v.1.0\powershell.exe C:\IBM\MFT\script\MoveFileToArchive.ps1" successrc="0">
               <fte:arg value="${base.file}"/>
            </fte:presrc>

これもうまくいきません。

4

1 に答える 1

1

エラーからわかるように、MFT エージェントはCreateProcessAPI を使用してプログラムを開始しています。CreateProcessAPI は実行可能ファイルのみを実行できます。使用Powershellしているスクリプトは実行可能ではありません。したがって、エラー。

関連するアプリケーションで任意のファイルを開くことができるようにする場合は、ShellExecute代わりにCreateProcess. しかし、これはあなたの管理下にはありません。それで、代替品を探す必要がありますか?

たとえば、バッチ ファイルを使用してみてください。バッチ ファイルps.cmdでは、次のような PowerShell スクリプトを実行します。

Powershell -executionpolicy bypass -File C:\IBM\MFT\script\MoveFileToArchive.ps1 %1

%1 は PS スクリプトの引数です。

Ant スクリプトにも少し変更が必要です。

    <fte:presrc command="ps.cmd" successrc="0">
       <fte:arg value="${base.file}"/>
    </fte:presrc>       

commandPathagent.properties でプロパティを適切な値にすでに設定していると思います。

試してみる。

于 2016-10-14T04:52:59.380 に答える