Назад | Перейти на главную страницу

PsExec - что, если .exe, который вы запускаете удаленно, требует взаимодействия с пользователем?

Я использую 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 минут, это, вероятно, означает, что он завис.