web-dev-qa-db-ja.com

PsExec-リモートで実行する.exeでユーザーの操作が必要な場合はどうなりますか?

PsExecを使用して、小さな.exeファイルをワークステーションに展開しています。 .exeは、何らかの理由でシステムと互換性がなく、エラーまたはその他のメッセージを含むポップアップウィンドウを開く場合があります。

実行可能ファイルが「スタック」していることを知る方法はありますか?ユーザーの操作が必要ですか?私の側では、psexecを実行して、.exeが返されるのを待っています(ポップアップがそこに留まっているため、返されることはありません)。

PsExecをプログラムで実行し、すべての実行を自動化するため、このポップアップが発生すると、何百ものpsexecプロセスがスタックし、結果が返されません。

この種の問題を処理するための最良の方法は何ですか?

ありがとう。

1
Luca Matteis

PAExec タイムアウトオプションがあります(-to)指定された秒数後にプロセスを終了します。 PSExecから PAExec に切り替えることを強くお勧めします。

2
Dan

最後の手段として、other自動化ツールの1つを使用してみてくださいに加えて PsExecを使用してポップアップを処理します。 AutoItのように。

各ソフトウェアが順守しなければならない標準がないので、これはあなたにとって前進する方法でなければならないと思います。

2
Allen

psexecには、機能するはずの-iオプションがあります。

-iプログラムを実行して、リモートシステム上の指定されたセッションのデスクトップと対話するようにします。セッションがない場合。

また、ある種のpslist.exeスクリプトを使用して、システムで生成されたプロセスを監視し、そこに存在していた時間を確認することもできます。 msiexecが5分間ハングしている場合は、おそらくハングしていることを意味します。

0
Matt

この種の状況を処理する最良の方法は、自動化を適用する前にテストすることです。

スタックしたプロセスを処理する簡単な、しかし残酷な方法の1つは、psexecとpskillを使用して別のバッチを実行し、後でpsexecが処理して正常に完了するようにすることです。 pslistを使用してリモートマシンでまだ実行されているpsexecをテストし、pskillを使用して見つかったものを終了します。

0
John Gardeniers