Я использую PsExec для развертывания небольших файлов .exe на своих рабочих станциях. Иногда .exe по какой-то причине несовместим с системой и открывает всплывающее окно с ошибкой или другим сообщением.
Есть ли способ узнать, когда исполняемый файл «застрял» там, требуя взаимодействия с пользователем? Со своей стороны, у меня просто работает psexec и ждет возврата .exe (который никогда не вернется, потому что всплывающее окно застряло там).
Поскольку я запускаю PsExec программно и автоматизирую все его выполнения, когда происходит это всплывающее окно, я обнаруживаю, что сотни процессов psexec застревают там и не получают от них никакого результата.
Как лучше всего справиться с подобными проблемами?
Спасибо.
PAExec
есть опция тайм-аута (-to
), который завершит процесс через указанное количество секунд. Я настоятельно рекомендую вам перейти с PSExec
к PAExec
.
В крайнем случае попробуйте использовать один из Другой инструменты автоматизации в дополнении к PsExec для работы с всплывающими окнами. Нравится AutoIt.
Я предполагаю, что это должен быть путь вперед для вас, поскольку не существует стандарта, которого должно придерживаться каждое программное обеспечение.
Лучший способ справиться с такой ситуацией - протестировать, прежде чем пытаться применить автоматизацию.
Один простой, хотя и жестокий способ справиться с зависшими процессами - запустить отдельный пакет с использованием pslist и pskill в более позднее время, когда обработанный psexec, который завершился бы в обычном режиме, сделал бы это. Используйте pslist для проверки того, что psexec все еще работает на удаленном компьютере, и pskill, чтобы завершить все найденные.
У psexec есть опция -i, которая должна работать.
-i Запустить программу, чтобы она взаимодействовала с рабочим столом указанного сеанса удаленной системы. Если сеанса нет.
Кроме того, вы можете использовать какой-то сценарий pslist.exe, чтобы отслеживать процесс, созданный в их системе, и видеть, как долго он там существует. Если msiexec зависает 5 минут, это, вероятно, означает, что он завис.