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 IIS (Internet Information Services) MMC (Microsoft Management Console).

El proceso no puede acceder al archivo porque otro proceso lo está utilizando

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 observando varios informes de usuarios y las estrategias de reparación que utilizaron para resolver el problema. Según lo que pudimos recopilar, hay varios escenarios comunes que activará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 administrativos 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 con las computadoras que ejecutan IIS (Internet Information Services). Si otro proceso está utilizando 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 activará este error 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 verificados para la solución de problemas. 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 se produzca porque 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 CMD en la que está intentando realizar la acción tiene privilegios de administrador, siga los pasos a continuación:

  1. Presione la tecla 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.

    Abrir una ventana de símbolo del sistema elevada
  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 aún encuentra el mismo mensaje de error.

Si todavía recibe el error " El proceso no puede acceder al archivo porque está siendo utilizado por otro proceso" o este escenario no era aplicable, continúe con el siguiente método a continuación.

Método 2: establecer un rango de IP diferente

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

Varios usuarios que luchan por resolver el mismo mensaje de error han encontrado 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 era aplicable a la situación con la que se encuentra, vaya al método final.

Método 3: Resolver el conflicto del puerto IIS

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

Este problema es bastante común con las computadoras 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 se aplica a su situación actual:

  • La subclave de registro ListenOnlyList no está configurada correctamente en la computadora con IIS.
  • Otro proceso es usar el puerto TCP (80) o el puerto SSL (443) requerido por el 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 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.

    Abrir una ventana de símbolo del sistema elevada
  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.

    Verificar si los puertos están siendo utilizados por un proceso diferente

    Nota: Si los puertos están siendo utilizados activamente por un proceso diferente, acaba de 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 próximos pasos.
  5. Si los puertos no se usan 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.

    Abrir la utilidad Editor del registro
  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 usará una dirección IP de 0.0.0.0 de manera 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. Luego, presione la tecla Windows + R para abrir un cuadro de diálogo Ejecutar, escriba ' cmd ' y presione Entrar para abrir otra ventana del símbolo del sistema.

    Ejecutar diálogo: cmd
  9. En el indicador de Cmd, ejecute el siguiente comando y presione Entrar para detener el servicio HTTP responsable de ejecutar el IIS:
     net stop http 
  10. Cuando se le pregunte si desea continuar con esta operación, escriba 'Y' y presione Entrar para confirmar la operación.

    Deshabilitar el servicio HTTP
  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, vaya 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.

    Eliminar los valores binarios con direcciones IP no válidas

    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 debe 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.

    Abrir una ventana de símbolo del sistema normal
  15. En el símbolo del sistema recién abierto, escriba el siguiente comando para asegurarse de que se inicia el servicio HTTP:
     net start http 

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

  16. Intente iniciar un servicio desde el complemento Microsoft Management 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' .

Artículos De Interés