PS バージョンを 3.0 にアップグレードしたところ、一部のスクリプトが機能しなくなりました。多くのデバッグを行った後、Start-Process コマンドに問題があることに気付きました。
基本的に、PowerShell コマンドで Start-Process を直接実行すると、正しい引数でプログラムが実行されます。ただし、スクリプトを実行すると、エラーは発生しませんが、プログラムは実行されません。
スクリプトは少し長いですが、失敗しているスニペットをテストする方法は次のとおりです。
$SERVER = 'servername'
$PORT = 'xxxx'
$TPath = 'E:\epicor\PowerShell\export\POAutomation\'
$User = 'username'
$Psw = 'password'
$Import = 'PO Combined'
$file = $TPath + 'AutomaticPOHeaders.csv'
$DMTPATH = 'E:\epicor\Epicor905\Client\dmt.exe'
$Param = "-ArgumentList `'-user=`"$User`" -pass=`"$Psw`" -server=$SERVER -port=$PORT -import=`"$Import`" -source=`"$file`" -add=true -update=false -noui=true`'"
Start-Process $DMTPATH $Param -Wait
"Finished"
$Param 文字列の形式が正しいかどうか、および Start-Process コマンドも適切に記述されているかどうかを確認するために、ログ ファイルに書き込みさえしました。ログ ファイルの文字列をコピーして PS コマンド ラインに貼り付けると、正常に実行されます。
私はこれで4時間以上立ち往生しています。
前もって感謝します。