windows file locking share
procexp.exe

Liberación de bloqueos de archivos compartidos de Windows



file locking (5)

Este problema surge de vez en cuando en el trabajo. Nuestra máquina de compilación puede tener acceso a sus archivos a través de un archivo compartido de Windows normal. Si alguien examina una carpeta de forma remota en la máquina y deja la ventana abierta durante la noche, entonces la compilación falla (como lo ha hecho ahora). La ventana del explorador dejó puntos abiertos en una de las subcarpetas en el árbol fuente. La compilación elimina la fuente y realiza una comprobación limpia antes de compilar. La eliminación está fallando.

En este momento, me gustaría que la compilación funcione. He iniciado sesión desde mi casa y prefiero no reiniciar la máquina de compilación. No puedo localizar a la persona cuya máquina está buscando y a los archivos, y no puedo reiniciar remotamente su máquina.

Cuando un recurso compartido de Windows tiene un bloqueo, el proceso de bloqueo es Sistema, por lo que no creo que pueda eliminarlo, como ocurre con los bloqueos normales.

¿Alguien sabe una forma de liberar el bloqueo en una carpeta compartida sin tener que reiniciar la máquina?


Si eres administrador en el servidor que comparte el archivo a través de la red, puedes usar la función incorporada de Windows:

  1. Inicio → Mi PC → Haga clic con el botón derecho → Administrar lo lleva a la consola de Administración de equipos
  2. En el navegador izquierdo, vaya a Herramientas de sistema → Carpetas compartidas
  3. Puede ver Acciones, Sesiones y Abrir archivos aquí. Esto le permite saber quién ha abierto qué archivos desde qué estaciones de trabajo.
  4. Haga clic derecho en un elemento de la lista para poder eliminar el bloqueo de archivos.

Espero que esto ayude.


He tenido problemas similares, y ninguna de estas sugerencias que he visto arriba parece adecuada para compilaciones automatizadas durante toda la noche (como implicaba el póster original) porque todas requieren un esfuerzo manual para perseguir y matar los bloqueos.

El único método que he probado que parece funcionar de manera confiable es eliminar el recurso compartido en sí, hacer la compilación y luego volver a agregar el recurso compartido. Aquí hay una forma de eliminar el recurso compartido automáticamente:

D: / Projects> net share Proyectos / DELETE / Y

Los usuarios tienen archivos abiertos en Proyectos. Continuar con la operación obligará a cerrar los archivos.

Proyectos fue eliminado con éxito.

(NOTA: Crear el recurso de nuevo automáticamente puede ser molesto si los grupos de privilegios que necesita darle son complicados).


Encontré una solución.

  1. Encuentre el proceso usando Process Explorer :

    1. Descargue y extraiga procexp.exe
    2. En Process Explorer use el comando "Find Handle or DLL ..." del menú "Buscar"
    3. Ingrese el nombre del directorio que tiene problemas para eliminar
    4. Se debe mostrar una lista de archivos abiertos que coincidan con ese nombre. Haga algunas conjeturas y descubra cuál no está siendo eliminado. Si el archivo está bloqueado por un recurso compartido de Windows, el proceso que contiene el archivo será Sistema
    5. Anote el directorio que se dejó abierto
  2. Descargue e instale el Desbloqueador ( Advertencia : Se eliminó el enlace, ya que contiene malware)

    1. Instale Unlocker, deshabilitando la opción para extensiones de Explorer y otra basura
  3. Desbloquear el directorio

    1. Abra una ventana de cmd y vaya a C: / Program Files / Unlocker
    2. Desde la ventana de cmd, ejecute Unlocker.exe "the-path-to-the-locked-folder"
    3. Aparecerá un cuadro de diálogo que confirma la liberación del bloqueo. Usa el botón de desbloqueo para desbloquear el archivo

Ahora el directorio debería estar desbloqueado, y ahora puede ser eliminado.



Pruebe Process Hacker: http://processhacker.sourceforge.net/

El pirata informático de procesos es como Process Explorer con esteroides. Para el problema enumerado en la pregunta, haga clic derecho en el proceso ofensivo -> Miscellaneous -> Terminator -> Seleccione técnicas de terminación . Tenga en cuenta que algunos son posiblemente peligrosos y pueden tener consecuencias no deseadas.

Para encontrar el proceso ofensivo, presione CTRL + F o haga clic en el botón "Buscar identificadores de DLL" y busque el nombre del archivo.