Toutefois, dans certains cas, la boîte de dialogue "Fichier utilisé" ne signale pas le nom du processus qui a verrouillé le fichier que vous essayez de supprimer.
Pour investiguer sur les processus qui verrouillent les fichiers, Windows Sysinternals Process Explorer est probablement la première option qui vient à l'esprit, pour la plupart des utilisateurs.
Cependant, il existe une solution intégrée pour afficher la liste actuelle des fichiers ouverts ainsi que les noms de processus correspondants.
Openfiles - Outil intégré pour afficher ou déconnecter des fichiers et répertoires ouverts sur un système
L'outil intégré que nous utilisons dans ce tutoriel est Openfiles.exe, un outil de console introduit dans Windows en 2000 dans le cadre des outils Windows Resource Kit 2000/2003, puis inclus par défaut dans Windows Vista et versions ultérieures, Windows 10 inclus.
Openfiles affiche la liste des fichiers actuellement ouverts dans des dossiers locaux ou partagés, ainsi que l'ID du fichier (handle) et le nom du processus exécutable.
Cet outil vous permet également de déconnecter un ou plusieurs fichiers ouverts à distance via un dossier partagé.
Activer l'indicateur global "Conservation de la liste d'objets système" (Maintain Objects List) pour la première fois
Tout d'abord, pour activer le suivi des descripteurs de fichiers locaux, vous devez activer l'indicateur global "Conservation de la liste d'objets système" en exécutant la commande suivante dans une invite de commandes en mode administrateur :
Code : Tout sélectionner
openfiles /local on
Vous ne devez exécuter cette commande que la première fois.
Ensuite, redémarrez Windows pour que la modification prenne effet.
Afficher les fichiers ouverts et le nom des processus correspondants
Après le redémarrage de Windows, dans une invite de commandes en mode administrateur, tapez :
Code : Tout sélectionner
openfiles
Pour afficher la sortie au format liste ou CSV, utilisez le paramètre / query.
Code : Tout sélectionner
openfiles /query /FO LIST
Code : Tout sélectionner
openfiles /query /FO CSV
Ensuite, collez la sortie dans le Bloc-notes ou tout autre éditeur de votre choix.
Code : Tout sélectionner
openfiles |clip
--------------------
ID Nom du processus Fichier ouvert (chemin\exécutable)
===== ==================== ==================================================
52 SynTPEnh.exe C:\Windows\System32
88 SynTPEnh.exe C:\..44ccf1df_6.0.14393.351_none_4213128bc687e6d3
436 SynTPEnh.exe C:\Windows\Registration\R00000000000d.clb
52 sihost.exe C:\Windows\System32
308 sihost.exe C:\Windows\Registration\R00000000000d.clb
496 sihost.exe C:\Windows\System32\fr-FR\KernelBase.dll.mui
60 svchost.exe C:\Windows\System32
188 svchost.exe C:\Windows\System32\fr-FR\svchost.exe.mui
620 svchost.exe C:\Windows\Registration\R00000000000d.clb
948 svchost.exe C:\Windows\System32\fr-FR\KernelBase.dll.mui
Code : Tout sélectionner
openfiles /query /FO CSV |clip
Code : Tout sélectionner
openfiles /query /FO LIST |clip
Fichiers ouverts localement :
--------------------
ID: 52
Nom du processus: SynTPEnh.exe
Fichier ouvert (chemin\exécutable): C:\Windows\System32
ID: 88
Nom du processus: SynTPEnh.exe
Fichier ouvert (chemin\exécutable): C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.14393.351_none_4213128bc687e6d3
ID: 436
Nom du processus: SynTPEnh.exe
Fichier ouvert (chemin\exécutable): C:\Windows\Registration\R00000000000d.clb
ID: 52
Nom du processus: sihost.exe
Fichier ouvert (chemin\exécutable): C:\Windows\System32
ID: 308
Nom du processus: sihost.exe
Fichier ouvert (chemin\exécutable): C:\Windows\Registration\R00000000000d.clb
Pour savoir si un fichier particulier est en cours d'utilisation par un programme et de quel programme il s'agit, utilisez la ligne de commande suivante :
Code : Tout sélectionner
openfiles | findstr /i <filename>
Code : Tout sélectionner
openfiles | findstr /i informatique
Dans cet exemple, Word 2016 verrouille le fichier C:\Users\Patricia\Desktop\informatique.docx (ID 3244).
La boîte de dialogue "Fichier verrouillé" indique la même chose.
Déconnecter un fichiers ouvert à distance via un dossier partagé
Pour déconnecter un fichiers ouvert via un dossier partagé afin de pouvoir le supprimer, le renommer ou modifier son contenu, utilisez le paramètre /disconnect pour couper les connexions à ce fichier.
Code : Tout sélectionner
OPENFILES /Disconnect [/S system [/U username [/P [password]]]]
{[/ID id] [/A accessedby] [/O openmode]}
[/OP openfile]
Enables an administrator to disconnect files and folders that
have been opened remotely through a shared folder.
Parameter List:
/S system Specifies the remote system to connect to.
/U [domain\]user Specifies the user context under which the
command should execute.
/P [password] Specifies the password for the given user
context.
/ID id Specifies to disconnect open files by file ID.
The "*" wildcard may be used.
/A accessedby Specifies to disconnect all open files by
"accessedby" value. The "*" wildcard
may be used.
/O openmode Specifies to disconnect all open files by
"openmode" value. Valid values are Read,
Write or Read/Write. The "*" wildcard
may be used.
/OP openfile Specifies to disconnect all open file
connections created by a specific "open
file" name. The "*" wildcard may be used.
/? Displays this help message.
Examples:
OPENFILES /Disconnect /?
OPENFILES /Disconnect /ID 1
OPENFILES /Disconnect /A username
OPENFILES /Disconnect /O Read/Write
OPENFILES /Disconnect /OP "c:\My Documents\somedoc.doc" /ID 234
OPENFILES /Disconnect /S system /U username /ID 5
OPENFILES /Disconnect /S system /U username /P password /ID *
Description détaillée des options de la commande openfiles sur Technet
Source (en anglais) : http://www.winhelponline.com/blog/find- ... s-utility/