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

Как узнать, запущен исполняемый файл или нет?

У меня есть исполняемый файл, который я вызываю из сторонней программы. Я вызываю его, используя учетную запись администратора с привилегиями «запускать как услугу», и журналы сторонних программ сообщают, что исполняемый файл был запущен «успешно» со временем выполнения 0,000 секунд (хотя время начала и окончания показано сторонней программой разделены на пару сотен миллисекунд). Однако предполагается, что исполняемый файл выводит jpg, чего не происходит.

Если я запускаю исполняемый файл из командной строки, он работает нормально (выводит jpg - время выполнения составляет около 20 секунд). Если я запускаю его из запланированной задачи Windows без входа в систему, он работает нормально. Кроме того, я могу успешно запускать другие исполняемые файлы (пробовал notepad.exe) из сторонней программы.

Итак, мой вопрос ... Как я могу отслеживать исполняемый файл, чтобы узнать, действительно ли он был запущен, возникли ли проблемы с разрешениями и т. Д.?

Я использую perfmon и устанавливаю счетчик, который включает «Все экземпляры» счетчика процесса. Также обратите внимание на Process Monitor SysInternal, который очень подробный, если вы не знаете, что ищете. Например, используйте фильтр:

Обработать *содержит* 3rdparty.exe Включают.

Есть ли у учетной записи службы разрешение на чтение, запись и выполнение в соответствующих папках?

Вы можете проверить разрешения вручную.

Монитор процессов (procmon) by SysInternals / Microsoft покажет вам все, что угодно. Вы можете настроить фильтр по имени процесса - таким образом вы увидите, что он делает, и (возможно) увидите, где он к чему-то не может получить доступ.

Обязательно установите фильтр - очень сложно увидеть, что все происходит без системы :)