Finden Sie heraus, wer eine Datei auf einer Netzwerkfreigabe sperrt

141

Ich möchte wissen, wer eine Datei auf einer Netzwerkfreigabe sperrt.

Hier ist das Problem: Die Netzwerkfreigabe befindet sich auf einem NAS, daher kann ich mich nicht anmelden. Ich benötige ein Tool, um aus der Ferne herauszufinden, wer die Datei sperrt. Es ist nicht praktisch, den NAS jedes Mal neu zu starten, da mehrere Benutzer vorhanden sind.

Handle.exe , Process Explorer und PsFile scheinen auf Dateien auf dem lokalen Computer beschränkt zu sein, daher funktionieren sie für mich nicht.

Olorin
quelle

Antworten:

172

Nur für den Fall, dass jemand nach einer Lösung für ein Windows-basiertes System oder NAS sucht:

In Windows ist eine Funktion integriert, die anzeigt, welche Dateien auf dem lokalen Computer vom Remotecomputer geöffnet / gesperrt werden (bei dem die Datei über eine Dateifreigabe geöffnet ist):

  • Wählen Sie "Computer verwalten" (Öffnen Sie "Computerverwaltung").
  • Klicken Sie auf "Freigegebene Ordner".
  • Wählen Sie "Dateien öffnen".

Dort können Sie die Datei sogar zwangsweise schließen.

Dirk Paessler
quelle
10
Sie können sogar Aktion -> Mit einem anderen Computer verbinden, um die Datei auf einem NAS zu erstellen, und es funktioniert sogar mit unserem Linux-basierten NAT! Warum habe ich das nicht früher versucht?
Olorin
20
Gehen Sie unter Windows 2008 R2 zu Server-Manager> Rollen> Dateidienste> Freigabe- und Speicherverwaltung> klicken Sie mit der rechten Maustaste auf SaSM> Geöffnete Dateien verwalten.
Jason Pearce
Öffnen Sie einfach eine MMC-Konsole und fügen Sie ein Snap-In für freigegebene Ordner hinzu. Sie können eine Verbindung zu Remote-Systemen herstellen.
Nizx
2
Bei einer Domain-Freigabe hat dies nicht funktioniert. Der Wortlaut scheint Dateien zu implizieren, die sich auf Ihren Netzwerkfreigaben befinden.
Kevinf
1
Ich habe dazu eine Anwendung namens Unlocker verwendet (die Datei befand sich auf dem NAS). Die App ist hier: filehippo.com/download_unlocker/tech und es hat bei mir funktioniert, aber ich kann nicht für diese App bürgen
Dan
58

Auf Windows 2008 R2-Servern haben Sie zwei Möglichkeiten, um anzuzeigen, welche Dateien geöffnet sind, und um diese Verbindungen zu schließen.

Über Share and Storage Management

Server-Manager> Rollen> Dateidienste> Freigabe- und Speicherverwaltung> Klicken Sie mit der rechten Maustaste auf SaSM> Offene Datei verwalten

Über OpenFiles

CMD> Openfiles.exe / query / s SERVERNAME

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

Jason Pearce
quelle
2
Gute Antwort. Ich wusste nichts über Openfiles; Es funktioniert viel besser als die Verwendung von psexec oder ähnlichen Remoting-Tools.
Twasbrillig
@twasbrillig ok aber wenn es ein NAS ist und nicht Windows basiert! C: \> Openfiles.exe / query / s 10.0.0.1 <ENTER> FEHLER: Auf dem Zielsystem muss Windows XP oder höher ausgeführt werden.
Barlop
Es ist zu beachten, dass sich die Knoten "Rollen" usw. mit Verzögerung erweitern.
SerG
Vielen Dank dafür, openfiles.exe funktioniert auch unter Windows Server 2012 R2. Ich konnte keine anderen guten Anleitungen zum Auflisten der geöffneten Dateien von einem 2012-Server finden, aber dies hat den Trick getan.
Oldskool
Netter CMD-Befehl, danke fürs Teilen! Windows 10 Enterprise wird sofort mit Openfiles.exe ausgeliefert.
Leo Gurdian
25

PsFile funktioniert auf Remotecomputern. Wenn mein Anmeldekonto bereits Zugriff auf die Remote-Freigabe hat, kann ich einfach Folgendes eingeben:

psfile \\remote-share

(Ersetzen Sie "Remote-Freigabe" durch den Namen Ihres Dateiservers) und es werden alle geöffneten Dokumente auf dieser Freigabe zusammen mit dem geöffneten Dokument und der Datei-ID aufgelistet, wenn ich das Schließen der Datei erzwingen möchte. Für mich ist dies eine sehr lange Liste, die jedoch durch Eingabe eines Teils eines Pfades eingegrenzt werden kann:

psfile \\remote-share I:\\Human_Resources

Dies ist etwas schwierig, da in meinem Fall diese Remote-Freigabe als Z: auf meinem lokalen Computer bereitgestellt wird, psfile jedoch Pfade identifiziert, wie sie auf dem Remote-Dateiserver definiert sind. In meinem Fall bin ich: (Ihre wird anders sein) . Ich musste nur die Ergebnisse meines ersten psfile-Laufs durchkämmen, um einige der zurückgegebenen Pfade zu sehen, und ihn dann erneut mit einem Teilpfad ausführen, um die Ergebnisse einzugrenzen.

Optional können Sie in PsFile Anmeldeinformationen für die Remotefreigabe angeben, wenn Sie diese für den Zugriff angeben müssen.

Zum Schluss noch ein wenig bekannter Tipp: Wenn jemand im Windows Explorer auf eine Datei klickt und die Datei ausschneidet oder kopiert, um sie an einer anderen Stelle einzufügen, wird durch diese Aktion auch die Datei gesperrt.

Baodad
quelle
soll es doppelte geben?
PsychoData
@ PsychoData, es ist schon eine Weile her, seit ich das gepostet habe. Ich hoffe, was ich gepostet habe, ist korrekt. Das \\ vor dem Remote-Share-Teil sieht richtig aus, aber das \\ in I: \\ Human_Resources sieht seltsam aus. Trotzdem glaube ich, dass ich einen Grund dafür hatte, als ich gepostet habe. Probieren Sie es aus und lassen Sie es mich wissen.
Baodad
14

Wenn es nur darum geht, zu wissen / zu sehen, wer sich zu einem bestimmten Zeitpunkt in einer Datei befindet (und wenn Sie Windows verwenden), wählen Sie einfach die Datei "Ansicht" als "Details" aus, dh anstelle von Miniaturansichten, Kacheln oder Symbolen usw. Einmal In der Detailansicht werden Sie standardmäßig angezeigt. - Dateiname - Größe - Typ und - Änderungsdatum

Jetzt müssen Sie nur noch mit der rechten Maustaste auf eine beliebige Stelle in der Symbolleiste klicken (Dateiname, Größe, Typ usw.), und Sie erhalten eine Liste anderer Optionen, die in der Symbolleiste angezeigt werden können.

Wählen Sie "Eigentümer" und in einer neuen Spalte wird der Benutzername der Person angezeigt, die die Datei verwendet oder die sie ursprünglich erstellt hat, wenn sie von niemand anderem verwendet wird.

Dies kann besonders nützlich sein, wenn Sie eine gemeinsam genutzte MS Access-Datenbank verwenden.

Jones
quelle
4
In meinem Fall hat nicht funktioniert. Ich füge die Spalte hinzu und sehe mich als Ersteller der freigegebenen Datei in der Remote-Ressource, wurde aber bereits von einem Arbeitskollegen gesperrt.
David Oliván Ubieto
5
Dies funktioniert wirklich nur dann gut, wenn das Programm, in dem sie sich befinden, eine Sperrdatei (wie MS Access) erstellt, die demjenigen gehört, der sie verwendet, und nicht dem ursprünglichen Ersteller der Datei
PsychoData
1
Um das Hinzufügen der Spalte zu speichern, werden dieselben Informationen angezeigt, wenn Sie die Dateieigenschaften anzeigen und auf der Registerkarte Details nachsehen.
Malvineous
Dies funktioniert sehr gut für Dinge wie MS Word-Dateien.
Tridus
5

Die Sitzungen werden vom NAS-Gerät verwaltet. Was Sie fragen, hängt vom NAS-Gerät ab und hat nichts mit Windows zu tun. Sie müssten einen Blick in Ihre NAS-Firmware werfen, um zu sehen, was sie unterstützt. Der einzige andere Weg ist, die Pakete zu schnüffeln und selbst herauszufinden.


quelle
Nun, das ist eine gute Antwort mit gesundem Menschenverstand. Leider bietet dieser NAS diese Funktionalität nicht an.
Olorin
5

Teilantwort: Mit Process Explorer können Sie Handles auf einer von Ihrem Computer geöffneten Netzwerkfreigabe anzeigen .

Verwenden Sie das Menü "Handle suchen" und geben Sie einen Pfad wie diesen ein

\Device\LanmanRedirector\server\share\
Olorin
quelle
2

klingt wie Sie das gleiche Problem haben, das ich hier zu lösen versucht habe . In meinem Fall handelt es sich um einen Linux-Dateiserver (auf dem natürlich Samba ausgeführt wird), sodass ich mich anmelden und sehen kann, durch welchen Prozess die Datei gesperrt wird. Leider habe ich nicht gefunden, wie ich es schließen kann, ohne die verantwortliche Sitzung zu beenden. AFAICT, der Windows-Client "denkt", dass er geschlossen ist. aber nicht die Mühe gemacht, den Dateiserver zu erzählen.

Javier
quelle
Klingt wahrscheinlich: Soweit ich weiß, hat unser NAS eine benutzerdefinierte Linux-Distribution verwendet.
Olorin
1

Schließen Sie die Datei e:\gestion\yourfile.dat, die von einem beliebigen Benutzer geöffnet werden kann ( /a *)

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

mehr unter: http://dosprompt.info/commands/openfiles.asp

R. Alonso
quelle