Correção: o processo não pode acessar o arquivo porque ele 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 ele 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 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 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ê encontrar 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 é 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á acionar esse erro específico é uma subchave de registro ListenOnlyList configurada incorretamente.

Se você estiver tendo 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 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ê estiver 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 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.
  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 ele está sendo usado por outro processo” ou se este cenário não for 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 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 esse método não resolveu o conflito ou não se aplicou à 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 do mouse 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:

  • A subchave de registro ListenOnlyList não está configurada corretamente no computador executando IIS.
  • Outro processo é usar 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 de tudo isso:

  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.
  2. Dentro do prompt de comando elevado, execute o seguinte comando para iniciar o utilitário Netstat.exe :
    netstat -ano
  3. Assim que obtiver um retorno, role pela lista de Conexões Ativas e verifique se as portas 50 e 443 estão sendo ativamente 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 seu problema. Nesse 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 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.
  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

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

  7. Antes de prosseguir e modificar a subchave ListenOnlyList , 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 alguns instantes.
  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.
  9. No prompt do Cmd, execute o seguinte comando e pressione Enter para interromper o serviço HTTP responsável por executar o IIS:
    net stop http
  10. Quando questionado se deseja continuar esta operação, digite 'Y' e pressione Enter para confirmar a operação.
  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 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.

    Nota: Caso a subchave ListenOnlyList esteja presente e o endereço 0.0.0.0 esteja 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 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.
  15. No Prompt de Comando recém-aberto, digite o seguinte comando para garantir que o serviço HTTP seja iniciado:
    net start http

    Observação: se você receber uma mensagem dizendo que “O serviço solicitado já foi iniciado”, você está pronto para prosseguir.

  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 erro 'o processo não pode acessar o arquivo porque ele está sendo usado por outro processo' .