Как просмотреть, кто пользуется общими ресурсами компьютера (шары)

Периодически возникает срочная необходимость узнать, кто и зачем открыл тот или иной файл на компьютере с общим доступом. Это легко осуществить, воспользовавшись консолью «Управление компьютером».
Открываем Консоль управления компьютером
Находим значок «Мой компьютер» (как в меню Пуск, так и на рабочем столе), и нажимаем на нем правой кнопкой мыши. В появившемся меню нажимаем «Управление».

В открывшейся консоли, а точнее в её левой части, ищем пункт «Общие папки», и нажимаем на него.

Так же в эту консоль можно попасть выполнив следующую команду, или создав ярлык:
Просмотр пользователей шары
Теперь перед нами появляются три пункта:

- Общие ресурсы — список всех расшаренных с компьютера ресурсов, к которым есть общий доступ.

- Сеансы — список сеансов пользователей, которые пользуются расшаренными ресурсами.

- Открытые файлы — список файлов, которые открыты через общий доступ.

Как узнать кто открыл файл по сети
Есть файл с общим доступом. Файл находится на общем сетевом жёстком диске. С этим файлом постоянно работают много человек.
1. Необходимо выяснить, открыт ли у в настоящее время у кого-нибудь из сотрудников данный файл.
2. Желательно выяснить, у кого именно открыт.
В случае, если файл не с общим доступом, то всё просто — он выводит табличку, что файл открыт конкретным пользователем. А вот если включён общий доступ — то ничего не сообщает. Более того, файл спокойно поддаётся переименованию, а также перемещению в другую папку, и сообщение о том, что файл занят каким-то процессом — не выводится. Через журнал изменений можно лишь выяснить, кем и когда файл был открыт (если при этом пользователь сохранял файл) и кем и когда было сделано последнее изменение. При этом кем сейчас он используется — не ясно.
Нужно это знать для того, чтобы внести изменения, которые невозможны при включённом общем доступе, и вот для этого нужно его отключить, но лишь в тот момент, когда файл никем не используется (ибо пользователи не смогут сохранить их изменения, если им отрубить общий доступ).
P.s. Доступа к администрированию сетевого ресурса (управление компьютером) нет.
Есть файл с общим доступом. Файл находится на общем сетевом жёстком диске. С этим файлом постоянно работают много человек.
1. Необходимо выяснить, открыт ли у в настоящее время у кого-нибудь из сотрудников данный файл.
2. Желательно выяснить, у кого именно открыт.
В случае, если файл не с общим доступом, то всё просто — он выводит табличку, что файл открыт конкретным пользователем. А вот если включён общий доступ — то ничего не сообщает. Более того, файл спокойно поддаётся переименованию, а также перемещению в другую папку, и сообщение о том, что файл занят каким-то процессом — не выводится. Через журнал изменений можно лишь выяснить, кем и когда файл был открыт (если при этом пользователь сохранял файл) и кем и когда было сделано последнее изменение. При этом кем сейчас он используется — не ясно.
Нужно это знать для того, чтобы внести изменения, которые невозможны при включённом общем доступе, и вот для этого нужно его отключить, но лишь в тот момент, когда файл никем не используется (ибо пользователи не смогут сохранить их изменения, если им отрубить общий доступ).
P.s. Доступа к администрированию сетевого ресурса (управление компьютером) нет. Aleksio
Сообщение Есть файл с общим доступом. Файл находится на общем сетевом жёстком диске. С этим файлом постоянно работают много человек.
1. Необходимо выяснить, открыт ли у в настоящее время у кого-нибудь из сотрудников данный файл.
2. Желательно выяснить, у кого именно открыт.
В случае, если файл не с общим доступом, то всё просто — он выводит табличку, что файл открыт конкретным пользователем. А вот если включён общий доступ — то ничего не сообщает. Более того, файл спокойно поддаётся переименованию, а также перемещению в другую папку, и сообщение о том, что файл занят каким-то процессом — не выводится. Через журнал изменений можно лишь выяснить, кем и когда файл был открыт (если при этом пользователь сохранял файл) и кем и когда было сделано последнее изменение. При этом кем сейчас он используется — не ясно.
Нужно это знать для того, чтобы внести изменения, которые невозможны при включённом общем доступе, и вот для этого нужно его отключить, но лишь в тот момент, когда файл никем не используется (ибо пользователи не смогут сохранить их изменения, если им отрубить общий доступ).
Управление открытыми файлами на файловом сервере Windows (SMB)
27.07.2021
itpro
Windows 10, Windows Server 2012 R2, Windows Server 2016
комментарий 51
Если вы администрируете общие сетевые папки Windows, скорее всего вы периодически сталкиваетесь с просьбами пользователей принудительно закрыть файлы, открытые (заблокированные) в сетевых папках другими пользователями. Обычно это связано с некорректной работой программы, неправильном завершении сессии пользователя или ситуациях, когда пользователь открыл файл и забыл закрыть его (ушел домой, в отпуск и т.д.). Во всех этих случаях файл в сетевой папке оказывается заблокированным, и другие пользователи не могут вносить в него изменения.
В этой статье мы покажем, как получить список открытых файлов на файловом сервере Windows, узнать какие пользователи их используют, и способы сброса файловых сессий для разблокировки открытых файлов.
Вывод списка открытых файлов в сетевой папке Windows
Список открытых по сети файлов в Windows можно получить с помощью стандартной графической консоли Computer Management (Управление компьютером — compmgmt.msc ).
Запустите на файловом сервере консоль Computer Management (или подключитесь к нему консолью удаленно со своего компьютера) и перейдите в раздел System Tools -> Shared Folders -> Open files (Служебные программы -> Общие папки -> Открыты файлы). В правой части окна отображается список файлов на сервере, открытых удаленно. В данном списке указан локальный путь к файлу, имя учетной записи пользователя, количество блокировок и режим, в котором открыт файл (Read или Write+Read).

Этот же список открытых файлов можно получит с помощью встроенной консольной утилиты Openfiles. Например, с помощью следующей команды можно получить id сессии, имя пользователя и полный локальный путь к открытому файлу:
Openfiles /Query /fo csv |more

Вы можете вывести список открытых файлов на сервере удаленно. Например, чтобы вывести все открытые по сети файлы на сервере mskfs01, выполните:
Openfiles /Query /s mskfs01 /fo csv
Определяем пользователя, который открыл файл в сетевой папке с помощью Openfiles
Чтобы удаленно определить пользователя, который открыл (заблокировал) файл cons.adm в сетевой папке на сервере mskfs01, выполните команду:
Openfiles /Query /s mskfs01 /fo csv | find /i «cons.adm»
Можно указать только часть имени файла. Например, чтобы узнать, кто открыл xlsx файл, в имени которого есть строка farm, воспользуйтесь таким конвейером:
Openfiles /Query /s mskfs01 /fo csv | find /i «farm»| find /i «xlsx»
Можно, конечно найти открытый файл и в графической консоли Computer Management, но это менее удобно (в консоли нет возможности поиска).
Как принудительно закрыть открытый файл в Windows?
Чтобы закрыть открытый файл, нужно найти его в списке файлов секции Open Files и в контекстном меню выбрать пункт “Close Open File”.

Если на файловом сервере сотни открытых файлов, найти их в консоли будет непросто. Удобнее воспользоваться утилитой Openfiles. Как мы уже говорили, она возвращает ID сессии открытого файла. Вы можете принудительно закрыть файл и сбросить подключение пользователя по ID SMB сессии. Сначала нужно определить ID сессии открытого файла:
Openfiles /Query /s mskfs01 /fo csv | find /i «farm»| find /i «.xlsx»
Теперь можно принудительно отключить пользователя по полученному идентификатору SMB сессии:
Openfiles /Disconnect /s mskfs01 /ID 67109098

Можно принудительно сбросить все сессии и освободить все файлы, открытые определённым пользователем:
openfiles /disconnect /s mskfs01 /u corp\aivanova /id *
Get-SMBOpenFile: вывод списка открытых по сети файлов в PowerShell
В версии PowerShell в Windows Server 2012/Windows 8 появились командлеты для управления сетевыми файлами и папками на SMB сервере. Эти командлеты можно использовать чтобы удаленно закрыть открытые по сети файлы.
Список открытых файлов можно получить с помощью командлета Get-SMBOpenFile. Чтобы закрыть файл (сбросить подключение), используется Close-SmbOpenFile.
Для вывода полного списка открытых файлов на сервере, выполните команду:

Команда возвращает ID файла, ID сессии и полное имя файла.
Можно вывести список открытых файлов с именами пользователей и компьютеров (IP адресами):

Можно вывести все файлы, открытые определенным пользователем:
Get-SMBOpenFile –ClientUserName «corp\aaivanov» |select ClientComputerName,Path
или с определенного компьютера (сервера):
Get-SMBOpenFile –ClientComputerName 192.168.12.170| select ClientUserName,Path
Можно вывести список открытых файлов по шаблону. Например, все открытые по сети exe файлы:
или файлы с определенным именем:
Чтобы закрыть файл используется командлет Close-SmbOpenFile . Закрыть файл можно по ID:
Close-SmbOpenFile -FileId 4123426323239
Но обычно удобнее закрыть файл по имени:
Get-SmbOpenFile | where <$_.Path –like "*prog.xlsx">| Close-SmbOpenFile -Force
С помощью Out-GridView можно сделать простую графическую форму для поиска и закрытия файлов. Следующий скрипт выведет список открытых файлов. Администратор должен с помощью фильтров в таблице Out-GridView найти, выделить нужные файлы и нажать ОК. В результате выбранные файлы будут принудительно закрыты.
Get-SmbOpenFile|select ClientUserName,ClientComputerName,Path,SessionID| Out-GridView -PassThru –title “Select Open Files”|Close-SmbOpenFile -Confirm:$false -Verbose

Как удаленно закрыть открытые SMB файлы с помощью PowerShell?
Командлеты Get-SMBOpenFile и Close-SmbOpenFile можно использовать чтобы удаленно найти и закрыть открытые файлы. Сначала нужно подключиться к удаленному SMB серверу Windows через CIM сессию:
$sessn = New-CIMSession –Computername mskfs01
Следующая команда найдет SMB сессию для открытого файла *pubs.docx и завершит ее.
Get-SMBOpenFile -CIMSession $sessn | where <$_.Path –like "*pubs.docx">| Close-SMBOpenFile -CIMSession $sessn
Подтвердите закрытие файла, нажав Y . В результате вы разблокировали открытый файл. Теперь его могут открыть другие пользователи.

С помощью PowerShell вы можете закрыть и разблокировать на файловом сервере все файлы, открытые определенным пользователем (пользователь ушел домой и не освободил файлы). Например, чтобы сбросить все файловые сессии для пользователя ipivanov, выполните:
Get-SMBOpenFile -CIMSession $sessn | where <$_.ClientUserName –like "*ipivanov*">|Close-SMBOpenFile -CIMSession $sessn
Предыдущая статья Следующая статья
Как узнать кто использует файл в сети?
Выделяете в проводнике проблемный файл, выбираете команду Unlocker и в появившемся окне видно какой процесс заблокировал файл. Кнопка Unblock разблокирует файл и можно его будет спокойно удалить.
Как узнать кто сидит в сетевой папке?
Зайдите в «Управление компьютером» и выберите «Системные инструменты»> «Общие папки» >> «Сессии», чтобы узнать, кто подключен.
Как узнать в какой программе открыта папка или файл?
- Пуск —> в строке поиска набираем монитор ресурсов —> Enter —> переходим на вкладку ЦП
- Вводим в поиск имя файла/папки (в примере — папка recovery).
Как разблокировать доступ к файлу?
- Нажмите на вкладку «Общие» в окне «Свойства».
- Нажмите «Разблокировать» рядом с элементом «Безопасность», который гласит: «Этот файл пришел с другого компьютера и может быть заблокирован для защиты этого компьютера».
Как узнать что блокирует программу?
Альтернатива — зайти в панель конфигурации Брандмауэра (Панель управления — Брандмауэр Windows), перейти на вкладку Исключения и посмотреть, установлена ли галочка Отображать уведомление. . Если она установлена, при блокировке программы брандмауэром появится соответствующее сообщение.
Как закрыть файл открытый другим пользователем?
В правой части оснастки появится список открытых файлов. Здесь можно увидеть имя пользователя открывшего файл, количество блокировок и режим доступа к файлу. Закрываем файл. Чтобы закрыть сетевой файл открытый другим пользователем находим его в списке и в контекстном меню выбираем пункт «Закрыть открытый файл«.
Как закрыть все открытые файлы?
Чтобы отключить несколько файлов или папок одновременно, щелкните имена нужных файлов или папок, удерживая нажатой клавишу CTRL, а затем щелкните любой из выделенных файлов или папок правой кнопкой мыши и выберите команду Закрыть открытые файлы. Выделенные файлы и папки будут закрыты.
Как посмотреть кто подключен к компьютеру по сети?
Зайдите в Управление компьютером:
В разделе Общие папки откройте раздел Сеансы: Вы увидите список активных подключений к вашему компьютеру. Здесь можно увидеть, какой пользователь подключился, с какого компьютера установлено подключение, просмотреть активность пользователя (колонка Время простоя).
Как узнать кто заходил на компьютер по сети?
Для просмотра этих событий, откройте «Просмотр событий». Для этого в окне поиска введите «Просмотр событий» и нажмите Enter. Пройдите в Журналы Windows -> Безопасность. Ищите события с кодом 4624-4625 – это события с успешным входом в систему.
Как в аудите посмотреть папки?
Для этого необходимо открыть свойства файла или папки, перейти на вкладку “Безопасность”, нажать “Дополнительно” и “Аудит”.