В Windows, если я хочу проверить, какой процесс использует файл, я могу использовать такие программы, как Process Hacker и его функцию поиска, чтобы ввести имя этого файла.
Из информации, которую он предоставляет, я знаю, что процесс что-то делает с этим файлом, но я не знаю, заблокировал ли он его, или просто читает или пишет. Как я могу получить эту информацию?
Что важнее, а как же наоборот? Я хочу найти имя файла, который заблокирован или записан или прочитан процессом.
Как я могу это сделать?
На следующем снимке экрана вы можете увидеть, как легко найти имя процесса по имени файла, но как я могу найти имена файлов, используемых данным процессом?
В этом примере я использую Acrobat, чтобы открыть файл PDF с именем eemeir.pdf
, но этот список не отображается в дереве процессов Acrobat.
С Process Explorer тоже самое:
PD: @ user173724 предложил, как это сделать с помощью Process Explorer, и я также нашел, как это сделать с PH:
Мне нужно выбрать опцию «Вид -> Окно» и появится очень большой список информации.
Но там очень некрасиво и неудобно что-то находить (то же самое относится и к Process Explorer), в этом разделе нет функции поиска.
Также щелкните правой кнопкой мыши на «Process -> Properties -> Handles».
Ответы:
Существует утилита Microsoft под названием Process Explorer, которая похожа на диспетчер задач на стероидах. При нажатии на программу в списке отображаются все файлы, к которым осуществляется доступ, и ее функция поиска позволяет определить, какая программа обращается к файлу.
источник
На вопрос № 2:
дважды щелкните по процессу и перейдите на вкладку «Ручки» (для этого не требуется плагин PH). Вы заинтересованы в строках с
Type
= "Файл".По вопросу № 1:
Как и в ответе выше, вам нужно найти процесс, дважды щелкнуть по нему, перейти на вкладку «Ручки» и найти там файл.
Затем, если вы дважды щелкнете по дескриптору файла, вы увидите
Granted Access
. Например, если вы попробуете это в Excel, «Предоставленный доступ» будет «Чтение» для файлов TTF (это шрифты, Excel явно их не изменяет), но «(Запись, чтение, удаление)» для файлов XSLX или других пользовательских данных. файлы.источник
В качестве альтернативы вы можете использовать команду дескриптора sysinternals ( https://technet.microsoft.com/en-us/sysinternals/handle ), которая является частью того же пакета.
показывает все процессы, использующие окна или один из файлов ниже этого каталога.
В текущей версии 4.1 вам не нужно быть администратором, если вас интересуют только ваши собственные процессы. Вам все еще нужно повышение прав, чтобы увидеть все процессы, использующие файл / каталог.
источник