Dowiedz się, kto blokuje plik w udziale sieciowym

141

Chcę wiedzieć, kto blokuje plik w udziale sieciowym.

Oto problem: udział sieciowy znajduje się na serwerze NAS, więc nie mogę się zalogować. Potrzebuję narzędzia, aby dowiedzieć się zdalnie, kto blokuje plik. Ponowne uruchamianie serwera NAS za każdym razem nie jest praktyczne, ponieważ jest kilku użytkowników.

Handle.exe , Process Explorer i PsFile wydają się być ograniczone do plików na komputerze lokalnym, więc nie działają dla mnie.

olorin
źródło

Odpowiedzi:

172

Na wypadek, gdyby ktoś szukał rozwiązania tego problemu dla systemu Windows lub NAS:

W systemie Windows jest wbudowana funkcja, która pokazuje, które pliki na komputerze lokalnym są otwierane / blokowane przez komputer zdalny (który ma plik otwarty przez udział plików):

  • Wybierz „Zarządzaj komputerem” (otwórz „Zarządzanie komputerem”)
  • kliknij „Shared Folders”
  • wybierz „Otwórz pliki”

Tam możesz nawet zamknąć plik na siłę.

Dirk Paessler
źródło
10
Możesz nawet użyć akcji -> Połącz się z innym komputerem do pliku na serwerze NAS, a nawet działa z naszym NAT opartym na Linuksie! Dlaczego nie spróbowałem tego wcześniej?
olorin
20
W systemie Windows 2008 R2 przejdź do Menedżer serwera> Role> Usługi plików> Zarządzanie udostępnianiem i przechowywaniem> kliknij prawym przyciskiem myszy SaSM> Zarządzaj otwartymi plikami.
Jason Pearce
Po prostu otwórz konsolę MMC i dodaj przystawkę Shared Folders. Możesz łączyć się ze zdalnymi systemami.
nizx
2
W przypadku udziału domeny to nie zadziałało. Sformułowanie wydaje się sugerować pliki znajdujące się w udziałach sieciowych.
kevinf
1
Użyłem do tego aplikacji o nazwie Unlocker (plik znajdował się na NAS). Aplikacja jest tutaj: filehippo.com/download_unlocker/tech i działała dla mnie, ale nie mogę ręczyć za tę aplikację
Dan
58

Na serwerach Windows 2008 R2 masz dwa sposoby przeglądania otwartych plików i zamykania tych połączeń.

Zarządzanie udziałami i pamięcią masową

Menedżer serwera> Role> Usługi plików> Zarządzanie udostępnianiem i przechowywaniem> kliknij prawym przyciskiem myszy SaSM> Zarządzaj otwartym plikiem

Przez OpenFiles

CMD> Openfiles.exe / query / s NAZWA SERWERA

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

Jason Pearce
źródło
2
Świetna odpowiedź. Nie wiedziałem o Openfiles; działa znacznie lepiej niż używanie psexec lub podobnych narzędzi do obsługi zdalnej.
twasbrillig,
@ twasbrillig ok, ale jeśli jest to NAS, a nie oparty na systemie Windows! C: \> Openfiles.exe / query / s 10.0.0.1 <ENTER> BŁĄD: W systemie docelowym musi działać system Windows XP lub nowszy.
barlop
Warto zauważyć, że węzły „Role” itp. Rozszerzają się z opóźnieniem.
SerG
Dzięki za to, openfiles.exe działa również w systemie Windows Server 2012 R2. Nie mogłem znaleźć innych dobrych przewodników, jak wyświetlić listę otwartych plików z serwera 2012, ale to załatwiło sprawę.
Oldskool
Niezłe polecenie CMD, dzięki za udostępnienie! Windows 10 Enterprise jest dostarczany z Openfiles.exe zaraz po wyjęciu z pudełka.
Leo Gurdian
25

PsFile działa na zdalnych maszynach. Jeśli moje konto logowania ma już dostęp do udziału zdalnego, mogę po prostu wpisać:

psfile \\remote-share

(zamień „zdalny udział” na nazwę twojego serwera plików), a wyświetli listę wszystkich otwartych dokumentów w tym udziale, wraz z informacją o tym, kto je otworzył, oraz ID pliku, jeśli chcę wymusić zamknięcie pliku. Dla mnie jest to naprawdę długa lista, ale można ją zawęzić, wpisując część ścieżki:

psfile \\remote-share I:\\Human_Resources

Jest to trochę trudne, ponieważ w moim przypadku ten zdalny udział jest zamontowany jako Z: na mojej lokalnej maszynie, ale psfile identyfikuje ścieżki tak, jak są one zdefiniowane na zdalnym serwerze plików, którym w moim przypadku jest I: (twój będzie inny) . Musiałem tylko przeczesać wyniki mojego pierwszego uruchomienia pliku psfile, aby zobaczyć niektóre ścieżki, które zwrócił, a następnie uruchomić go ponownie z częściową ścieżką, aby zawęzić wyniki.

Opcjonalnie PsFile pozwoli ci określić poświadczenia dla udziału zdalnego, jeśli musisz je podać w celu uzyskania dostępu.

Na koniec mało znana wskazówka: jeśli ktoś kliknie plik w Eksploratorze Windows i wycina lub kopiuje plik z zamiarem wklejenia go w innym miejscu, powoduje to również blokadę pliku.

Baodad
źródło
czy ma być podwójne \ s?
PsychoData
@PsychoData, minęło trochę czasu, odkąd to opublikowałem. Mam nadzieję, że to co zamieściłem jest poprawne. Znak \\ przed częścią udziału zdalnego wygląda dobrze, ale \\ w I: \\ Human_Resources wygląda dziwnie. Mimo to myślę, że miałem ku temu powód, kiedy pisałem. Wypróbuj i daj mi znać.
Baodad
14

Jeśli jest to po prostu przypadek poznania / zobaczenia, kto jest w pliku w danym momencie (i jeśli używasz okien), po prostu wybierz „widok” pliku jako „szczegóły”, tj. Zamiast miniatur, kafelków lub ikon itp. Raz w widoku „szczegóły” zostaniesz domyślnie wyświetlony; - Nazwa pliku - Rozmiar - Typ i - Data modyfikacji

Wszystko, co musisz teraz zrobić, to kliknąć prawym przyciskiem myszy w dowolnym miejscu wspomnianego paska narzędzi (nazwa pliku, rozmiar, typ itp.), A otrzymasz listę innych opcji, które może wyświetlić pasek narzędzi.

Wybierz „Właściciel”, a nowa kolumna pokaże nazwę użytkownika osoby używającej pliku lub osoby, która go pierwotnie utworzyła, jeśli nikt inny go nie używa.

Może to być szczególnie przydatne podczas korzystania ze współdzielonej bazy danych MS Access.

Jones
źródło
4
W moim przypadku nie udało się. Dodam kolumnę i widzę siebie jako twórcę udostępnionego pliku w zdalnym zasobie, ale zostałem już zablokowany przez współpracownika.
David Oliván Ubieto
5
To naprawdę działa dobrze tylko wtedy, gdy program, w którym się znajdują, tworzy plik blokujący (taki jak MS Access), który będzie własnością tego, kto go używa, a nie oryginalnego twórcy pliku
PsychoData
1
Aby zapisać dodawanie kolumny, możesz zobaczyć te same informacje, przeglądając właściwości pliku i patrząc na kartę Szczegóły.
Malvineous
Działa to naprawdę dobrze w przypadku plików takich jak MS Word.
Tridus
5

Sesje są obsługiwane przez urządzenie NAS. To, o co prosisz, zależy od urządzenia NAS i nie ma nic wspólnego z oknami. Musisz zajrzeć do oprogramowania sprzętowego NAS, aby zobaczyć, co obsługuje. Jedynym innym sposobem jest węszenie pakietów i samodzielne rozwiązanie.


źródło
Cóż, to dobra odpowiedź ze zdrowym rozsądkiem. Niestety ten serwer NAS nie oferuje takiej funkcjonalności.
olorin
5

Częściowa odpowiedź: dzięki Process Explorer możesz przeglądać uchwyty udziału sieciowego otwieranego z twojego komputera .

Użyj menu „Znajdź uchwyt”, a następnie wpisz taką ścieżkę

\Device\LanmanRedirector\server\share\
olorin
źródło
2

wygląda na to, że masz ten sam problem, który próbowałem tutaj rozwiązać . w moim przypadku jest to serwer plików Linuksa (z uruchomioną oczywiście Sambą), więc mogę się zalogować i zobaczyć, jaki proces blokuje plik; niestety nie udało mi się go zamknąć bez zabijania odpowiedzialnej sesji. AFAICT, klient Windows „myśli”, że jest zamknięty; ale nie zawracał sobie głowy informowaniem serwera plików.

Javier
źródło
Brzmi prawdopodobne: o ile wiem, nasz NAS używał niestandardowej dystrybucji Linuksa.
olorin
1

Zamknij plik e:\gestion\yourfile.dat, otwórz przez dowolnego użytkownika ( /a *)

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

więcej na: http://dosprompt.info/commands/openfiles.asp

R. Alonso
źródło