Определите, какой процесс изменяет файл в Windows

3161
RaduM

Есть ли способ определить, какой процесс изменяет файл в Windows 7?

Я знаю, что procmon - отличный инструмент, но я не мог понять, как это сделать, или даже если это возможно.

Проблема в том, что у меня есть файл, который изменяется каким-то приложением, и я хочу выяснить, какой именно.

6
Почему вы не можете использовать фильтр в ProcMon (просто введите имя файла)? Dave 11 лет назад 0

1 ответ на вопрос

10
shunty

Both procexp and procmon are good for this. If the process holds a handle to the file in question then just run procexp and choose "Find Handle or DLL" from the Find menu then type in part of the file name you're searching for.

Alternatively (and as mentioned in the comments to the question), to use procmon to find, for example, a file called readme.txt open the filter dialog and set the filter as so:

Process monitor filter screen capture

Then press the Add button. Make sure there are no other processes that are excluded that might be touching your file.

Then start capturing events and sit back and wait.

Как вы можете сказать, что событие в procmon является событием модификации файла? Я вижу место, где файл открывается и закрывается, но я не вижу событий, которые явно являются изменениями в файле. Omnifarious 11 лет назад 0
В случае README.txt представляется операция WriteFile. Я не думаю, что это всегда так просто, так как это будет зависеть от того, как приложение работает с записью - т.е. кеширует ли что-то или сохраняет записи до позднего времени и т. Д. И т. Д. Есть также операция QueryBasicInformationFile, которая имеет время LastAccess и LastWrite. shunty 11 лет назад 0
@shunty: Ааа, было так много чтения файлов, что операции WriteFile были скрыты в шуме. Я запечатлел весь процесс установки от начала до конца. Таким образом, не имеет значения, было ли какое-либо кэширование или буферизация, если файл был записан в событие, должно быть там. Omnifarious 11 лет назад 0