Como determinar quais arquivos estão sendo bloqueados / lidos / gravados por um processo no Windows?

2
  1. No Windows, se eu quiser verificar qual processo está usando um arquivo, posso usar programas como o Process Hacker e sua função de pesquisa para digitar o nome desse arquivo.

    A partir das informações que ele fornece, eu sei que um processo está fazendo algo com esse arquivo, mas não sei se ele está bloqueado ou se está apenas lendo ou escrevendo nele. Como posso obter essa informação?

  2. Mais importante, e o contrário? Eu quero encontrar o nome dos arquivos que estão sendo bloqueados ou escritos ou lidos por um processo.

    Como posso fazer isso?

Na captura de tela a seguir, você pode ver como é fácil encontrar o nome do processo a partir do nome do arquivo, mas como posso encontrar o nome dos arquivos usados por um determinado processo?

Nesteexemplo,estouusandooAcrobatparaabrirumarquivoPDFchamadoeemeir.pdf,masissonãoélistadonaárvoredeprocessosdoAcrobat.

ComoProcessExploreréomesmo:

PD:@user173724sugeriucomofazerissousandooProcessExploreretambémdescobricomofazerissocomPH:

Euprecisoselecionaraopção"Visualizar - > Window ”e aparece uma lista muito grande de informações.

Mas é muito feio e não é confortável encontrar nada lá (o mesmo vale para o Process Explorer), ele não tem uma função de busca nesta seção.

Também clique com o botão direito do mouse em "Processo - > Propriedades - > Alças. ”

    
por skan 17.07.2016 / 15:16

3 respostas

2

Existe um utilitário da Microsoft chamado process explorer, que é semelhante ao gerenciador de tarefas em esteróides. Clicar em um programa listado mostra todos os arquivos que estão sendo acessados, e sua função de busca permite que você encontre qual programa está acessando um arquivo.

    
por 17.07.2016 / 16:37
2

Na questão # 2:

To find the name of the files being locked or written or read by a process

clique duas vezes no processo e vá para a aba "Handles" (isto não requer nenhum plugin PH). Você está interessado em linhas com Type ="Arquivo".

Na questão # 1:

Assim como na resposta acima, você precisa localizar o processo, clicar duas vezes nele, navegar até a guia "Handles" e localizar o arquivo lá.

Em seguida, se você clicar duas vezes no identificador do arquivo, verá Granted Access . Por exemplo. Se você tentar isso no Excel, "Acesso concedido" é "Read" para arquivos TTF (são fontes, o Excel não os modifica obviamente), mas "(Write, Read, Delete)" para arquivos XSLX ou outros arquivos de dados do usuário .

    
por 17.07.2016 / 19:40
0

Como alternativa, você pode usar o comando manipulador sysinternals ( link ) que faz parte do mesmo conjunto.

handle c:\windows

mostra todos os processos usando o Windows ou um dos arquivos abaixo desse diretório.

Na versão atual 4.1, você não precisa ser um usuário administrador se estiver interessado apenas em seus próprios processos. Você ainda precisa de elevação para ver todos os processos usando um arquivo / diretório.

    
por 02.05.2017 / 12:18