Администратор файлового сервера Windows может вывести список открытых файлов в общей сетевой папке и принудительно закрыть заблокированные файлы, открытые пользователями в монопольном режиме. Если пользователь открыт файл в общей сетевой SMB папке на сервере на чтение и запись и забыл его закрыть (ушел домой, в отпуск), другие пользователи не смогут внести изменения в файл.
В этой статье мы рассмотрим, как получить список открытых файлов на файловом сервере Windows и пользователей, которые их используют, а также способы сброса файловых сессий для разблокировки открытых файлов.
Содержание:
- Вывод списка открытых файлов в сетевой папке Windows
- Кто открыл файл в общей сетевой папке на сервере Windows?
- Принудительно закрыть открытый файл на сервере Windows
- Как удаленно закрыть открытые по сети файлы с помощью PowerShell?
Вывод списка открытых файлов в сетевой папке Windows
Список открытых по сети файлов в Windows можно получить с помощью графической консоли Computer Management (Управление компьютером).
- Откройте консоль
compmgmt.msc
и перейдите в раздел System Tools -> Shared Folders -> Open files (Служебные программы -> Общие папки -> Открыты файлы); - В правой части окна отображается список открытых файлов. Здесь указаны локальный путь к файлу, имя учетной записи пользователя, количество блокировок и режим, в котором открыт файл (Read или Write+Read).
Также вы можете вывести список открытых на сервере файлов из командной строки:
Openfiles /Query /fo csv
Команда возвращает номер сессии, имя пользователя, количество блокировок и полный путь к файлу.
Cо списком открытых файлов на сервере удобнее работать с помощью PowerShell командлета Get-SmbOpenFile:
Get-SmbOpenFile|select ClientUserName,ClientComputerName,Path,SessionID
В выводе команда содержится имя пользователя, имя (IP адрес) удаленного компьютера, с которого открыт файл), имя файла и ID файловой сессии.
Кто открыл файл в общей сетевой папке на сервере Windows?
Чтобы удаленно определить пользователя, который открыл (заблокировал) файл cons.adm в сетевой папке на сервере mskfs01, выполните команду:
Openfiles /Query /s mskfs01 /fo csv | find /i "cons.adm"
Ключ /i используется, чтобы выполнялся поиск без учета регистра в имени файла.
Можно указать только часть имени файла. Например, чтобы узнать, кто открыл xlsx файл, в имени которого есть строка farm, воспользуйтесь таким конвейером:
Openfiles /Query /s mskfs01 /fo csv | find /i "farm"| find /i "xlsx"
С помощью PowerShell также можно получить информацию о пользователе, который открыл файл. Например:
Вывести все открытые по сети exe файлы:
Get-SmbOpenFile | Where-Object {$_.Path -Like "*.exe*"}
Найти открытые файлы по части имени:
Get-SmbOpenFile | Where-Object {$_.Path -Like "*защита*"}
Вывести все файлы, открытые определенным пользователем:
Get-SMBOpenFile –ClientUserName "corp\aaivanov" |select ClientComputerName,Path
Найти файлы, которые открыли с указанного компьютера:
Get-SMBOpenFile –ClientComputerName 192.168.12.170| select ClientUserName,Path
Принудительно закрыть открытый файл на сервере Windows
Можно закрыть открытый файл через консоль Computer Management. Найдите файл в списке секции Open Files, выберите в контекстном меню пункт “Close Open File”.
Если на сервере по сети открыты сотни файлов, то найти нужный файл в графической консоли довольно сложно. Лучше использовать инструменты командной строки.
Закрыть файл можно, указав ID его SMB сессии. Получить ID сессии файла:
Openfiles /Query /fo csv | find /i "report2023.xlsx"
Теперь можно принудительно отключить пользователя по полученному идентификатору SMB сессии:
Openfiles /Disconnect /ID 3489847304
SUCCESS: The connection to the open file "D:\path\REPORT2023.XLSX" has been terminated.
Вы разблокировали открытый файл и теперь его могут открыть другие пользователи.
Можно принудительно сбросить все сессии и освободить все файлы, открытые определённым пользователем:
openfiles /disconnect /s mskfs01 /u corp\aivanova /id *
Можно закрыть открытый файл по ID сессии с помощью PowerShell командлета Close-SmbOpenFile.
Close-SmbOpenFile - SessionId 3489847304
Найти и закрыть открытый файл одной командой:
Get-SmbOpenFile | where {$_.Path –like "*report2023.xlsx"} | Close-SmbOpenFile
Для подтверждения сброса сессии и освобождения отрытого файла нажмите
Y
->
Enter
.
Чтобы закрыть файл без предупреждения, добавьте параметр
-Force
в последнюю команду.
С помощью Out-GridView можно сделать простую графическую форму для поиска и закрытия файлов. Следующий скрипт выведет список открытых файлов. Администратору нужно с помощью фильтров в таблице Out-GridView найти и выделить нужные файлы, а затем нажать ОК. В результате выбранные файлы будут принудительно закрыты.
Get-SmbOpenFile|select ClientUserName,ClientComputerName,Path,SessionID| Out-GridView -PassThru –title “Select Open Files”|Close-SmbOpenFile -Confirm:$false -Verbose
Принудительное закрытие открытого файла на файловом сервере, вызывает потерю несохраненных пользователем данных. Поэтому команды openfiles /disconnect и
Close-SMBOpenFile
нужно использовать с осторожностью.
Как удаленно закрыть открытые по сети файлы с помощью PowerShell?
Командлеты Get-SMBOpenFile и Close-SmbOpenFile можно использовать чтобы удаленно найти и закрыть открытые файлы. Сначала нужно подключиться к удаленному SMB серверу Windows через CIM сессию:
$sessn = New-CIMSession –Computername mskfs01
Также вы можете подключаться к удаленному серверам для запуска команд через командлеты PSRemoting: Enter-PSSession или Invoke-Command .
Следующая команда найдет сессию для открытого файла
*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
Can’t take ownership of folder as DomainAdmin – Access denied.
Once in a while you as an admin it’s possible that you come across a folder on the fileserver where you need to set permissions for other users, but you as DomainAdmin have no permssions to. When you want to set the permissions you get’Access denied’. Most of the time there is a simple fix, […]
DeploymentSettings or RDS arguments empty for (new) remote desktop collection
I needed to create a additional collection on the connection broker for a test environment. When the pool was created on the connection broker, when download the .rdp file from the RDWeb the .rdp file would be missing a lot of details and the computername field also would be empty. I’ve tried a lot of […]
Before rebooting a server, you should see who has open files so you won’t corrupt data or knock a user offline.
Server 2008 has moved where you can view these.
To see the open files, right click on computer. Select Manage. Click Roles – File Services – Share and storage management. Choose Action and then manage open files.
About TCAT Shelbyville IT Department
The Tennessee College of Applied Technology — is one of 46 institutions in the Tennessee Board of Regents System, the seventh largest system of higher education in the nation. This system comprises six universities, fourteen community colleges, and twenty-six Applied Technology Colleges.
|
|
|
Правила раздела Windows
1. Указывайте версию Вашей ОС.
2. Запрещается размещать запросы и ссылки на кряки, серийники и т.п., а также вопросы нарушения лицензии ПО и его взлома.
3. Не разрешается давать советы из разряда «Поставь Linux».
4. Переустановка ОС — крайнее и безотказное лекарство, которое знают все. В таких советах никто не нуждается.
5. При публикации скриптов пользоваться тегами code. Тип подсветки кода выбирать строго в соответствии с языком публикуемого кода.
6. Прежде чем задать вопрос, обязательно загляните в FAQ и следуйте написанным рекомендациям для устранения проблемы. И если не помогло, а поиск по разделу не дал результатов — только тогда задавайте вопрос на форуме.
7. Вопросы, связанные с проблемами ПО, задавайте в разделе Программное обеспечение
Как посмотреть список открытых файлов по сети
- Подписаться на тему
- Сообщить другу
- Скачать/распечатать тему
|
|
Как сделать сабж в Win 2008R2. |
AntonGorod |
|
Цитата ^D^ima @ Как посмотреть список открытых файлов по сети список открытых файлов, простите где? на файл сервере (роль такая отдельная есть)? |
^D^ima |
|
Ну да. На сервере открыли файлы из расшаренной папки по SMB. Как с этого сервере посмотреть список открытых файлов. И ещё список открытых файлов опубликованных приложений(WebApp). На 2008 нашел только это: Но там показаны открытые файлы терминальных пользователей. Файлов, открытых по сети, или файлов, открытых опубликованными приложениями нет. Или таких встроенных средств нет? Сообщение отредактировано: ^D^ima — |
AntonGorod |
|
openfiles /local on Добавлено Цитата ^D^ima @ Но там показаны открытые файлы терминальных пользователей. правильно говорить: файлы открытые в виртуальных окружениях пользователей. Ты эта, посмотри, я команду поменял. Очепятался изначально не много, контрл-в подвел. Сообщение отредактировано: AntonGorod — |
nash |
|
net file и net file id не поможет? |
Демо |
|
Также есть утилита в помощь — PSFILE от Руссиновича. |
^D^ima |
|
Демо |
nash |
|
Цитата ^D^ima @ Как сделать сабж в Win 2008R2. Цитата ^D^ima @ Файлов, открытых по сети, или файлов, открытых опубликованными приложениями нет. Цитата ^D^ima @ стало быть это открытые по сети файлы, а не локальные Витиевато у вас всё как-то, товарищ. |
^D^ima |
|
Я думал через «Manage Open Files…» показываются открытые локально файлы, но как оказывается это открытые файлы по сети. |
UncleBob |
|
Цитата ^D^ima @ Я думал через «Manage Open Files…» показываются открытые локально файлы, но как оказывается это открытые файлы по сети. Цитата ^D^ima @ Как посмотреть список открытых файлов по сети ты бы уже определился |
0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
0 пользователей:
- Предыдущая тема
- Windows
- Следующая тема
[ Script execution time: 0,0272 ] [ 15 queries used ] [ Generated: 14.05.25, 05:04 GMT ]
Чтобы увидеть открытые файлы , щелкните правой кнопкой мыши на компьютере. Выберите Управление. Нажмите Роли — Файл Услуги — Управление общим доступом и хранением. Выберите действие, а затем управляйте открытые файлы.
Соответственно, как мне увидеть открытые файлы в Windows Server?
Чтобы просмотреть открытые файлы из общих папок, выполните следующие действия:
- В административных инструментах откройте оснастку «Управление компьютером».
- На левой панели разверните Системные инструменты → Общие папки → Открыть файлы.
- Чтобы закрыть открытый файл, щелкните его правой кнопкой мыши на правой панели и выберите «Закрыть открытый файл».
как я могу узнать, у кого открыт файл? Просматривать к файл вы хотите (даже через общий сетевой ресурс). Нажмите Alt + Enter, чтобы Посмотреть в файл характеристики. Нажмите Открытым чтобы определить, кто имеет в файл открыт . Вы также можете закрыть соединения для файл (индивидуальные или все подключения).
Кроме того, как закрыть открытые файлы в Windows Server 2008?
разрешение
- Выберите «Пуск», «Администрирование», «Управление общим доступом и хранилищем».
- Выберите Управление открытыми файлами.
- Выберите все файлы, относящиеся к Sage 50 — U. S. Edition, и нажмите «Закрыть выбранное».
Как узнать, кто вошел в систему Windows 2008 Server?
Вы можете узнать, кто зарегистрированный на, просмотрев Пользователь вкладка диспетчера задач. Если у вас более одного Пользователь подключенный к вашему компьютеру, вы можете видеть, кто подключен, над чем они работают, и вы можете отправить им сообщение.