Jednym z moich ulubionych narzędzi dla Linuksa jest lsof - prawdziwy szwajcarski scyzoryk!
Dzisiaj zacząłem się zastanawiać, które programy w systemie WinXP mają otwarty określony plik. Czy istnieje równoważne narzędzie do lsof? Dodatkowo plik, o którym mowa, znajdował się w udziale sieciowym, więc nie jestem pewien, czy to komplikuje sprawę.
windows
linux
command-line
filesystems
Daniel Fone
źródło
źródło
Odpowiednikiem
lsof -p pid
jest połączone wyjście z uchwytu sysinternals i listdlls, tjmożesz dowiedzieć się pid z sysinternals
pslist
.źródło
Spróbuj Handle . Filemon i Regmon są również świetne do próbowania dowiedzieć się, co program duce foo robi z twoim systemem.
źródło
Jeden odpowiednik lsof można połączyć wyjście z uchwytu Sysinternals i plików listdll , tj .:
Niestety, aby móc z nich korzystać, musisz "uruchomić jako Administrator".
Również listdll i uchwyt nie tworzą ciągłej postaci tabelarycznej, więc filtrowanie nazwy pliku mogłoby ukryć PID.
findstr /c:pid: /c:<filename>
powinien jednak zbliżyć Cię do obu narzędziTutaj widzimy, że gvim.exe jest tym, który ma otwarty ten plik.
źródło
Wypróbuj Unlocker .
Witryna Unlocker ma fajny wykres (przewiń w dół po kliknięciu linku), który pokazuje porównanie z innymi narzędziami. Oczywiście takie porównania są zwykle nieobiektywne, ponieważ są zwykle pisane przez autora narzędzia, ale tabela przynajmniej wymienia alternatywy, abyś mógł je samemu wypróbować.
źródło
Jeśli plik jest plikiem .dll, możesz użyć aplikacji wiersza poleceń TaskList, aby sprawdzić, kto go otworzył:
źródło
Jest program „OpenFiles”, który wydaje się być częścią systemu Windows 7. Wygląda na to, że może robić, co chcesz. Może wyświetlać pliki otwierane przez użytkowników zdalnych (poprzez współdzielenie plików), a po wywołaniu „openfiles / Local on” i ponownym uruchomieniu systemu powinien być w stanie pokazać pliki otwarte lokalnie. Mówi się, że ten ostatni ma kary za wydajność.
źródło
Jeśli klikniesz prawym przyciskiem myszy ikonę „Komputer” (lub „Mój komputer”) i wybierzesz „Zarządzaj” z wyskakującego menu, przejdziesz do konsoli zarządzania komputerem.
Tam, w obszarze Narzędzia systemowe \ Foldery współdzielone, znajdziesz „Otwórz pliki”. Prawdopodobnie jest to bliskie temu, czego chcesz, ale jeśli plik znajduje się w udziale sieciowym, musisz zrobić to samo na serwerze, na którym znajduje się plik.
źródło
Użyj Process Explorer, aby znaleźć identyfikator procesu. Następnie użyj uchwytu aby dowiedzieć się, które pliki są otwarte.
Np. Uchwyt -p
Podoba mi się to podejście, ponieważ używasz narzędzi samego Microsoft.
źródło
W OpenedFilesView , w menu Opcje, znajduje się pozycja menu o nazwie „Pokaż pliki sieciowe”. Być może z włączoną tą funkcją wspomniane narzędzie jest do pewnego użytku.
źródło