PsExec – 如果远程运行的.exe需要用户交互,该怎么办?

我使用PsExec将小型.exe文件部署到我的工作站。 有时.exe,由于某种原因,是不兼容的系统,并打开一个错误或其他消息的popup窗口。

有没有什么办法可以知道什么时候可执行文件被“卡住”,需要用户交互? 在我身边,我只是有psexec运行,并等待.exe返回(这将永远不会返回,因为popup被卡在那里)。

由于我以编程的方式运行PsExec,并自动执行所有的执行,所以当这个Popup的事情发生时,我发现自己有数百个psexec进程卡在那里,并没有从他们的结果。

处理这类问题的最好方法是什么?

谢谢。

作为最后的手段,尝试使用除了 PsExec 之外其他自动化工具来处理popup窗口。 像AutoIt一样。

我猜想这将是你的前进方向,因为没有每个软件必须遵守的标准。

PAExec有一个超时选项( -to ),将在指定的秒数后终止进程。 我强烈build议你从PSExec切换到PAExec

psexec有一个应该工作的-i选项。

-i运行该程序,以便与远程系统上指定会话的桌面交互。 如果没有会话。

此外,你可以使用某种pslist.exe脚本来监视他们的系统上产生的进程,看看它在那里多久。 如果msiexec挂了5分钟,那可能意味着挂了。

处理这种情况的最好方法是在尝试应用自动化之前进行testing。

一个简单但是残忍的方法来处理卡住的进程,就是在稍后正常完成的psexec处理完成后,使用pslist和pskill来运行一个单独的批处理。 使用pslist来testing仍在远程机器上运行的psexec,并使用pskill来终止find的任何东西。