Pliki otwarte na zdalnym komputerze – NET FILE, OPENFILES.exe, czy PSFILE.exe?
Dzisiaj omówimy możliwość zdalnego listowania i zamykania otwartych plików – skupimy się jednak na Wierszu Poleceń. Choć podejrzenie i/lub zamknięcie plików na zdalnej maszynie poprzez przystawkę „Computer Management” (zarządzanie komputerem) jest bardzo proste i mamy też X przeróżnych programów działających w środowisku okienkowym, to nieraz może nas irytować na przykład czas trwania tej operacji przy słabym łączu. Wiersz poleceń przyda się również, gdy często jesteśmy proszeniu o zamknięcie sesji tego samego pliku (na przykład, gdy kilka razy w tygodniu pani Krysia z działu personalnego skarży się, że plik „osoby_do_zwolnienia.doc jest zablokowany przez kogoś innego..” ). Odpowiednio przygotowany skrypt .bat wykona to zadanie w kilka sekund.
Czego użyjemy do listowania plików i ich zamykania? Dzisiaj zaproponuję Wam 3 opcje, z których Wy wybierzecie sobie najlepszą – ja podam Wam wady i zalety, a także podstawowe flagi.
NET FILE – funkcjonalność i ograniczenia
NET FILE służy do listowania i zamykania plików otwartych na lokalnym komputerze. Zamykanie odbywa się po ID pliku. NET FILE pokazuje sesje do plików, które znajdują się na tym komputerze – które ktoś otworzył z innego komputera, ale nie pokazuje plików, które otworzono lokalnie – będąc na nim zalogowanym. Nie ma też przełącznika służącego do łączenia się ze zdalnym komputerem.
NET FILE – dostępność
Polecenie NET FILE występuje w Windowsach od bardzo dawna i znajdziemy go nawet w nowych Windows 8 i Windows 2012 – nie trzeba więc nic dodatkowego doinstalować.
NET FILE – przykłady użycia
Samo polecenie NET FILE ( bez flag), wyświetli nam listę plików otwartych na tej maszynie z innych komputerów. Dane prezentowane są w kolejności: identyfikator pliku, ścieżka, nazwa użytkownika, liczba blokad
Zamknięcie pliku wykonamy podając jego ID np:
net file 603980501 /close
Na tym kończy się funkcjonalność NET FILE.
OPENFILES.exe – funkcjonalność i ograniczenia
Ten program służy do listowania i zamykania plików otwartych na lokalnym komputerze. Zamykanie odbywa się po ID pliku, nazwie i kilku innych możliwych kryteriach.
Występuje tu przełącznik do łączenia się z komputerem zdalnym, tak samo jak do formatowania wyświetlonych danych, czy zmiany kontekstu użytkownika. Kilka przykładów podałem niżej.
OPENFILES pokazuje sesje do plików, które znajdują się na tym komputerze – które ktoś otworzył z innego komputera, ale umie też pokazać pliki, które otworzono na nim lokalnie – tylko, że w efekcie zobaczymy zamiast nazw plików i ścieżek do nich – nazwę aplikacji/procesu i ścieżki w niezbyt czytelnej formie.. .
Oto mały fragmencik:
508 explorer.exe C:\..4ccf1df_6.0.7601.17514_none_fa396087175ac9ac
572 explorer.exe C:\..4ccf1df_6.0.7601.17514_none_fa396087175ac9ac
604 explorer.exe C:\..4ccf1df_6.0.7601.17514_none_fa396087175ac9ac
660 explorer.exe C:\Windows\Fonts\StaticCache.dat
668 explorer.exe C:\..ccf1df_6.0.7600.16385_pl-pl_0fb7e7c8b1d41e9e
Tę funkcjonalność należy najpierw aktywować poleceniem:
Openfiles.exe /local on
Adekwatnie, wyłączenie tej opcji odbędzie się za pomocą:
Openfiles.exe /local off
Po wykonaniu którejś z tych komend musimy zrestartować naszą maszynę.
Aktywowanie tej funkcji znacznie wydłuża czas wyświetlania listy otwartych plików – zwłaszcza, jeśli lokalnie otwiera się znaczną liczbę plików. Osobiście nie korzystam z tego rozwiązania.
OPENFILES.exe – dostępność
Program OPENFILES.exe jest natywnie wbudowany w Windowsy od czasów XP / Windows Serwer 2003 i występuje do dziś.
OPENFILES.exe – lista otwartych plików
Poleceniem służącym do obejrzenia listy plików jest
openfiles.exe /query
Jak pewnie zauważycie, samo „openfiles” zrobi dokładnie to samo :)
Dane prezentowane są w formie: ID, nazwa użytkownika, typ, ścieżka. W oknie znajdziemy dwie listy: pliki otwarte lokalnie i zdalnie. Tak jak wyżej pisałem, pokazywanie plików otwartych lokalnie należy najpierw aktywować.
Aby wylistować pliki na zdalnej maszynie (zwróćcie uwagę, że przed nazwą komputera nie ma ukośników):
openfiles.exe /query /s komputer_zdalny
Jak zawsze w CMD istnieje możliwość filtrowania wyników prostym „findstr”. Tu znajdziemy plik lub pliki których nazwa zawiera fragment „zwolnienia.docx”.
openfiles.exe /query /s komputer_zdalny | findstr „zwolnienia.docx”
Opcjonalnie możemy wykonać to polecenie na poświadczeniach dowolnego użytkownika:
openfiles.exe /query /u (domena\)użytkownik /haslo
Format prezentowania danych możemy zmienić używając przełączników:
/FO table (domyślny taki jak na obrazku)
/FO csv (wszystkie informacje są oddzielone przecinkami
/FO LIST (wszystkie informacje są wyświetlone w osobnej linii)
OPENFILES.exe – zamykanie otwartych plików
Za pomocą OPENFILES.exe można zamknąć otwarte pliki. Podam kilka przykładów, a wszystkie opcje możecie podejrzeć sobie jak zawsze z przełącznikiem /?.
Zamknięcie pliku o konkretnym ID:
openfiles.exe /disconnect /ID 123456
Zamknięcie wszystkich plików otworzonych przez konkretnego użytkownika:
openfiles.exe /disconnect /A nazwa_użytkownika_używającego_plik
Zamknięcie konkretnego pliku po nazwie:
openfiles.exe /disconnect /A * /OP „ścieżka\nazwa_pliku”
Można używać symbolu * dla filtrowania fragmentów nazwy pliku. Uwaga! /OP trzeba użyć wraz z parametrem /A lub O. Te wartości też można zastąpić znakiem *.
PSFILE.EXE – funkcjonalność i ograniczenia
Alternatywą dla NET FILES i OPENFILES.exe jest programik z pakietu PSTOOLS – psfiles.exe. Narzędzie to pozwala listować pliki otwarte zdalnie na lokalnym lub zdalnym komputerze. Pozwala też zamykać sesje do plików po ID, nazwie, ścieżce lub ich fragmencie. Nie pozwala jednak zamknąć plików otwartych przez danego użytkownika – i tutaj OPENFILES.exe wygrywa :)
Sposób prezentacji danych jest według mnie mniej przejrzysty niż oferują pozostałe programy. Oczywiście po przekierowaniu wyniku z CMD do pliku, można te dane dowolnie obrabiać :)
PSFILE.EXE – dostępność
Program, jako jedyny z 3 wymienionych trzeba sobie doinstalować (konkretnie wkopiować – to zwykły plik .exe). Występuje on w pakiecie i można go ściągnąć z tej lokalizacji: http://download.sysinternals.com/files/PSTools.zip.
PSFILE.EXE– zamykanie otwartych plików
Zamknięcie pliku o konkretnym ID na maszynie lokalnej:
psfile.exe 1234567 -c
Zamkniecie konkretnego pliku po jego nazwie i ścieżce:
psfile.exe ścieżka\plik -c
Możemy użyć znaku * dla zastąpienia ciągu znaków.
Zamknięcie pliku o konkretnym ID na maszynie zdalnej:
psfile.exe \\nazwa_komputera 1234567 -c
Opcjonalnie, podobnie jak w innych programach PSTOOLS, możemy podać użytkownika i hasło (na którym wykona się to polecenie) – służą do tego parametry -u–p
Z podanych trzech propozycji musicie sobie wybrać swoją ulubioną. Ja, mimo, że jestem wielkim fanem PSTOOLS korzystam z OPENFILES.exe, bo bardzo przydaje się możliwość zamykania plików danego użytkownika. A Wy, co sądzicie?
Podobne Tematy:
-
Szymon Biedrzycki
-
Mirek
-
Mirek
-
Mirek
-
Mirek