Administratorzy serwerów plików Windows często zmuszają użytkowników do zamykania plików otwieranych przez użytkowników. Taki problem powstaje, gdy kilku użytkowników pracuje jednocześnie z jednym plikiem. Często, jeśli oprogramowanie nie działa poprawnie lub użytkownik poprawnie kończy sesję, pliki w folderze sieciowym są otwierane i blokowane, a inni użytkownicy nie mogą wprowadzać w nim zmian. W tym artykule pokażemy, jak uzyskać listę otwartych plików na serwerze plików, dowiedzieć się, którzy użytkownicy ich używają i jak zresetować te sesje plików..
Treść
- Wyświetl listę otwartych plików na serwerze plików Windows
- Jak ustalić, który użytkownik otworzył plik
- Jak zamknąć otwarty plik
- Jak zdalnie zamykać otwarte pliki za pomocą PowerShell
Wyświetl listę otwartych plików na serwerze plików Windows
Listę plików otwieranych przez użytkowników na serwerze plików Windows można uzyskać za pomocą standardowej konsoli graficznej Zarządzanie komputerem (Zarządzanie komputerem - compmgmt.msc).
Uruchom konsolę Zarządzanie komputerem na serwerze plików (lub połącz się z nią zdalnie za pomocą konsoli z komputera) i przejdź do sekcji Narzędzia systemowe -> Udostępnione foldery -> Otwórz pliki (Narzędzia -> Foldery udostępnione -> Pliki otwarte). Prawa strona okna wyświetla listę plików serwera otwartych zdalnie. Lista zawiera lokalną ścieżkę do pliku, nazwę konta użytkownika, liczbę blokad i tryb, w którym plik jest otwarty (odczyt lub zapis + odczyt).
Tę samą listę otwartych plików można uzyskać za pomocą wbudowanego narzędzia konsoli Pliki otwarte. Na przykład za pomocą następującego polecenia można uzyskać identyfikator sesji, nazwę użytkownika i pełną ścieżkę lokalną do otwartego pliku:
Openfiles / Query / fo csv | więcej
To samo polecenie można wykonać zdalnie, na przykład potrzebujesz listy otwartych plików na serwerze plików mskfs01:
Openfiles / Query / s mskfs01 / fo csv
openfiles / local on
i zrestartuj serwer. Następnie pliki otwierane przez procesy lokalne zaczną się pojawiać na liście (zaleca się stosowanie tego trybu tylko do debugowania, ponieważ może to negatywnie wpłynąć na wydajność serwera).Jak ustalić, który użytkownik otworzył plik
Aby zidentyfikować użytkownika, który otworzył (zablokował) plik cons.adm na serwerze uruchom polecenie:
Openfiles / Query / s mskfs01 / fo csv | find / i „cons.adm”
Oczywiście możesz podać tylko część nazwy pliku. Na przykład musimy dowiedzieć się, kto otworzył plik xlsx, którego nazwa to farma liniowa, używamy tego potoku:
Openfiles / Query / s mskfs01 / fo csv | znajdź / i „farma” | znajdź / i „xlsx”
Możesz oczywiście znaleźć plik w konsoli graficznej zarządzania komputerem, ale jest to mniej wygodne (konsola nie zapewnia możliwości wyszukiwania).
Jak zamknąć otwarty plik
Aby zamknąć otwarty plik, musisz go znaleźć na liście plików w sekcji Otwórz plik i wybrać „Zamknij otwarty plik„.
Jeśli na serwerze plików znajdują się setki otwartych plików, znalezienie ich w konsoli nie będzie łatwe. Wygodniej jest korzystać z narzędzia Pliki otwarte. Jak już powiedzieliśmy, zwraca identyfikator sesji otwartego pliku. W przypadku tego identyfikatora sesji plik można przymusowo zamknąć, resetując połączenie. Znajdź identyfikator żądanego pliku:
Openfiles / Query / s mskfs01 / fo csv | znajdź / i „farma” | znajdź / i „.xlsx”
Odłączamy od niego użytkownika za pomocą otrzymanego identyfikatora:
Openfiles / Disconnect / s mskfs01 / ID 67109098
Jak zdalnie zamykać otwarte pliki za pomocą PowerShell
W Windows Server 2012 / Windows 8 PowerShell wprowadził cmdlety do pracy z piłkami i plikami na serwerze SMB. Tych poleceń cmdlet można używać do zdalnego resetowania połączeń z otwartym plikiem..
Listę otwartych plików można uzyskać za pomocą polecenia cmdlet Get.-SMBOpenFile , i zamknij plik (zresetuj połączenie) za pomocą Close-SmbOpenFile.
Łączymy się ze zdalnym serwerem:
$ sessn = New-CIMSession -Computername mskfs01
Znajdź i zamknij otwarty plik pubs.docx za pomocą jednego polecenia:
Get-SMBOpenFile -CIMSession $ sessn | gdzie $ _. Ścieżka "* pubs.docx" | Zamknij-SMBOpenFile -CIMSession $ sessn
Potwierdź zamknięcie pliku, naciskając Y.
Aby usunąć potwierdzenie wymuszonego zamknięcia pliku na serwerze, użyj przełącznika -ForceTych samych poleceń można użyć, na przykład, do zamknięcia wszystkich plików otwartych przez niektórych użytkowników (użytkownik poszedł do domu i nie wydał plików). Na przykład, aby zresetować wszystkie sesje plików dla ipivanov, wykonaj
Get-SMBOpenFile -CIMSession $ sessn | gdzie $ _. ClientUserName "* ipivanov *" | Zamknij-SMBOpenFile -CIMSession $ sessn