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