Eines meiner Lieblingswerkzeuge für Linux ist lsof - ein echtes Schweizer Taschenmesser!
Heute habe ich mich gefragt, bei welchen Programmen auf einem WinXP-System eine bestimmte Datei geöffnet war. Gibt es einen äquivalenten Nutzen für lsof? Außerdem befand sich die fragliche Datei über eine Netzwerkfreigabe, sodass ich nicht sicher bin, ob dies die Sache kompliziert.
windows
linux
command-line
filesystems
Daniel Fone
quelle
quelle
Das Äquivalent von
lsof -p pid
ist die kombinierte Ausgabe von sysinternals handle und listdlls, dhSie können pid mit sysinternals herausfinden
pslist
.quelle
Versuchen Sie es mit Handle . Filemon & Regmon eignen sich auch hervorragend, um herauszufinden, was das Duce-Programm foo mit Ihrem System macht.
quelle
Ein Äquivalent von lsof könnte die Ausgabe von Sysinternals ' Handle und Listendlls sein , dh:
Leider müssen Sie "als Administrator ausführen", um sie verwenden zu können.
Außerdem erzeugen listdlls und handle keine fortlaufende tabellenähnliche Form, sodass durch Filtern des Dateinamens die PID ausgeblendet wird .
findstr /c:pid: /c:<filename>
sollte Sie jedoch mit beiden Dienstprogrammen sehr nahe bringenHier können wir sehen, dass gvim.exe diese Datei geöffnet hat.
quelle
Versuchen Sie Unlocker .
Die Unlocker-Site verfügt über ein übersichtliches Diagramm (scrollen Sie nach unten, nachdem Sie dem Link gefolgt sind), das einen Vergleich mit anderen Tools zeigt. Offensichtlich sind solche Vergleiche normalerweise voreingenommen, da sie normalerweise vom Tool-Autor geschrieben werden. In der Tabelle sind jedoch zumindest die Alternativen aufgeführt, damit Sie sie selbst ausprobieren können.
quelle
Wenn es sich bei der Datei um eine DLL handelt, können Sie mithilfe der TaskList- Befehlszeilen-App sehen, von wem sie geöffnet wurde:
quelle
Wenn Sie mit der rechten Maustaste auf das Symbol "Computer" (oder "Arbeitsplatz") klicken und im Popup-Menü "Verwalten" auswählen, gelangen Sie zur Computerverwaltungskonsole.
Dort finden Sie unter System Tools \ Shared Folders "Open Files". Dies entspricht wahrscheinlich Ihren Wünschen. Wenn sich die Datei jedoch auf einer Netzwerkfreigabe befindet, müssen Sie auf dem Server, auf dem sich die Datei befindet, dasselbe tun.
quelle
Es gibt ein Programm "OpenFiles", das Teil von Windows 7 zu sein scheint. Es scheint, dass es tun kann, was Sie wollen. Es kann Dateien auflisten, die von Remotebenutzern geöffnet wurden (über die Dateifreigabe), und nach dem Aufruf von "openfiles / Local on" und einem Systemneustart sollte es in der Lage sein, lokal geöffnete Dateien anzuzeigen. Letzteres soll Leistungseinbußen haben.
quelle
Verwenden Sie den Prozess-Explorer, um die Prozess-ID zu ermitteln. Verwenden Sie dann Handle , um herauszufinden, welche Dateien geöffnet sind.
ZB Griff -p
Ich mag diesen Ansatz, weil Sie Dienstprogramme von Microsoft selbst verwenden.
quelle
In OpenedFilesView gibt es im Menü Optionen einen Menüpunkt mit dem Namen "Netzwerkdateien anzeigen". Wenn dies aktiviert ist, ist das oben genannte Dienstprogramm möglicherweise von Nutzen.
quelle