Solución: el proceso no puede acceder al archivo porque otro proceso lo está utilizando

Varios usuarios de Windows se encuentran con el error " El proceso no puede acceder al archivo porque está siendo utilizado por otro proceso" . La mayoría de las veces, el problema ocurre cuando el usuario intenta ejecutar un comando netsh. Algunos usuarios informan que para ellos, el mensaje de error aparece cuando intentan hacer clic con el botón derecho en un sitio web en el complemento MMC (Microsoft Management Console) de IIS (Internet Information Services).

Se informa que el problema ocurre en Windows Vista, Windows 7, Windows 8.1, Windows 10 y en varias versiones de Windows Server.

¿Qué hace que el proceso sea utilizado por otro proceso?

Investigamos este problema en particular analizando varios informes de usuarios y las estrategias de reparación que utilizaron para resolver el problema. Según lo que pudimos recopilar, existen varios escenarios comunes que desencadenarán este mensaje de error en particular:

  • El comando requiere privilegios de administrador : si encuentra el error dentro de una terminal, lo más probable es que no tenga privilegios de administrador para realizar las modificaciones. Varios usuarios en una situación similar han logrado resolver el problema otorgando privilegios de administrador.
  • Otro proceso es usar el puerto 80 o el puerto 443 : esto es típico en computadoras que ejecutan IIS (Servicios de información de Internet). Si otro proceso está usando estos dos puertos, verá este mensaje de error.
  • La subclave de registro ListenOnlyList no está configurada correctamente : otro escenario común con IIS (servicios de información de Internet) que desencadenará este error en particular es una subclave de registro ListenOnlyList configurada incorrectamente.

Si actualmente tiene dificultades para resolver este mensaje de error en particular, este artículo le proporcionará una colección de pasos de solución de problemas verificados. A continuación, tiene una colección de métodos que otros usuarios en una situación similar han utilizado para resolver el problema.

Para obtener los mejores resultados, siga los métodos a continuación en orden hasta que encuentre una solución que sea efectiva para resolver el error en su escenario particular.

¡Vamos a empezar!

Método 1: ejecutar el comando con privilegios de administrador

Si recibe este error al intentar ejecutar un comando netsh, es probable que el error se deba a que no tiene privilegios de administrador. Se informa que esto ocurre con más frecuencia cuando el usuario intenta ejecutar un comando que agrega exclusiones al rango de puertos dinámicos para aplicaciones nativas de Windows o aplicaciones de terceros.

Tenga en cuenta que una operación de este tipo requerirá privilegios de administrador. Para asegurarse de que la ventana de CMD en la que está intentando realizar la acción tenga privilegios de administrador, siga los pasos a continuación:

  1. Presione la tecla de Windows + R para abrir un cuadro de diálogo Ejecutar. Luego, escriba " cmd " y presione Ctrl + Shift + Enter para abrir un símbolo del sistema elevado.
  2. Cuando se lo solicite el UAC (Control de cuentas de usuario) , haga clic en para otorgar privilegios de administrador.
  3. En el símbolo del sistema elevado, ejecute el comando nuevamente y vea si todavía encuentra el mismo mensaje de error.

Si sigue recibiendo el error " El proceso no puede acceder al archivo porque lo está utilizando otro proceso" o este escenario no es aplicable, continúe con el siguiente método a continuación.

Método 2: establecer un rango de IP diferente

Si está intentando resolver un conflicto de DNS utilizando netsh y el método anterior no le ayudó, es posible que desee probar un enfoque diferente.

Varios usuarios que luchan por resolver el mismo mensaje de error han descubierto que el conflicto se resuelve después de intentar establecer un rango de IP completamente diferente en lugar de crear un rango de exclusión.

A continuación, tiene un par de comandos que un usuario afectado ejecutó con éxito para resolver un conflicto entre DNS y Quickbooks:

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

Nota: Asegúrese de que la terminal en la que está ejecutando el comando tenga privilegios de administrador.

Si este método no resolvió el conflicto o no se aplicó a la situación que está enfrentando, pase al método final.

Método 3: resolución del conflicto del puerto IIS

Si encuentra el problema al intentar hacer clic con el botón derecho en un elemento del sitio web dentro del complemento MMC de IIS (hacer clic en Inicio no hace nada), deberá usar la utilidad Netstat.exe para averiguar si hay otro proceso utilizando el puerto 80 y el puerto 443.

Este problema es bastante común en equipos que ejecutan Microsoft IIS 6.0 y 7.0. Según la documentación oficial de Microsoft, el mensaje de error aparecerá si una de las siguientes condiciones es aplicable a su situación actual:

  • La subclave de registro ListenOnlyList no está configurada correctamente en el equipo en ejecución de IIS.
  • Otro proceso está utilizando el puerto TCP (80) o el puerto SSL (443) requerido por IIS.

Para resolver este problema, necesitaremos implementar la utilidad Netstat.exe para determinar si otro proceso está utilizando los puertos especificados anteriormente. Si la utilidad determina que los puertos no se están utilizando, examinaremos la subclave ListenOnlyList para ver si está configurada correctamente.

Aquí hay una guía paso a paso a través de todo:

  1. Presione la tecla de Windows + R para abrir un cuadro de diálogo Ejecutar. Luego, escriba " cmd " y presione Ctrl + Shift + Enter para abrir un símbolo del sistema elevado. Cuando se lo solicite el UAC (Control de cuentas de usuario) , haga clic en para otorgar privilegios administrativos.
  2. Dentro del símbolo del sistema elevado, ejecute el siguiente comando para iniciar la utilidad Netstat.exe :
    netstat -ano
  3. Una vez que obtenga una devolución, desplácese por la lista de conexiones activas y verifique si los puertos 50 y 443 están siendo utilizados activamente por un proceso diferente.

    Nota: Si los puertos están siendo utilizados activamente por un proceso diferente, acaba de lograr identificar la fuente de su problema. En este caso, busque en línea los pasos específicos sobre cómo resolver el conflicto del puerto de acuerdo con el PID del puerto.

  4. Cierre el símbolo del sistema elevado, ya que no necesitaremos privilegios de administrador para los siguientes pasos.
  5. Si los puertos no se utilizan activamente, presione la tecla de Windows + R para abrir un cuadro de diálogo Ejecutar. Luego, escriba ' regedit ' y presione Entrar para abrir el Editor del Registro . Cuando se lo solicite el UAC (control de cuentas de usuario) , haga clic en para otorgar privilegios administrativos.
  6. Dentro del editor del Registro, use el panel izquierdo para navegar a la siguiente ubicación:
    HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ HTTP \ Parameters \ ListenOnlyList

    Nota: En caso de que la subclave ListenOnlyList no esté presente, no es necesario crear una, ya que se utilizará una dirección IP de 0.0.0.0 de forma predeterminada.

  7. Antes de continuar y modificar la subclave ListenOnlyList , deberá detener el servicio HTTP que ejecuta IIS. Así que ponga el Editor del Registro en segundo plano ya que volveremos a él en un momento.
  8. A continuación, presione la tecla de Windows + R para abrir un cuadro de diálogo Ejecutar, escriba ' cmd ' y presione Entrar para abrir otra ventana del símbolo del sistema.
  9. En el símbolo del sistema Cmd, ejecute el siguiente comando y presione Entrar para detener el servicio HTTP responsable de ejecutar IIS:
    net stop http
  10. Cuando se le pregunte si desea continuar con esta operación, escriba 'Y' y presione Enter para confirmar la operación.
  11. Una vez que el servicio HTTP esté deshabilitado, cierre la ventana del símbolo del sistema y regrese al Editor del registro.
  12. Con la subclave ListenOnlyList seleccionada, muévase al panel de la derecha y asegúrese de que contenga direcciones IP válidas. Si detecta una dirección IP que no es válida, elimínela o modifíquela para reflejar una entrada con una dirección IP válida.

    Nota: En caso de que la subclave ListenOnlyList esté presente y la dirección 0.0.0.0 aparezca en la lista, debe eliminar todas las demás direcciones IP.

  13. Cierre el Editor del Registro y reinicie su computadora.
  14. En el próximo inicio, el servicio HTTP debería iniciarse automáticamente. Pero solo para asegurarse, presione la tecla de Windows + R para abrir otro cuadro de diálogo Ejecutar. Luego, escriba " cmd " y presione Entrar para abrir una ventana del símbolo del sistema.
  15. En el símbolo del sistema recién abierto, escriba el siguiente comando para asegurarse de que se inicie el servicio HTTP:
    net start http

    Nota: Si recibe un mensaje que dice que "El servicio solicitado ya se ha iniciado", está listo para comenzar.

  16. Intente iniciar un servicio desde el complemento Microsoft Internet Information Services (IIS) Microsoft Management Console (MMC). Ya no debería encontrar el error 'el proceso no puede acceder al archivo porque está siendo utilizado por otro proceso' .