2008-11-26 8 views
23

Este problema aparece 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.Liberación de bloqueos de archivos compartidos de Windows

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á mirando 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 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?

+0

Wow. ¿Realmente no hay forma de evitar esto en Windows? Cómo ... No es nada sorprendente. Al menos Samba puede hacerlo. – rubenvb

Respuesta

19

Encontré una solución.

  1. Encuentre el proceso utilizando Process Explorer:

    1. Descargar y extraer procexp.exe
    2. En el explorador de procesos utilizan el "Encuentra Mango o DLL ..." desde el menú "Buscar"
    3. Ingrese el nombre del directorio que tiene problemas para eliminar
    4. Debe mostrarse una lista de archivos abiertos que coinciden con ese nombre. Haga algunas conjeturas y descubra cuál no está siendo eliminado. Si el archivo está bloqueado por una cuota de ventanas, el proceso que tiene el archivo estará Sistema
    5. Anote el directorio que se dejó abierta
  2. Descargar e instalar el Unlocker (Advertencia: Enlace eliminado, como se que contiene software malicioso)

    1. instalar Unlocker, la desactivación de la opción para las extensiones de Explorer y otros desperdicios
  3. Desbloquear el directorio

    1. abrir una ventana de cmd y vaya a C: \ Archivos de programa \ Unlocker
    2. Desde la ventana de cmd, ejecute Unlocker.exe "la ruta-a-la--carpeta bloqueada "
    3. Aparecerá un cuadro de diálogo que confirma la liberación del bloqueo. Utilice el botón de desbloqueo para desbloquear el archivo

Ahora el directorio debe ser desbloqueado, y ahora se pueden eliminar.

+0

Pregunta tonta pero: ¿dónde ejecuto el programa si tengo el mismo problema que el OP?¿La computadora que comparte el archivo o la computadora usa el recurso compartido? –

+0

@SalmanA: ejecútelo en la computadora en la que está almacenado el archivo (la computadora que comparte el archivo) – alldayremix

+1

Sugiero eliminar el enlace a la aplicación Unlocker. Ahora contiene spyware (ver a continuación). –

15

Si son admin en el servidor compartiendo el archivo a través de la red, puede utilizar la característica de Windows incorporado:

  1. Inicio → Mi PC → Haga clic derecho → Manage se llega al ordenador Consola de administración
  2. En el panel de navegación izquierdo, navegue hasta Herramientas de sistema → Carpetas compartidas
  3. Puede ver Acciones, Sesiones & 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.

+0

Si cierra la sesión, simplemente se restablecerá y no se eliminará el bloqueo. ¿Has probado tu sugerencia? – Heliac

+2

Sí, tengo. Funciona. Intentalo. – sudheeshix

+0

Depende de la situación. Esto también funcionó para mí. Sesiones de Freezed que bloquearon mis archivos. –

2

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

Process Hacker es como el explorador de procesos en los esteroides.

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.

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

Las versiones anteriores tenían una opción de "terminador" en el menú contextual 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.

+0

Terminator no estaba en v2.39.124. Sin embargo, pude hacer clic con el botón derecho en el manejador de archivo y seleccionar "cerrar" – Michael

1

He tenido problemas similares, y ninguna de estas sugerencias que he visto arriba parece adecuada para construcciones automatizadas durante la noche (como el cartel original implica) porque todas requieren un esfuerzo manual para perseguir y matar las cerraduras.

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. He aquí una manera de eliminar la cuota de forma automática:

D: \ Proyectos> Proyectos de Acciones netas/borrar/Y

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

Proyectos se eliminaron correctamente.

(NOTA: La creación de la cuota de nuevo de forma automática puede ser un problema si los grupos de privilegio que necesita para darle son desordenado.)

Cuestiones relacionadas