Questão Descubra qual processo está bloqueando um arquivo ou pasta no Windows


Como posso descobrir qual processo está bloqueando um arquivo ou uma pasta no Windows?

Por exemplo, ao tentar excluir uma pasta, o Windows informa isso:

A ação não pode ser concluída porque a pasta está aberta em outro programa

Acontece o mesmo com um arquivo, mas como descobrir qual programa ou aplicativo está usando no momento e impedir que eu exclua o arquivo ou a pasta?


512


origem


Vejo esta pergunta ServerFault. - John Fouhy
Duplicado: superuser.com/questions/13291/how-do-i-delete-a-locked-file - heavyd
Seu arquivo é um vídeo? Você pode achar que o próprio Windows Explorer está "usando" o arquivo ... - DisgruntledGoat
Como isso é uma duplicata? Ele é especificamente perguntando como descobrir qual processo está bloqueando um arquivo, não como excluir um arquivo bloqueado. - b1nary.atr0phy
Não posso adicionar aqui uma resposta mais simples porque foi marcada incorretamente como um dupe, nem posso adicioná-la ao outro thread porque isso se aplica apenas ao XP. Mas de qualquer forma, para as versões do Windows com o Monitor de Recursos (digite-o na barra de pesquisa), vá para a guia CPU / Identificadores Associados e, em seguida, procure o arquivo ou a pasta. - jontyc


Respostas:


Método do PowerShell:

IF((Test-Path -Path $FileOrFolderPath) -eq $false) {
    Write-Warning "File or directory does not exist."       
}
Else {
    $LockingProcess = CMD /C "openfiles /query /fo table | find /I ""$FileOrFolderPath"""
    Write-Host $LockingProcess
}

Mais detalhes Como descobrir qual processo está bloqueando um arquivo ou pasta no Windows


34



Por alguma razão isso apenas retornou uma string vazia para mim. Eu também executei o PS ISE no modo de administrador. - Dib
O recurso deve primeiro ser ativado com openfiles /local on - mstrange
Infelizmente, openfiles parece não funcionar em um Windows de 64 bits: ERROR: The target system must be running a 32 bit OS. - Thomas S.
Funciona no Win10 64 para mim - Michael
Executando isso me deu o mesmo erro de acesso negado que eu estava recebendo originalmente e, em seguida, sempre imprimiu a mensagem de erro não existe. A resposta abaixo, no entanto, me deu as informações que eu precisava - o IIS estava bloqueando o diretório que eu precisava mudar. - Chris Thompson


Para o Windows 7, 8 e 10 você pode usar o built-in Monitor de recursos por esta.

  1. Aberto Monitor de recursos, que pode ser encontrado
    • Procurando por resmon.exe no menu Iniciar ou
    • Como um botão no atuação aba no seu Gerenciador de tarefas
  2. Abra o CPU guia e use o campo de pesquisa no Alças associadas seção
    • Apontado pela seta azul na captura de tela abaixo

Caso não seja óbvio, quando você encontrar o identificador, poderá identificar o processo observando a coluna Imagem e / ou PID.

Você pode fechar o aplicativo se conseguir fazer isso ou apenas clicar com o botão direito do mouse na linha e terá a opção de eliminar o processo ali mesmo. Mole-mole!

Resource Monitor screenshot


425



Nota: o Monitor de Recursos não encontrou nenhum manipulador associado no meu caso, enquanto o Process Explorer (como descrito acima) fez. - ComFreek
@ComFreek Bem, o ProcessExplorer pode ser mais poderoso em muitos casos, mas para mim o Monitor de Recursos sempre encontrou o aplicativo bloqueando o arquivo com o qual estou tentando fazer alguma coisa. Eu também prefiro ao Process Explorer, simplesmente porque está ali no sistema operacional. Não há necessidade de um download extra e um atalho extra em algum lugar. - Svish
Não consegui encontrar isso no Process Explorer, mas foi fácil localizá-lo com essas instruções no Gerenciador de recursos. Obrigado. - Tatiana Racheva
@ComFreek No meu caso, foi apenas o outro caso: Process Explorer não encontrou o identificador, enquanto o Resource Monitor fez. - Uwe Keim
+1 - isso também funciona bem no Windows 10 - Matt Innes


Algumas opções:

Microsoft / SysInternals Process Explorer - Vá para Find> Find Handle ou DLL. Na caixa de texto "Alinhamento ou substring DLL:", digite o caminho para o arquivo (por exemplo, "C: \ caminho \ para \ arquivo.txt") e clique em "Pesquisar". Todos os processos que possuem um identificador aberto para esse arquivo devem ser listados.

WhoLockMe - Extensão do Explorer, que adiciona uma opção de menu do botão direito

N.B. O WhoLockMe parece não funcionar com o Win 10 (pelo menos eu não consegui registrá-lo em nenhuma das versões de 32 ou 64 bits do regsvr32.exe).


366



No Windows 7, se você tentar excluir um arquivo bloqueado, a mensagem de erro informará qual processo bloqueou - Garry English
NOTA: O Unlocker instala o Adware se você não for cuidadoso. Em seu site: "Recurso promocional: Barra de ferramentas Delta totalmente opcional". - Julian Knight
@GarryEnglish por algum motivo, isso nem sempre é o caso. Eu só tive que usar procexp para me dizer que o notepad + + tinha um bloqueio em uma pasta. O Windows 7 foi incapaz de me dizer o culpado. - GuiSim
@ jpmc26 Não. O WhoLockMe não funciona no Windows 7. - ceving
@ GarryEnglish- Como afirmado por GuiSim, isso com certeza nem sempre é o caso, e na minha experiência, raramente é o caso. - dgo


Dê uma olhada em Process Explorer (procexp.exe).

Desde a sua introdução:

Já se perguntou qual programa tem um determinado arquivo ou diretório aberto? Agora você pode descobrir.

Para descobrir qual processo está usando um arquivo específico, siga estas etapas:

  1. Vamos para Encontrar, Encontrar identificador ou DLL .. ou simplesmente pressione Ctrl+F.

    Enter image description here

  2. Digite o nome do arquivo e pressione Pesquisa.

    Enter image description here

  3. O Process Explorer listará todos os processos que possuem um identificador para o arquivo aberto. Clique em uma entrada para focar o processo na janela principal.

    Enter image description here

  4. Opcionalmente, você pode até mesmo fechar a alça manualmente através do painel inferior (Ctrl+eu):

    Enter image description here


175



O Process Hacker também pode fazer isso. - Benoit
Como outra resposta menciona, Lidar com é uma ferramenta de linha de comando da SysInternals que também realizará essa tarefa. - heavyd
Eu esqueci um processo de cmd aberto na pasta, proces explorer me ajudou a perceber isso. - davejal
Nota para os Googlers, a versão atual do PE parece não mais suportar Fechar alça - MickyD


LockHunter pode desbloquear qualquer manipulador que possa ter bloqueado seus arquivos ou pastas. Ao contrário de freewares similares, ele suporta Windows de 32 e 64 bits.

É uma ferramenta gratuita para excluir arquivos bloqueados por algo que você não conhece. O LockHunter é útil para combater malware e outros programas que estão bloqueando arquivos sem nenhum motivo. Ao contrário de outras ferramentas semelhantes, ele apaga arquivos na lixeira, para que você possa restaurá-los se for excluído por engano.

  • Mostra processos bloqueando um arquivo ou pasta
  • Permite desbloquear, excluir, copiar ou renomear um arquivo bloqueado
  • Permite matar o processo de bloqueio
  • Permite remover processos de bloqueio do disco rígido
  • Integra-se ao menu do Explorer
  • Ele apaga arquivos na lixeira, para que você possa restaurá-los se for excluído por engano
  • Suporta 32 e 64 bits do Windows

19



As duas melhores respostas não funcionaram comigo e as próximas votadas foram bloqueadas pelo meu firewall ou avisadas para não irem pelo meu cromo! O LockHunter funcionou perfeitamente. - user3885927
Caçador de sorte trabalhou para mim quando os outros não têm - SheldonH


EMCO UnlockIT pode identificar o processo que bloqueou o arquivo, bem como desbloquear o arquivo para que você possa excluir / editar / movê-lo. O programa é totalmente gratuito, embora a versão mais recente seja um pouco mais lenta e mais inchada do que a original (que tinha uma GUI simples, não aparentada, mas carregada praticamente instantaneamente e sem uma tela inicial irritante). Além disso, a versão original costumava aparecer automaticamente sempre que o erro mencionado fosse acionado, permitindo que você desbloqueie instantaneamente o arquivo e execute a operação que estava tentando realizar.

Ainda assim, UnlockIT é um programa incrivelmente útil que fornece uma funcionalidade básica que está criticamente ausente do Windows. Está entre o kit de ferramentas padrão de utilitários que eu instalo em todos os computadores com Windows nos quais trabalho.


9



@ John: Bem, ele identifica o programa que bloqueou um arquivo. E você ainda pode manualmente matar o processo através do gerenciador de tarefas. No entanto, geralmente é mais simples desbloquear o arquivo (especialmente quando o explorador bloqueia o arquivo na maior parte do tempo) em vez de ter o processo de bloqueio (normalmente devido a ter acessado o arquivo e deixado o manipulador de arquivos aberto). devido a uma falha no programa). - Lèse majesté


Aqui estava minha descoberta e solução.

Incidentalmente, nenhuma das respostas acima resolveu o meu problema.

Eu até tentei usar o UNLOCKER, que se provou inútil.

Meu problema era o do Memeo Autosync Backup

Aparentemente, esse processo de backup deixa um "arquivo fantasma" suficiente. Este "arquivo fantasma", iria aparecer sempre que eu ALT-TAB meu computador (Windows Professional XP), ou seja, eu veria dois programas do MS Excel em execução, quando eu só tinha um visível, no meu TASK BAR.

Eu me deparei com essa solução quando pensei que poderia ter sido a Proteção do Symantec Endpoint (Anti-Virus); e desativou o programa. No entanto, continuei recebendo a mensagem de erro:

não pode excluir (arquivo LARGE.xls): está sendo usado por outra pessoa ou programa. Feche todos os programas que possam estar usando esse arquivo e tente novamente.

Subseqüentemente, continuei vendo o aviso de "sincronização" do Memeo e SAI do programa.

Posteriormente, sem erro.

Para você, poderia ser QUALQUER dessas economias de fundo.


2