2016-10-13 5 views
1

IBM WS MQ7.5、Windows MQMFTエージェント、linux MQマネージャー。MQ MFT with Powershell

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エラー= 193 MoveFileToArchive.ps1は私が試した

有効なWin32アプリケーションではありませんPowershellにパスを追加するには、次のように定義したpowershell.exeを使用します。

<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> 

これはどちらも機能しません。

答えて

1

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

関連するアプリケーションでファイルを開くには、CreateProcessの代わりにShellExecuteが必要です。しかし、これはあなたのコントロール下にありません。代わりを探す必要がありますか?

バッチファイルを使用してみてください

ps.cmdを言うと、バッチファイルで、あなたは%1は、PSスクリプトの引数になり

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

などのPowerShellスクリプトを実行します。

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

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

は、私はあなたがすでにagent.propertiesで適切な値にcommandPathプロパティを設定していると確信しています。

お試しください。

関連する問題