Liberación de bloqueos de recursos compartidos de archivos de Windows


Este problema surge de vez en cuando en el trabajo. Nuestra máquina de compilación puede tener sus archivos accedidos a través de un recurso compartido de archivos de Windows normal. Si alguien navega por 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 abierta apunta a una de las subcarpetas del árbol de fuentes. La compilación elimina la fuente y realiza una comprobación limpia antes de la compilación. La eliminación está fallando.

Ahora mismo, me gustaría obtener el construir para trabajar. Estoy conectado desde casa, y prefiero no reiniciar la máquina de construcción. No puedo localizar a la persona cuya máquina está buscando y los archivos, y no puedo reiniciar remotamente su máquina.

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

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

Author: Jonathan Wright, 2008-11-26

5 answers

Encontró una solución.

  1. Encuentra el proceso usando Process Explorer :

    1. Descargar y extraer procexp.exe
    2. En el Explorador de procesos use el "Find Handle o DLL..."comando del menú" Buscar "
    3. Introduzca el nombre del directorio que está teniendo problemas para eliminar
    4. Se debe mostrar una lista de archivos abiertos que coincidan con ese nombre. Tome algunas conjeturas y encontrar que uno no se puede eliminar. Si el archivo está bloqueado por un windows share, el proceso que sostiene el archivo será System
    5. Anote el directorio que se dejó abierto
  2. Descargue e instale el Unlocker ( Advertencia: Enlace eliminado, ya que contiene malware)

    1. Instale Unlocker, deshabilitando la opción para extensiones de explorador y otros no deseados
  3. Desbloquear el directorio

    1. Abra una ventana cmd y navegue hasta C:\Program Files\Unlocker
    2. Desde la ventana cmd, corre Unlocker.exe"the-path-to-the-locked-folder"
    3. Aparecerá un cuadro de diálogo confirmando la liberación del bloqueo. Utilice el botón desbloquear para desbloquear el archivo

Ahora el directorio debe ser desbloqueado, y ahora puede ser eliminado.

 23
Author: Jonathan Wright,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-05-17 15:11:53

Si es administrador en el servidor que comparte el archivo a través de la red, puede usar la función integrada de Windows:

  1. Start → My Computer → Right-click → Manage te lleva a la Computadora Consola de administración
  2. En el navegador izquierdo, vaya a Herramientas de sistemas → Carpetas compartidas
  3. Puede ver Recursos compartidos, Sesiones y Abrir archivos aquí. Esto le permite averiguar quién ha abierto qué archivos desde qué estaciones de trabajo.
  4. Haga clic con el botón derecho en un elemento de la lista para poder eliminar archivo bloqueado.

Espero que esto ayude.

 19
Author: sudheeshix,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-18 06:35:26

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

Process hacker es como el Explorador de procesos en esteroides.

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

Una vez que encuentre el archivo en el diálogo buscar manejadores, simplemente puede hacer clic derecho en el archivo allí y elegir "cerrar". (al menos para v2.39.124)

Las versiones anteriores tenían una opción "terminator" en el contexto menú del proceso. 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.

 2
Author: Charles Burns,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-07 22:28:29

He tenido problemas similares, y ninguna de estas sugerencias que he visto anteriormente parecen adecuadas para compilaciones automáticas durante la noche (como implicaba el póster original) porque todas requieren un esfuerzo manual para cazar 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 agregar el recurso compartido de nuevo. Aquí hay una forma de eliminar el recurso compartido automáticamente:

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

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

Proyectos se eliminó con éxito.

(NOTA: Crear el recurso compartido de nuevo automáticamente puede ser una molestia si los grupos de privilegios que necesita darle son desordenados.)

 1
Author: Sean,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-03 16:50:37

Otra opción es, a partir de Windows Vista, utilizar la herramienta de Windows integrada en el sistema:

Monitorear recursos: perfmon.exe /res

Extraído de: Http://www.sysadmit.com/2017/06/windows-how-to-know-that-process-has-open-a-file.html

 0
Author: Panuels,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-04 14:40:14