У меня есть исполняемый файл, который я вызываю из сторонней программы. Я вызываю его, используя учетную запись администратора с привилегиями «запускать как услугу», и журналы сторонних программ сообщают, что исполняемый файл был запущен «успешно» со временем выполнения 0,000 секунд (хотя время начала и окончания показано сторонней программой разделены на пару сотен миллисекунд). Однако предполагается, что исполняемый файл выводит jpg, чего не происходит.
Если я запускаю исполняемый файл из командной строки, он работает нормально (выводит jpg - время выполнения составляет около 20 секунд). Если я запускаю его из запланированной задачи Windows без входа в систему, он работает нормально. Кроме того, я могу успешно запускать другие исполняемые файлы (пробовал notepad.exe) из сторонней программы.
Итак, мой вопрос ... Как я могу отслеживать исполняемый файл, чтобы узнать, действительно ли он был запущен, возникли ли проблемы с разрешениями и т. Д.?
Я использую perfmon и устанавливаю счетчик, который включает «Все экземпляры» счетчика процесса. Также обратите внимание на Process Monitor SysInternal, который очень подробный, если вы не знаете, что ищете. Например, используйте фильтр:
Обработать *содержит* 3rdparty.exe Включают.
Есть ли у учетной записи службы разрешение на чтение, запись и выполнение в соответствующих папках?
Вы можете проверить разрешения вручную.
Монитор процессов (procmon) by SysInternals / Microsoft покажет вам все, что угодно. Вы можете настроить фильтр по имени процесса - таким образом вы увидите, что он делает, и (возможно) увидите, где он к чему-то не может получить доступ.
Обязательно установите фильтр - очень сложно увидеть, что все происходит без системы :)