21

Powershellの機能の一部をラップするカスタムコンポーネントがあるため、BizTalk 2006から使用できます。ほとんどの操作(ファイルパスの確認、ファイルのコピーまたは移動)では、これで問題なく動作します。ただし、何らかの処理を行うには、GUIアプリをリモートで起動する必要があります。コンポーネント自体がリモートボックスへの接続を処理します。必要なのは、いくつかのパラメーターを設定してから、コマンドを実行するように指示することだけです。

Start-Process -FilePath "path to exe" -ArgumentList "arguments for exe" -WorkingDirectory "workingdir for exe"

問題は次のとおりです。ボックス自体のPowerShellコマンドラインからこれを実行すると、これは正常に機能します。ただし、リモートで起動すると(BizTalkから、テストハーネスから、リモートのPowershellコマンドラインとStart-PSSessionを介した接続を使用しても)、このアプリは短時間実行され、実際には何もせずに終了します。私の疑惑は、問題のexeファイルがプロセスを実行するためにロードするGUIを必要とするため、問題を引き起こしているのはこれであるということです。-NoNewWindowや-WindowStyleなど、考えられるすべてのことを試しましたが、役に立ちませんでした。これを機能させるための助けをいただければ幸いです。

注:古いwin32アプリケーションであり、このアプリケーションのバッチバージョンまたはコマンドラインバージョンが提供されていないため、実行しようとしているアプリケーションのソースにアクセスできません。

4

2 に答える 2

20

標準のPowerShellメソッド(WinRM、WMI)を使用すると、GUIでアプリケーションを起動できません。私が知っている唯一の解決策は、SysInternals (または同様のツール)のPsExecを使用することです。GUIをユーザーに提示するアプリケーションを起動できます。コマンドラインは次のようになります。

& ".\psexec" -accepteula -i "\\computername" -u "domain\username" -p "password" "command line"
  • -accepteula—EULAを黙って受け入れます。
  • -i—GUIを許可します。

スケジューラーへのタスクのリモート追加など、他のソリューションはよりハッキーです。

于 2010-10-25T06:43:30.623 に答える