Découvrez qui verrouille un fichier sur un partage réseau

141

Je veux savoir qui verrouille un fichier sur un partage réseau.

Voici le problème: le partage réseau est sur un NAS, donc je ne peux pas me connecter. J'ai besoin d'un outil pour savoir à distance qui verrouille le fichier. Il n'est pas pratique de redémarrer le NAS à chaque fois, car il y a plusieurs utilisateurs.

Handle.exe , Process Explorer et PsFile semblent être limités aux fichiers sur la machine locale, donc ils ne fonctionnent pas pour moi.

olorine
la source

Réponses:

172

Juste au cas où quelqu'un chercherait une solution à cela pour un système Windows ou un NAS:

Il existe une fonction intégrée dans Windows qui vous montre quels fichiers sur l'ordinateur local sont ouverts / verrouillés par l'ordinateur distant (qui a le fichier ouvert via un partage de fichiers):

  • Sélectionnez "Gérer l'ordinateur" (Ouvrez "Gestion de l'ordinateur")
  • cliquez sur "Dossiers partagés"
  • choisissez "Ouvrir les fichiers"

Là, vous pouvez même fermer le fichier de force.

Dirk Paessler
la source
10
Vous pouvez même utiliser Action -> Connectez-vous à un autre ordinateur pour le fichier sur un NAS, et cela fonctionne même avec notre NAT basé sur Linux! Pourquoi n'ai-je pas essayé cela plus tôt?
olorin
20
Sous Windows 2008 R2, accédez à Gestionnaire de serveur> Rôles> Services de fichiers> Gestion du partage et du stockage> cliquez avec le bouton droit sur SaSM> Gérer les fichiers ouverts.
Jason Pearce
Ouvrez simplement une console MMC et ajoutez un composant logiciel enfichable Dossiers partagés. Vous pouvez vous connecter à des systèmes distants.
nizx
2
Pour un partage de domaine, cela n'a pas fonctionné. Le libellé semble impliquer des fichiers situés sur vos partages réseau.
kevinf
1
J'ai utilisé une application appelée Unlocker pour ce faire (le fichier était sur le NAS). L'application est ici: filehippo.com/download_unlocker/tech et cela a fonctionné pour moi, mais je ne peux pas garantir cette application
Dan
58

Sur les serveurs Windows 2008 R2, vous disposez de deux moyens pour afficher les fichiers ouverts et fermer ces connexions.

Via la gestion du partage et du stockage

Gestionnaire de serveur> Rôles> Services de fichiers> Gestion du partage et du stockage> cliquez avec le bouton droit sur SaSM> Gérer le fichier ouvert

Via OpenFiles

CMD> Openfiles.exe / query / s SERVERNAME

Voir http://technet.microsoft.com/en-us/library/bb490961.aspx .

Jason Pearce
la source
2
Très bonne réponse. Je ne connaissais pas Openfiles; cela fonctionne bien mieux que d'avoir à utiliser psexec ou des outils de communication à distance similaires.
twasbrillig
@twasbrillig ok mais si c'est un NAS, et non basé sur Windows! C: \> Openfiles.exe / query / s 10.0.0.1 <ENTER> ERREUR: Le système cible doit exécuter Windows XP ou supérieur.
barlop
Il convient de noter que les nœuds "Rôles", etc. se développent avec du retard.
SerG
Merci pour cela, openfiles.exe fonctionne également sur Windows Server 2012 R2. Je n'ai pas trouvé d'autres bons guides sur la façon de répertorier les fichiers ouverts à partir d'un serveur 2012, mais cela a fait l'affaire.
Oldskool
Belle commande CMD, merci pour le partage! Windows 10 Entreprise est livré avec Openfiles.exe dès la sortie de la boîte.
Leo Gurdian
25

PsFile fonctionne sur des machines distantes. Si mon compte de connexion a déjà accès au partage distant, je peux simplement entrer:

psfile \\remote-share

(remplacez "remote-share" par le nom de votre serveur de fichiers) et il listera chaque document ouvert sur ce partage, avec qui l'a ouvert, et l'ID de fichier si je veux forcer le fichier fermé. Pour moi, c'est une très longue liste, mais elle peut être réduite en entrant une partie d'un chemin:

psfile \\remote-share I:\\Human_Resources

C'est un peu délicat, car dans mon cas, ce partage distant est monté en tant que Z: sur ma machine locale, mais psfile identifie les chemins tels qu'ils sont définis sur le serveur de fichiers distant, qui dans mon cas est I: (le vôtre sera différent) . Je devais simplement parcourir les résultats de ma première exécution de psfile pour voir certains des chemins qu'il a renvoyés, puis le réexécuter avec un chemin partiel pour affiner les résultats.

Facultativement, PsFile vous permettra de spécifier les informations d'identification pour le partage distant si vous devez les fournir pour l'accès.

Enfin, un conseil peu connu: si quelqu'un clique sur un fichier dans l'Explorateur Windows et coupe ou copie le fichier avec l'intention de le coller ailleurs, cet acte place également un verrou sur le fichier.

Baodad
la source
est-il censé y avoir des doubles?
PsychoData
@PsychoData, ça fait un moment que j'ai posté ça. J'espère que ce que j'ai publié est correct. Le \\ avant la partie de partage à distance semble correct, mais le \\ dans I: \\ Human_Resources a l'air bizarre. Pourtant, je pense que j'avais une raison à cela lorsque j'ai posté. Essayez-le et faites-le moi savoir.
Baodad
14

S'il s'agit simplement de savoir / voir qui se trouve dans un fichier à un moment donné (et si vous utilisez Windows), sélectionnez simplement le fichier «afficher» comme «détails», c'est-à-dire plutôt que des vignettes, des tuiles ou des icônes, etc. dans la vue «détails», par défaut, vous serez affiché; - Nom du fichier - Taille - Type et - Date de modification

Tout ce que vous avez à faire maintenant est de cliquer avec le bouton droit de la souris n'importe où le long de ladite barre d'outils (nom de fichier, taille, type, etc.) et vous recevrez une liste d'autres options que la barre d'outils peut afficher.

Sélectionnez «Propriétaire» et une nouvelle colonne affichera le nom d'utilisateur de la personne utilisant le fichier ou qui l'a créé à l'origine si personne d'autre ne l'utilise.

Cela peut être particulièrement utile lors de l'utilisation d'une base de données MS Access partagée.

Jones
la source
4
Dans mon cas, cela n'a pas fonctionné. J'ajoute la colonne et je me vois comme le créateur du fichier partagé dans la ressource distante, mais j'ai déjà été verrouillé par un collègue.
David Oliván Ubieto
5
Cela ne fonctionne vraiment bien que lorsque le programme dans lequel ils se trouvent crée un fichier de verrouillage (comme MS Access) qui appartiendra à celui qui l'utilise et non au créateur original du fichier
PsychoData
1
Pour enregistrer l'ajout de la colonne, vous pouvez voir les mêmes informations si vous affichez les propriétés du fichier et regardez l'onglet Détails.
Malvineous
Cela fonctionne très bien pour des choses comme les fichiers MS Word.
Tridus
5

Les sessions sont gérées par le périphérique NAS. Ce que vous demandez dépend du périphérique NAS et n'a rien à voir avec Windows. Vous devrez jeter un œil au micrologiciel de votre NAS pour voir ce qu'il prend en charge. Le seul autre moyen est de renifler les paquets et de les résoudre vous-même.


la source
Eh bien, c'est une bonne réponse avec du bon sens. Malheureusement, ce NAS n'offre pas cette fonctionnalité.
olorin
5

Réponse partielle: Avec Process Explorer, vous pouvez afficher les poignées sur un partage réseau ouvert depuis votre machine .

Utilisez le menu "Rechercher une poignée", puis vous pouvez taper un chemin comme celui-ci

\Device\LanmanRedirector\server\share\
olorine
la source
2

on dirait que vous avez le même problème que j'ai essayé de résoudre ici . dans mon cas, c'est un serveur de fichiers Linux (exécutant samba, bien sûr), donc je peux me connecter et voir quel processus verrouille le fichier; malheureusement, je n'ai pas trouvé comment le fermer sans tuer la session responsable. AFAICT, le client Windows «pense» qu'il est fermé; mais n'a pas pris la peine de dire au serveur de fichiers.

Javier
la source
Cela semble probable: pour autant que je sache, notre NAS a utilisé une distribution Linux personnalisée.
olorin
1

Fermez le fichier e:\gestion\yourfile.dat, ouvert par n'importe quel utilisateur ( /a *)

openfiles /disconnect /a * /op "e:\gestion\yourfile.dat"

plus sur: http://dosprompt.info/commands/openfiles.asp

R.Alonso
la source