Как определить, какие файлы блокируются / читаются / записываются процессом в Windows?

2
  1. В Windows, если я хочу проверить, какой процесс использует файл, я могу использовать такие программы, как Process Hacker и его функцию поиска, чтобы ввести имя этого файла.

    Из информации, которую он предоставляет, я знаю, что процесс что-то делает с этим файлом, но я не знаю, заблокировал ли он его, или просто читает или пишет. Как я могу получить эту информацию?

  2. Что важнее, а как же наоборот? Я хочу найти имя файла, который заблокирован или записан или прочитан процессом.

    Как я могу это сделать?

На следующем снимке экрана вы можете увидеть, как легко найти имя процесса по имени файла, но как я могу найти имена файлов, используемых данным процессом?

введите описание изображения здесь

В этом примере я использую Acrobat, чтобы открыть файл PDF с именем eemeir.pdf, но этот список не отображается в дереве процессов Acrobat.

С Process Explorer тоже самое:

введите описание изображения здесь

PD: @ user173724 предложил, как это сделать с помощью Process Explorer, и я также нашел, как это сделать с PH:

Мне нужно выбрать опцию «Вид -> Окно» и появится очень большой список информации.

Но там очень некрасиво и неудобно что-то находить (то же самое относится и к Process Explorer), в этом разделе нет функции поиска.

Также щелкните правой кнопкой мыши на «Process -> Properties -> Handles».

скан
источник
Я не вижу вопроса по теме в вашем вопросе. Так что же это?
Ramhound
Я не понимаю твой вопрос
скан

Ответы:

1

Существует утилита Microsoft под названием Process Explorer, которая похожа на диспетчер задач на стероидах. При нажатии на программу в списке отображаются все файлы, к которым осуществляется доступ, и ее функция поиска позволяет определить, какая программа обращается к файлу.

user173724
источник
Process Explorer в основном такой же (хотя я думаю, что PH более мощный, показывая скрытые процессы). Я также установил его, и, как вы можете видеть (я обновил мой вопрос новым скриншотом), он показывает ту же информацию. Кажется, он не показывает информацию о том, какие файлы используются / заблокированы / прочитаны / записаны этим процессом.
скан
1
В проводнике процессов перейдите в «Просмотр» -> показать нижнюю панель
user173724
Хорошо, я нашел, спасибо. Я также нашел это в Process Hacker
скан
1

На вопрос № 2:

Чтобы найти имя файла, который заблокирован или записан или прочитан процессом

дважды щелкните по процессу и перейдите на вкладку «Ручки» (для этого не требуется плагин PH). Вы заинтересованы в строках с Type= "Файл".

По вопросу № 1:

Как и в ответе выше, вам нужно найти процесс, дважды щелкнуть по нему, перейти на вкладку «Ручки» и найти там файл.

Затем, если вы дважды щелкнете по дескриптору файла, вы увидите Granted Access. Например, если вы попробуете это в Excel, «Предоставленный доступ» будет «Чтение» для файлов TTF (это шрифты, Excel явно их не изменяет), но «(Запись, чтение, удаление)» для файлов XSLX или других пользовательских данных. файлы.

Ниши
источник
0

В качестве альтернативы вы можете использовать команду дескриптора sysinternals ( https://technet.microsoft.com/en-us/sysinternals/handle ), которая является частью того же пакета.

handle c:\windows

показывает все процессы, использующие окна или один из файлов ниже этого каталога.

В текущей версии 4.1 вам не нужно быть администратором, если вас интересуют только ваши собственные процессы. Вам все еще нужно повышение прав, чтобы увидеть все процессы, использующие файл / каталог.

Карл Вербиест
источник