¿Cómo Desbloquear un Archivo Bloqueado por Cualquier Proceso o SISTEMA?
A veces, cuando intenta eliminar, cambiar el nombre o mover un archivo en Windows, puede ver un mensaje que indica que el archivo está ocupado/bloqueado/usado por otro proceso. Por lo general, el nombre del programa que mantiene el archivo abierto se muestra justo en la ventana de mensajes del Explorador de archivos. Para desbloquear el archivo, basta con cerrar el programa. Sin embargo, puede ocurrir que un proceso desconocido o del sistema utilice un archivo o una biblioteca. Entonces es más difícil desbloquearlo.
Muchas aplicaciones abren archivos en el modo exclusivo. Al mismo tiempo, el archivo está bloqueado por un sistema de archivos que impide las operaciones de entrada y salida de otras aplicaciones y procesos. Si cierra la aplicación, se libera el bloqueo del archivo.
Un mensaje de bloqueo de archivo puede ser diferente. Por ejemplo, la siguiente captura de pantalla muestra el tipo de archivo y la aplicación con la que está asociado:
File/Folder in Use. The action can’t be completed because the file is open in another program. Close the folder or file and try again.Luego, puede comprender fácilmente qué aplicación ha bloqueado el archivo y cerrarlo.
Sin embargo, a veces puede ver un mensaje más interesante de que un archivo está siendo utilizado por un proceso desconocido o del sistema de Windows. Puede ser un proceso de Windows u otros procesos que funcionen con los privilegios del sistema, como una aplicación antivirus, un agente de copia de seguridad, una base de datos MSSQL, etc.:
The action can’t be completed because the file is open in SYSTEM.
Close the file and try again.Intentemos averiguar qué programa, servicio o proceso del sistema de Windows está utilizando un archivo, cómo desbloquear el archivo y si se puede liberar sin cerrar el proceso principal.
Si no puede eliminar una carpeta en una carpeta de red compartida, es probable que el problema esté relacionado con thumbs.db que contiene caché de miniaturas de archivos en la carpeta o que otro usuario abra (bloquee) el archivo en su servidor de archivos SMB.
La forma más fácil de desbloquear el archivo es finalizar el proceso que lo bloqueó. Pero no siempre es posible, especialmente en los servidores.
Para encontrar un proceso que ha bloqueado un archivo, a menudo se recomienda utilizar la herramienta Unlocker. No uso Unlocker ya que no proporciona información detallada sobre un proceso o una cadena de procesos que han bloqueado un archivo. Tampoco puede desbloquear un archivo utilizado por un proceso; debe eliminar una aplicación por completo.
Además, es una herramienta de terceros y debe estar muy atento cuando la instale, ya que sugiere instalar un paquete completo de programas que no necesita.
Cuando un proceso en Windows abre un archivo, se asigna un descriptor de archivo (identificador) a la secuencia de entrada/salida. El proceso y sus procesos secundarios acceden al archivo mediante el controlador. Con la API de Windows, puede enviar una señal a su sistema de archivos para liberar el identificador del archivo y desbloquearlo.
Si fuerza el cierre de los identificadores de archivos, puede resultar en un trabajo inestable de su aplicación o computadora. Si no está seguro de lo que puede suceder después de cerrar el identificador de archivo de una aplicación, no lo haga en un servidor de producción a menos que lo haya probado con anterioridad.
¿Cómo desbloquear un archivo usando Process Explorer?
ProcessExplorer es una herramienta gratuita del kit de Sysinternals que puede descargar del sitio web de Microsoft (https://docs.microsoft.com/en-us/sysinternals/downloads/process-explorer). Tratemos de encontrar un proceso que haya bloqueado un archivo y liberemos el archivo restableciendo el identificador de archivo del proceso.
-
No necesita instalar ProcessExplorer: simplemente descargue, extraiga y ejecute procexp.exe como administrador;
Seleccione Buscar-> Buscar controlador o DLL (o presione
Ctrl-F);
Especifique el nombre del archivo que desea desbloquear y haga clic en Buscar;
Seleccione el archivo que desee. El proceso que abrió el archivo se resaltará en el árbol de procesos. Haga clic con el botón derecho y seleccione Eliminar árbol de procesos para finalizar el proceso. Sin embargo, puede intentar cerrar el identificador del archivo sin finalizar el proceso. El identificador de archivo que buscó se resalta automáticamente en el panel inferior de Process Explorer. Haz clic con el botón derecho en el identificador y selecciona Cerrar identificador. Confirme el cierre del archivo;
Si el panel inferior con la lista de identificadores de procesos abiertos no se muestra en su Explorador de procesos, habilite la opción Ver -> Vista del panel inferior -> Identificadores.
Entonces ha cerrado el identificador del archivo sin finalizar el proceso principal. Luego puede eliminar o cambiar el nombre del archivo.
¿Cómo liberar un identificador de archivo con la herramienta Identificador?
Handle es otra herramienta de línea de comandos de Sysinternals (puede descargarla en el sitio web de Microsoft: https://docs.microsoft.com/en-us/sysinternals/downloads/handle). Le permite encontrar un proceso que haya bloqueado su archivo y liberar el bloqueo liberando el controlador.
-
Descargue y extraiga el archivo Handle;
Abra el símbolo del sistema como administrador y ejecute el siguiente comando:
handle64.exe > listproc.txtEste comando guardará la lista de identificadores abiertos en un archivo txt. Puede mostrar identificadores para un directorio en el que se encuentra el archivo que desea cambiar:
Handle64.exe -a “C:\Program Files\App”o para el proceso específico:
handle64.exe -p excel.exeAbra listproc.txt en cualquier editor de texto y busque la línea que contiene el nombre del archivo bloqueado. Copie el identificador de archivo ID (en formato hexadecimal). Luego sube a la sección donde se muestra el proceso que posee el handle y anota su ID. Lo más probable es que un proceso ejecutado como sistema tenga PID 4.
Para algunos procesos del sistema de Windows, handle.exe devuelve el siguiente mensaje:
wininit.exe pid: 732 \<unable to open process>. Significa que no puede obtener ninguna información sobre estos procesos del sistema (incluso como administrador). Para que dichos procesos abran identificadores de archivo, ejecute cmd.exe como Sistema e intente obtener la lista de identificadores nuevamente.
Luego regrese al símbolo del sistema y restablezca el identificador del archivo por su HandleID y ProcessID. El comando tiene el siguiente formato:
handl64e.exe -c HandleID -p ProcessIDPor ejemplo:
handl64e.exe -c 18C -p 18800La herramienta le pedirá que confirme el cierre del archivo para el proceso. Confirmarlo presionando
y -> enter
Si el sistema reacciona correctamente al cierre del archivo, desbloqueará su archivo sin finalizar el proceso ni reiniciar su servidor/computadora.






