Correção: o processo não pode acessar o arquivo porque ele está sendo usado por outro processo

Fix Process Cannot Access File Because It Is Being Used Another Process

Vários usuários do Windows estão encontrando o “ O processo não pode acessar o arquivo porque ele está sendo usado por outro processo ” erro. Na maioria das vezes, o problema ocorre quando o usuário tenta executar um comando netsh. Alguns usuários estão relatando que, para eles, a mensagem de erro aparece quando tentam clicar com o botão direito do mouse em um site no snap-in MMC (Console de Gerenciamento Microsoft) do IIS (Serviços de Informações da Internet).

O processo não pode acessar o arquivo porque ele está sendo usado por outro processo



O problema foi relatado como ocorrendo no Windows Vista, Windows 7, Windows 8.1, Windows 10 e em várias versões do Windows Server.



O que faz com que o processo seja usado por outro processo?

Investigamos esse problema específico analisando vários relatórios de usuários e as estratégias de reparo que eles usaram para resolver o problema. Com base no que conseguimos reunir, existem vários cenários comuns que irão acionar esta mensagem de erro específica:



  • O comando requer privilégios de administrador - Se você estiver encontrando o erro dentro de um terminal, provavelmente é porque você não tem privilégios administrativos para fazer as modificações. Vários usuários em uma situação semelhante conseguiram resolver o problema concedendo privilégios de administrador.
  • Outro processo é usar a porta 80 ou 443 - Isso é típico de computadores executando IIS (Internet Information Services). Se outro processo estiver usando essas duas portas, você verá esta mensagem de erro.
  • A subchave de registro ListenOnlyList não está configurada corretamente - Outro cenário comum com IIS (serviços de informações da Internet) que irá disparar esse erro específico é uma subchave de registro ListenOnlyList configurada incorretamente.

Se você está lutando para resolver essa mensagem de erro específica, este artigo fornecerá uma coleção de etapas de solução de problemas verificadas. Abaixo, você tem uma coleção de métodos que outros usuários em uma situação semelhante usaram para resolver o problema.

Para obter os melhores resultados, siga os métodos abaixo na ordem até encontrar uma correção que seja eficaz para resolver o erro em seu cenário específico.

Vamos começar!



Método 1: executar o comando com privilégios de administrador

Se você está recebendo este erro ao tentar executar um comando netsh, é provável que o erro esteja ocorrendo porque você não tem privilégios de administrador. É relatado que isso ocorre com mais frequência quando o usuário tenta executar um comando que adiciona exclusões ao intervalo de porta dinâmica para aplicativos nativos do Windows ou aplicativos de terceiros.

Lembre-se de que uma operação desse tipo exigirá privilégios de administrador. Para garantir que a janela CMD em que você está tentando executar a ação tenha privilégios de administrador, siga as etapas abaixo:

  1. pressione Tecla Windows + R para abrir uma caixa de diálogo Executar. Em seguida, digite “ cmd ”E pressione Ctrl + Shift + Enter para abrir um Prompt de Comando elevado.

    Abrindo uma janela elevada do Prompt de Comando

  2. Quando solicitado pelo UAC (controle de conta de usuário) , clique sim para conceder privilégios de administrador.
  3. No prompt de comando elevado, execute o comando novamente e veja se ainda está recebendo a mesma mensagem de erro.

Se você ainda está recebendo o “ O processo não pode acessar o arquivo porque ele está sendo usado por outro processo ” erro ou este cenário não era aplicável, vá para o próximo método abaixo.

Método 2: definir um intervalo de IP diferente

Se você está tentando resolver um conflito de conflito de DNS usando netsh e o método acima não o ajudou, você pode tentar uma abordagem diferente.

Vários usuários que lutam para resolver a mesma mensagem de erro descobriram que o conflito foi resolvido depois que eles tentaram definir um intervalo de IP completamente diferente em vez de criar um intervalo de exclusão.

Abaixo você tem alguns comandos que um usuário afetado executou com êxito para resolver um conflito entre DNS e Quickbooks:

netsh int ipv4 set dynamicport tcp start = 10000 num = 1000 netsh int ipv4 set dynamicport udp start = 10000 num = 1000

Nota: Certifique-se de que o terminal em que você está executando o comando tenha privilégios de administrador.

Se este método não resolveu o conflito ou não era aplicável à situação que você está enfrentando, passe para o método final.

Método 3: Resolvendo o conflito de porta IIS

Se você estiver enfrentando o problema ao tentar clicar com o botão direito em um item de site dentro do snap-in MMC do IIS (clicar em Iniciar não faz nada), você precisará usar o utilitário Netstat.exe para descobrir se outro processo está usando a porta 80 e a porta 443.

Esse problema é bastante comum em computadores que executam o Microsoft IIS 6.0 e 7.0. Com base na documentação oficial da Microsoft, a mensagem de erro aparecerá se uma das seguintes condições for aplicável à sua situação atual:

  • o ListenOnlyList a subchave do registro não está configurada corretamente no computador em execução IIS.
  • Outro processo é usar a porta TCP (80) ou a porta SSL (443) exigida pelo IIS.

Para resolver esse problema, precisamos implantar o Netstat.exe utilitário para determinar se outro processo está usando as portas especificadas acima. Se o utilitário determinar que as portas não estão sendo usadas, examinaremos a subchave ListenOnlyList para ver se ela está configurada corretamente.

Aqui está um guia passo a passo de tudo isso:

  1. pressione Tecla Windows + R para abrir uma caixa de diálogo Executar. Em seguida, digite “ cmd ”E pressione Ctrl + Shift + Enter para abrir um Prompt de Comando elevado. Quando solicitado pelo UAC (controle de conta de usuário) , clique sim para conceder privilégios administrativos.

    Abrindo uma janela elevada do Prompt de Comando

  2. Dentro do prompt de comando elevado, execute o seguinte comando para iniciar o Netstat.exe Utilitário:
    netstat -ano
  3. Depois de obter uma devolução, percorra a lista de Conexões Ativas e verifique se as portas 50 e 443 estão sendo ativamente usadas por um processo diferente.

    Verificar se as portas estão sendo usadas por um processo diferente

    Nota: Se as portas estão sendo usadas ativamente por um processo diferente, você acabou de identificar a origem do seu problema. Neste caso, procure online as etapas específicas sobre como resolver o conflito de porta de acordo com o PID da porta.

  4. Feche o prompt de comando elevado, pois não precisaremos de privilégios de administrador para as próximas etapas.
  5. Se as portas não forem usadas ativamente, pressione Tecla Windows + R para abrir uma caixa de diálogo Executar. Então, digite ‘ regedit ‘E pressione Entrar para abrir o Editor de registro . Quando solicitado pelo UAC (controle de conta de usuário) , clique sim para conceder privilégios administrativos.

    Abrindo o utilitário Editor do Registro

  6. Dentro do editor do Registro, use o painel esquerdo para navegar até o seguinte local:
    HKEY_LOCAL_MACHINE  SYSTEM  CurrentControlSet  Services  HTTP  Parameters  ListenOnlyList 

    Nota: No caso de ListenOnlyList subchave não está presente, não há necessidade de criar uma como um endereço IP de 0.0.0.0 será usado por padrão.

  7. Antes de prosseguir e modificar o ListenOnlyList subchave, você precisará interromper o serviço HTTP que está executando o IIS. Portanto, coloque o Editor do Registro em segundo plano, pois retornaremos a ele em instantes.
  8. Em seguida, pressione Tecla Windows + R para abrir uma caixa de diálogo Executar, digite ‘ cmd ‘E pressione Entrar para abrir outra janela do Prompt de Comando.

    Diálogo de execução: cmd

  9. No prompt do Cmd, execute o seguinte comando e pressione Entrar para parar o serviço HTTP responsável por executar o IIS:
    net stop http
  10. Quando perguntado se deseja continuar esta operação, digite ‘Y’ e pressione Enter para confirmar a operação.

    Desativando o serviço HTTP

  11. Depois que o serviço HTTP for desativado, feche a janela Prompt de Comando e retorne ao Editor do Registro.
  12. Com o ListenOnlyList subchave selecionada, vá para o painel direito e certifique-se de que contém endereços IP válidos. Se você detectar um endereço IP inválido, remova-o ou modifique-o para refletir uma entrada com um endereço IP válido.

    Excluindo os valores binários com IPs inválidos

    Nota: No caso de ListenOnlyList subchave está presente e o 0.0.0.0 endereço estiver listado, você precisa excluir todos os outros endereços IP.

  13. Feche o Editor do Registro e reinicie o computador.
  14. Na próxima inicialização, o serviço HTTP deve ser iniciado automaticamente. Mas apenas para ter certeza, pressione Tecla Windows + R para abrir outra caixa de diálogo Executar. Em seguida, digite “ cmd ”E pressione Entrar para abrir uma janela do prompt de comando.

    Abrindo uma janela de prompt de comando normal

  15. No Prompt de Comando recém-aberto, digite o seguinte comando para garantir que o serviço HTTP seja iniciado:
     net start http 

    Nota: Se você receber uma mensagem dizendo que “O serviço solicitado já foi iniciado”, você está pronto para continuar.

  16. Tente iniciar um serviço a partir do snap-in Microsoft Management Console (MMC) Serviços de Informações da Internet da Microsoft (IIS). Você não deve mais encontrar o ‘O processo não pode acessar o arquivo porque ele está sendo usado por outro processo’ erro.
5 minutos lidos