Come sbloccare un file bloccato da qualsiasi processo o sistema

12 / 100

A volte, quando si tenta di eliminare, rinominare o spostare un file in Windows, è possibile che venga visualizzato un messaggio che indica che il file è occupato / bloccato / utilizzato da un altro processo. Di solito il nome del programma che mantiene il file aperto viene mostrato a destra nella finestra del messaggio di Esplora file. Per sbloccare il file è sufficiente chiudere il programma. Tuttavia, può accadere che un file o una libreria venga utilizzato da un processo sconosciuto o di sistema. Quindi è più difficile sbloccarlo.Molte app aprono i file in modalità esclusiva. Allo stesso tempo, il file è bloccato da un file system che impedisce le operazioni di input-output da altre app e processi. Se chiudi l’app, il blocco dei file viene rilasciato.

Un messaggio di blocco file potrebbe essere diverso. Ad esempio, lo screenshot seguente mostra il tipo di file e l’app a cui è associato :

Quindi puoi facilmente capire quale app ha bloccato il file e chiuderlo.

Tuttavia, a volte potresti vedere un messaggio più interessante che un file è utilizzato da un processo di sistema sconosciuto o Windows. Può essere un processo di Windows o altri processi che funzionano con i privilegi di sistema, come un’app antivirus, un agente di backup, un database MSSQL, ecc .:

Proviamo a scoprire quale programma, servizio o processo di sistema di Windows utilizza un file, come sbloccare il file e se può essere rilasciato senza chiudere il processo principale.Se non è possibile eliminare una cartella in una cartella di rete condivisa, è probabile che il problema sia correlato a thumbs.db contenente la cache delle miniature dei file nella cartella o il file viene aperto (bloccato) da un altro utente sul file server SMB .

Il modo più semplice per sbloccare il file è terminare il processo che lo ha bloccato. Ma non è sempre possibile, soprattutto sui server.Per trovare un processo che ha bloccato un file, si consiglia spesso di utilizzare lo strumento Unlocker . Non utilizzo Unlocker poiché non fornisce informazioni dettagliate su un processo o una catena di processi che hanno bloccato un file. Né puoi sbloccare un file utilizzato da un processo: devi uccidere completamente un’app.

Inoltre, è uno strumento di terze parti e dovresti stare molto attento quando lo installi, perché suggerisce di installare un intero pacchetto di programmi che non ti servono.

Quando un processo in Windows apre un file, un descrittore di file (handle) viene assegnato al flusso di input / output. Il processo ei suoi processi figli accedono al file utilizzando il gestore. Utilizzando l’API di Windows, è possibile inviare un segnale al file system per liberare l’handle del file e sbloccare il file.Se imponi la chiusura degli handle di file, potrebbe verificarsi un lavoro instabile della tua app o del tuo computer. Se non sei sicuro di cosa potrebbe accadere dopo aver chiuso l’handle di file di un’app, non farlo su un server di produzione a meno che tu non l’abbia testato in anticipo.

Come sbloccare un file utilizzando Process Explorer?

ProcessExplorer è uno strumento gratuito del kit Sysinternals che puoi scaricare dal sito Web Microsoft ( https://docs.microsoft.com/en-us/sysinternals/downloads/process-explorer ). Proviamo a trovare un processo che ha bloccato un file e liberare il file ripristinando l’handle del file del processo.

Non è necessario installare ProcessExplorer: basta scaricare, estrarre ed eseguire procexp.exe come amministratore;

Selezionare Trova -> Trova handle o DLL (o premere Ctrl-F);

Specificare il nome del file che si desidera sbloccare e fare clic su Cerca ;

Seleziona il file che desideri. Il processo che ha aperto il file verrà evidenziato nella struttura del processo. Fare clic con il pulsante destro del mouse e selezionare Kill Process Tree per terminare il processo. Tuttavia, puoi provare a chiudere l’handle del file senza terminare il processo. L’handle del file che hai cercato viene automaticamente evidenziato nel pannello inferiore di Process Explorer. Fare clic con il pulsante destro del mouse sulla maniglia e selezionare Chiudi maniglia . Conferma la chiusura del file;

Se il pannello inferiore con l’elenco degli handle di processo aperti non è visualizzato in Process Explorer, abilitare l’opzione Visualizza -> Visualizzazione riquadro inferiore -> Maniglie.

Quindi hai chiuso l’handle del file senza terminare il processo genitore. Quindi puoi rimuovere o rinominare il file.

Come rilasciare una maniglia per lima utilizzando lo strumento Maniglia?

Handle è un altro strumento da riga di comando di Sysinternals (puoi scaricarlo dal sito Web Microsoft: https://docs.microsoft.com/en-us/sysinternals/downloads/handle ). Ti consente di trovare un processo che ha bloccato il tuo file e rilasciare il blocco liberando la maniglia.

Scarica ed estrai l’archivio Handle;

Apri il prompt dei comandi come amministratore ed esegui il seguente comando: handle64.exe > listproc.txt 

Questo comando salverà l’elenco degli handle aperti in un file txt. È possibile visualizzare gli handle per una directory in cui si trova il file che si desidera modificare: Handle64.exe -a “C:\Program Files\App”o per il processo specifico:handle64.exe -p excel.exe

Apri listproc.txt in qualsiasi editor di testo e trova la riga che contiene il nome del file bloccato. Copia l’ ID dell’handle del file (nel formato esadecimale). Quindi vai alla sezione in cui viene mostrato il processo che possiede l’handle e annota il suo ID. È molto probabile che un processo eseguito come sistema avrà PID 4.

ottenere l'ID dell'handle del file aperto utilizzando handle64.exePer alcuni processi di sistema di Windows, handle.exe restituisce il seguente messaggio: wininit.exe pid: 732 \<unable to open process>. Significa che non puoi ottenere alcuna informazione su questi processi di sistema (nemmeno come amministratore). Per ottenere gli handle di file aperti da tali processi, eseguire cmd.exe come Sistema e provare a ottenere nuovamente l’elenco degli handle.

Quindi torna al prompt dei comandi e reimposta l’handle del file tramite HandleID e ProcessID. Il comando ha il seguente formato: handl64e.exe -c HandleID -p ProcessIDAd esempio:handl64e.exe -c 18C -p 18800

Lo strumento ti chiederà di confermare la chiusura del file per il processo. Confermarlo premendo y-> enter.

Se il sistema reagisce correttamente alla chiusura del file, sbloccherai il tuo file senza terminare il processo o riavviare il tuo server / computer.