Openfiles - Trouver quel processus verrouille un fichier

Communiquez et partagez vos astuces sur Windows 10
Verrouillé
Patriciag
Messages : 6310
Enregistré le : mer. 3 juin 2015 16:44
Etes vous un robot ? : Non
Localisation : Port-sur-Saône / Haute-Saône / France
Contact :

Openfiles - Trouver quel processus verrouille un fichier

Message par Patriciag »

Lorsque vous essayez de supprimer un fichier ou un dossier qui est en cours d'utilisation par un processus, une boîte de dialogue "Fichier utilisé" apparaît, indiquant le nom du programme qui a verrouillé le fichier.
Openfiles-1.png
Openfiles-1.png (41.94 Kio) Vu 10712 fois
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
Le message suivant s'affiche alors.
Openfiles-2.png
Openfiles-2.png (48.94 Kio) Vu 10714 fois
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
Cela affiche un tableau contenant la liste des fichiers ouverts localement ou à distance via des points de partage locaux, avec l'ID du fichier/handle et le nom du processus pour chaque fichier recensé.

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
Pour copier la sortie vers le Presse-papier, envoyez la sortie vers Clip.exe comme ci-dessous.
Ensuite, collez la sortie dans le Bloc-notes ou tout autre éditeur de votre choix.

Code : Tout sélectionner

openfiles |clip
Fichiers ouverts localement :
--------------------

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>
Exemple :

Code : Tout sélectionner

openfiles | findstr /i informatique
La commande ci-dessus répertorie tous les fichiers ouverts contenant le mot "informatique" dans le nom du fichier.
Dans cet exemple, Word 2016 verrouille le fichier C:\Users\Patricia\Desktop\informatique.docx (ID 3244).
Openfiles-3.png
Openfiles-3.png (33.16 Kio) Vu 10714 fois
La boîte de dialogue "Fichier verrouillé" indique la même chose.
Openfiles-1.png
Openfiles-1.png (41.94 Kio) Vu 10712 fois
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]
Description:
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/
Avatar du membre
chantal11
Messages : 6919
Enregistré le : dim. 25 sept. 2011 11:59
Localisation : Aude
Contact :

Re: Openfiles - Trouver quel processus verrouille un fichier

Message par chantal11 »

Pour tout commentaire ou demande d'aide sur cette astuce, merci d'ouvrir un nouveau sujet dans la catégorie "Discussions Générales" du système d'exploitation concerné.
Image Image
Image
En cas de problème constaté sur un sujet, alertez un modérateur. N'intervenez pas vous-même. Merci
Verrouillé