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

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

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

O problema é 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 examinando 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, há vários cenários comuns que acionam essa mensagem de erro específica:

  • O comando requer privilégios de administrador - Se você está encontrando o erro dentro de um terminal, é mais provável que você não tenha 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 está usando a porta 80 ou a porta 443 - Isso é típico dos computadores que executam o IIS (Internet Information Services). Se outro processo estiver usando essas duas portas, você verá essa mensagem de erro.
  • A subchave de registro ListenOnlyList não está configurada corretamente - Outro cenário comum com o IIS (Serviços de Informações da Internet) que disparará esse erro específico é uma subchave de registro ListenOnlyList configurada incorretamente.

Se você está atualmente com dificuldades 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 em ordem até encontrar uma correção que seja eficaz na resolução do erro em seu cenário específico.

Vamos começar!

Método 1: executando 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. Isso é relatado como ocorrendo com mais frequência quando o usuário tenta executar um comando que adiciona exclusões ao intervalo de portas dinâmicas para aplicativos nativos do Windows ou aplicativos de terceiros.

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

  1. Pressione a 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 em Sim para conceder privilégios de administrador.
  3. No prompt de comando elevado, execute o comando novamente e veja se você ainda está encontrando a mesma mensagem de erro.

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

Método 2: Definir um intervalo de IP diferente

Se você estiver tentando resolver um conflito de DNS conflitante usando o netsh e o método acima não ajudar, tente uma abordagem diferente.

Vários usuários lutando para resolver a mesma mensagem de erro descobriram que o conflito foi resolvido depois que 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 sucesso 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: Assegure-se de que o terminal no qual você está executando o comando tenha privilégios de administrador.

Se esse método não resolveu o conflito ou não se aplicou à situação que você está enfrentando, vá para o método final.

Método 3: Resolvendo o conflito de porta do IIS

Se você estiver encontrando o problema ao tentar clicar com o botão direito do mouse em um item do site dentro do snap-in MMC do IIS (clicando em Iniciar não faz nada), você precisará usar o utilitário Netstat.exe para descobrir se outro processo é 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 será exibida se uma das seguintes condições for aplicável à sua situação atual:

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

Para resolver esse problema, precisaremos implantar o utilitário Netstat.exe 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 sobre a coisa toda:

  1. Pressione a 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 em 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 utilitário Netstat.exe :
     netstat -ano 
  3. Depois de obter um retorno, percorra a lista de Conexões Ativas e verifique se as portas 50 e 443 estão sendo ativamente usadas por um processo diferente.

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

    Nota: Se as portas estão sendo ativamente usadas por um processo diferente, você acabou de identificar a origem do problema. Nesse caso, procure online etapas específicas sobre como resolver o conflito de portas 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 a tecla Windows + R para abrir uma caixa de diálogo Executar. Em seguida, digite ' regedit ' e pressione Enter para abrir o Editor do Registro . Quando solicitado pelo UAC (controle de conta de usuário), clique em 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 \ Parâmetros \ ListenOnlyList 

    Nota: Caso a subchave ListenOnlyList não esteja presente, não há necessidade de criar uma, pois um endereço IP de 0.0.0.0 será usado por padrão.

  7. Antes de ir em frente e modificar a subchave ListenOnlyList, você precisará parar o serviço HTTP que está executando o IIS. Então coloque o Editor do Registro em segundo plano, quando voltaremos a ele em um momento.
  8. Em seguida, pressione a tecla Windows + R para abrir uma caixa de diálogo Executar, digite ' cmd ' e pressione Enter para abrir outra janela do Prompt de Comando.

    Executar diálogo: cmd
  9. No prompt do Cmd, execute o seguinte comando e pressione Enter para interromper o serviço HTTP responsável pela execução do IIS:
     net stop http 
  10. Quando perguntado se você 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 estiver desabilitado, feche a janela Prompt de Comando e retorne ao Editor do Registro.
  12. Com a subchave ListenOnlyList selecionada, vá para o painel à direita e verifique se ela contém endereços IP válidos. Se você identificar um endereço IP que não seja vá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: Caso a subchave ListenOnlyList esteja presente e o endereço 0.0.0.0 esteja listado, você precisará 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 a tecla Windows + R para abrir outra caixa de diálogo Executar. Em seguida, digite “ cmd ” e pressione Enter para abrir uma janela do prompt de comando.

    Abrindo uma janela normal do prompt de comando
  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 ir.

  16. Tentativa de iniciar um serviço a partir do snap-in Microsoft Management Information Services (IIS) Microsoft Management Console (MMC). Você não deve mais encontrar o erro 'o processo não pode acessar o arquivo porque está sendo usado por outro processo' .

Artigos Interessantes