Управление на отворени файлове на файлов сървър на Windows

Администраторите на файлови сървъри на Windows често трябва да принуждават потребителите да затварят файлове, отворени от потребителите. Такъв проблем възниква, когато няколко потребители работят едновременно с един файл. Често, ако софтуерът не работи правилно или потребителят завърши сесията правилно, файловете в мрежовата папка се отварят и заключват и други потребители не могат да правят промени в нея. В тази статия ще покажем как да получите списък с отворени файлове на файлов сървър, ще разберете кои потребители ги използват и как да нулирате тези файлови сесии..

Съдържание:

  • Списък на отворени файлове на файлов сървър на Windows
  • Как да определите кой потребител е отворил файла
  • Как да затворите отворен файл
  • Как дистанционно да затваряте отворени файлове с помощта на PowerShell

Списък на отворени файлове на файлов сървър на Windows

Списък на файлове, отворени от потребителите на файловия сървър на Windows, може да се получи с помощта на стандартната графична конзола Компютърно управление (Управление на компютъра - compmgmt.msc).

Стартирайте конзолата за управление на компютъра на файловия сървър (или се свържете към него отдалечено от конзолата от вашия компютър) и отидете на секцията Системни инструменти -> Споделени папки -> Отваряне на файлове (Помощни програми -> Споделени папки -> Файлове отворени). В дясната част на прозореца се показва списък на сървърни файлове, отворени от разстояние. Списъкът съдържа локалния път към файла, името на потребителския акаунт, броя заключвания и режима, в който файлът е отворен (четене или записване + четене).

Същият списък на отворени файлове може да се получи с помощта на вградената помощна конзола Openfiles. Например, използвайки следната команда, можете да получите идентификационния номер на сесията, потребителско име и пълен локален път до отворения файл:

Openfiles / Query / fo csv | повече

Когато потребител отдалечено осъществява достъп до папка или файл в мрежова папка (SMB) на сървъра, се създава нова сесия за потребителя, която определя тази връзка. Потребителските връзки се управляват чрез тези идентификатори на сесията..

Същата команда може да бъде изпълнена отдалечено, например, имате нужда от списък с отворени файлове на файловия сървър mskfs01:

Openfiles / Query / s mskfs01 / fo csv

Екипът на Openfiles има още една интересна възможност да видите списък на локално отворени файлове. За да го използвате, трябва да активирате опцията Поддържане на списъка с обекти с командата openfiles / local on и рестартирайте сървъра. След това файловете, отворени от локални процеси, ще започнат да влизат в списъка (този режим е препоръчително да се използва само за отстраняване на грешки, тъй като може да повлияе негативно на работата на сървъра).

Как да определите кой потребител е отворил файла

За идентифициране на потребителя, който е отворил (заключил) файл cons.adm на сървъра, изпълнете командата:

Openfiles / Query / s mskfs01 / fo csv | намери / i "cons.adm"

ключ / аз използва се за извършване на нечувствителни към регистъра търсения

Естествено, можете да посочите само част от името на файла. Например, трябва да разберем кой е отворил файла xlsx, чието име е линията ферма, използваме този тръбопровод:

Openfiles / Query / s mskfs01 / fo csv | намери / i "ферма" | намери / i "xlsx"

Разбира се, можете да намерите файла в графичната конзола за управление на компютъра, но това е по-малко удобно (конзолата не предоставя възможност за търсене).

Как да затворите отворен файл

За да затворите отворен файл, трябва да го намерите в списъка с файлове в секцията Open File и да изберете „Затворете отворен файл".

Ако на файловия сървър има стотици отворени файлове, намирането им в конзолата няма да е лесно. По-удобно е да използвате помощната програма Openfiles. Както вече казахме, той връща идентификационния номер на сесията на отворения файл. Именно за този идентификационен номер на сесията файлът може да бъде принудително затворен чрез нулиране на връзката. Намерете идентификационния номер на желания файл:

Openfiles / Query / s mskfs01 / fo csv | намери / i "ферма" | намери / i ".xlsx"

Ние изключваме потребителя от него чрез получения идентификатор:

Openfiles / Disconnect / s mskfs01 / ID 67109098

Как дистанционно да затваряте отворени файлове с помощта на PowerShell

В Windows Server 2012 / Windows 8 PowerShell представи командлети за работа с топки и файлове на SMB сървър. Тези командлети могат да се използват за отдалечено нулиране на връзки към отворен файл..

Списък с отворени файлове може да се получи с помощта на командлети Get.-SMBOpenFile , и затворете файла (нулирайте връзката) с Близък SmbOpenFile.

И така, ние се свързваме с отдалечения сървър:

$ sessn = New-CIMSession -Computername mskfs01

Намерете и затворете отворения файл pubs.docx с една команда:

Get-SMBOpenFile -CIMSession $ sessn | където $ _. Path -подобен "* pubs.docx" | Close-SMBOpenFile -CIMSession $ sessn

Потвърдете затварянето на файла, като натиснете Y.

За да премахнете потвърждението за принудително затваряне на файл на сървъра, използвайте превключвателя -Force

Същите команди могат да се използват, например, за затваряне на всички файлове, отворени от някой потребител (потребителят се прибра вкъщи и не пусна файловете). Например, за да нулирате всички файлови сесии за ipivanov, направете

Get-SMBOpenFile -CIMSession $ sessn | където $ _. ClientUserName -подобен "* ipivanov *" | Close-SMBOpenFile -CIMSession $ sessn