我使用 PsExec 将小型 .exe 文件部署到我的工作站。有时,由于某种原因,.exe 与系统不兼容,并打开一个弹出窗口,其中包含错误或其他消息。
有什么方法可以知道可执行文件何时“卡住”在那里,需要用户交互?在我这边,我只是运行 psexec 并等待 .exe 返回(由于弹出窗口卡在那里,因此永远不会返回)。
由于我以编程方式运行 PsExec 并自动执行所有执行,因此当发生此弹出事件时,我发现有数百个 psexec 进程卡在那里,并且没有任何结果。
处理此类问题的最佳方法是什么?
谢谢。
答案1
作为最后的手段,尝试使用其他自动化工具此外PsExec 处理弹出窗口。类似 AutoIt。
我猜想这将是你的前进方向,因为没有每个软件都必须遵守的标准。
答案2
答案3
psexec 有一个可以工作的 -i 选项。
-i 运行程序,使其与远程系统上指定会话的桌面进行交互。如果没有会话。
另外,您可以使用某种 pslist.exe 脚本来监视系统上生成的进程,并查看该进程已存在多长时间。如果 msiexec 挂起 5 分钟,则可能意味着它已挂起。
答案4
处理这种情况的最佳方法是在尝试应用自动化之前进行测试。
处理卡住进程的一个简单但粗暴的方法是稍后使用 pslist 和 pskill 运行一个单独的批处理,此时 psexec 处理正常完成。使用 pslist 测试远程计算机上是否仍在运行 psexec,并使用 pskill 终止发现的任何进程。