Если вы администрируете общие сетевые папки Windows, скорее всего вы периодически сталкиваетесь с просьбами пользователей принудительно закрыть файлы, открытые (заблокированные) в сетевых папках другими пользователями. Обычно это связано с некорректной работой программы, неправильном завершении сессии пользователя или ситуациях, когда пользователь открыл файл и забыл закрыть его (ушел домой, в отпуск и т.д.). Во всех этих случаях файл в сетевой папке оказывается заблокированным, и другие пользователи не могут вносить в него изменения.
В этой статье мы покажем, как получить список открытых файлов на файловом сервере Windows, узнать какие пользователи их используют, и способы сброса файловых сессий для разблокировки открытых файлов.
Содержание:
- Вывод списка открытых файлов в сетевой папке Windows
- Определяем пользователя, который открыл файл в сетевой папке с помощью Openfiles
- Как принудительно закрыть открытый файл в Windows?
- Get-SMBOpenFile: вывод списка открытых по сети файлов в PowerShell
- Как удаленно закрыть открытые SMB файлы с помощью PowerShell?
Вывод списка открытых файлов в сетевой папке Windows
Список открытых по сети файлов в Windows можно получить с помощью стандартной графической консоли Computer Management (Управление компьютером —
compmgmt.msc
).
Запустите на файловом сервере консоль Computer Management (или подключитесь к нему консолью удаленно со своего компьютера) и перейдите в раздел System Tools -> Shared Folders -> Open files (Служебные программы -> Общие папки -> Открыты файлы). В правой части окна отображается список файлов на сервере, открытых удаленно. В данном списке указан локальный путь к файлу, имя учетной записи пользователя, количество блокировок и режим, в котором открыт файл (Read или Write+Read).
Этот же список открытых файлов можно получит с помощью встроенной консольной утилиты Openfiles. Например, с помощью следующей команды можно получить id сессии, имя пользователя и полный локальный путь к открытому файлу:
Openfiles /Query /fo csv |more
При удаленном доступе пользователя к папке или файлу в сетевой папке (SMB) на сервере, для пользователя создается новая сессия. Вы можете управлять открытыми файлами с помощью идентификаторов этих сессий.
Вы можете вывести список открытых файлов на сервере удаленно. Например, чтобы вывести все открытые по сети файлы на сервере mskfs01, выполните:
Openfiles /Query /s mskfs01 /fo csv
Команда Openfiles позволяет также вывести список локально открытых файлов. Для этого на сервере нужно включить опцию Maintain Objects List (Построение списка объектов) командой
openfiles /local on
и перезагрузить сервер. После этого команда Openfiles будет отображать файлы, открытые локальными процессами (этот режим желательно использовать только для отладки, т.к. может негативно сказаться на производительности сервера).
Определяем пользователя, который открыл файл в сетевой папке с помощью Openfiles
Чтобы удаленно определить пользователя, который открыл (заблокировал) файл 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"
Можно, конечно найти открытый файл и в графической консоли 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 *
Обратите внимание, что принудительное закрытие файла, открытого клиентом на SMB сервере, вызывает потерю несохраненных данных. Поэтому команду
openfiles /disconnect
и командлет
Close-SMBOpenFile
(рассматривается ниже) нужно использовать с осторожностью.
Get-SMBOpenFile: вывод списка открытых по сети файлов в PowerShell
В версии PowerShell в Windows Server 2012/Windows 8 появились командлеты для управления сетевыми файлами и папками на SMB сервере. Эти командлеты можно использовать чтобы удаленно закрыть открытые по сети файлы.
Список открытых файлов можно получить с помощью командлета Get-SMBOpenFile. Чтобы закрыть файл (сбросить подключение), используется Close-SmbOpenFile.
Для вывода полного списка открытых файлов на сервере, выполните команду:
Get-SMBOpenFile
Команда возвращает ID файла, ID сессии и полное имя файла.
Можно вывести список открытых файлов с именами пользователей и компьютеров (IP адресами):
Get-SmbOpenFile|select ClientUserName,ClientComputerName,Path,SessionID
Можно вывести все файлы, открытые определенным пользователем:
Get-SMBOpenFile –ClientUserName "corp\aaivanov" |select ClientComputerName,Path
или с определенного компьютера (сервера):
Get-SMBOpenFile –ClientComputerName 192.168.12.170| select ClientUserName,Path
Можно вывести список открытых файлов по шаблону. Например, все открытые по сети exe файлы:
Get-SmbOpenFile | Where-Object {$_.Path -Like "*.exe*"}
или файлы с определенным именем:
Get-SmbOpenFile | Where-Object {$_.Path -Like "*защита*"}
Чтобы закрыть файл используется командлет
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
Также вы можете подключаться к удаленному серверам для запуска команд через командлеты PSRemoting: Enter-PSSession или Invoke-Command .
Следующая команда найдет SMB сессию для открытого файла
*pubs.docx
и завершит ее.
Get-SMBOpenFile -CIMSession $sessn | where {$_.Path –like "*pubs.docx"} | Close-SMBOpenFile -CIMSession $sessn
Подтвердите закрытие файла, нажав
Y
. В результате вы разблокировали открытый файл. Теперь его могут открыть другие пользователи.
Чтобы убрать подтверждение закрытия файла на сервере, используйте ключ
–Force
.
С помощью PowerShell вы можете закрыть и разблокировать на файловом сервере все файлы, открытые определенным пользователем (пользователь ушел домой и не освободил файлы). Например, чтобы сбросить все файловые сессии для пользователя ipivanov, выполните:
Get-SMBOpenFile -CIMSession $sessn | where {$_.ClientUserName –like "*ipivanov*"}|Close-SMBOpenFile -CIMSession $sessn
На общедоступном сетевом ресурсе могут возникать ошибки доступа к файлам. Причиной этому является некорректно завершенная сессия пользователя, ошибки в работе ПО или просто кто-то открыл файл и не закрывает его. В такой ситуации файл оказывается заблокированным и не доступен для работы другим пользователям.
На общедоступном сетевом ресурсе могут возникать ошибки доступа к файлам. Причиной этому является некорректно завершенная сессия пользователя, ошибки в работе ПО или просто кто-то открыл файл и не закрывает его. В такой ситуации файл оказывается заблокированным и не доступен для работы другим пользователям.
Решить проблему доступа к файлу можно путем закрытия сеансов использующих этот файл. В этой статье я расскажу как определить кто открыл файл в сетевой папке и как закрыть это подключение.
Рассмотрим два способа:
- Через оснастку «Управление компьютером» консоли управления Windows;
- При помощи утилиты командной строки — Openfiles.
1 способ. Получаем список открытых файлов с помощью оснастки «Управление компьютером».
Для получения списка открытых файлов на файловом сервере воспользуемся оснасткой консоли «Управление компьютером». Для запуска оснастки нажимаем сочетание клавиш «Win + R» и набираем название оснастки «compmgmt.msc».
В иерархии оснастки переходим /Управление компьютером/Служебные программы/Общие папки/Открытые файлы.
В правой части оснастки появится список открытых файлов. Здесь можно увидеть имя пользователя открывшего файл, количество блокировок и режим доступа к файлу.
Закрываем файл. Чтобы закрыть сетевой файл открытый другим пользователем находим его в списке и в контекстном меню выбираем пункт «Закрыть открытый файл».
2 способ. Просмотр открытых файлов через командную строку утилитой Openfiles.
Утилита Openfiles дает нам более широкие возможности по поиску и закрытию заблокированных файлов.
C помощью openfiles можно просмотреть список открытых файлов на сервере удаленно. Для этого открываем командную и запускаем утилиту с параметрами.
Openfiles /Query /s FileServer
где
/Query — показывает все открытые файлы,
/s — определяет имя удаленного компьютера.
В случае, когда необходимо указать логин и пароль пользователя для подключения к удаленному компьютеру, задаются параметры: /u — логин пользователя, /p — пароль пользователя.
openfiles /query /s FileServer /u domain\admin /p p@ssw1234
По-умолчанию список файлов показан в формате таблицы, но есть параметры позволяющие изменить формат вывода:
Openfiles /Query /s FileServer /fo csv
/fo csv — выводит список в формате csv с разделителем запятая;
/fo list — показывает открытые файлы в формате списка;
/fo table — формат таблицы.
Если необходимо увидеть информацию о количестве блокировок файлов (#Locks) и в каком режиме открыт файл (чтение или запись), то можно воспользоваться параметром /v.
Openfiles /Query /s FileServer /v
Определяем кто открыл сетевой файл.
Чтобы найти пользователя, который открыл и заблокировал нужный нам файл запускаем Openfiles с командой find.
Openfiles /Query /s FileServer | find /i "anyfile.xlsx"
в команде find указан параметр /i, чтобы поиск был регистронезависимым.
После того когда мы узнали имя пользо
Закрываем заблокированный сетевой файл.
Закрыть открытый файл можно по id сессии таким способом:
openfiles /disconnect /id 26843578
Закрыть все сетевые подключения к файлам и папкам, которые открыл пользователь BadUser:
openfiles /disconnect /a BadUser
Закрыть все файлы и директории открытые в режиме чтение/запись:
openfiles /disconnect /o read/write
Закрыть все подключения к директории с именем «c:\myshare»:
openfiles /disconnect /a * /op "c:\myshare\"
Чтобы сбросить все сессии на удаленном сервере FileServer, которые открыл пользователь domain\baduser, независимо от id сессии:
openfiles /disconnect /s FileServer /u domain\baduser /id *
Когда вы работаете с Windows Server 2008 в качестве администратора, вам может потребоваться узнать, какие файлы открыты на сервере. Это может быть полезно, например, для определения, какие пользователи работают с определенными файлами или для устранения конфликтов доступа к файлам. В этой статье мы расскажем вам, как просмотреть открытые файлы на сервере.
Сначала откройте «Диспетчер сервера» (Server Manager) на сервере, к которому вы хотите получить доступ к открытым файлам. Нажмите на кнопку «Пуск» в левом нижнем углу экрана, а затем найдите и щелкните на «Диспетчер сервера».
Шаг 1. После открытия «Диспетчера сервера» выберите пункт меню «Менеджер файлов».
Шаг 2. В меню «Менеджер файлов» выберите «Сеансы». Здесь вы увидите список открытых файлов на сервере.
Если вы хотите получить дополнительную информацию о файлах, включая имя пользователя, который открыл файл, и время открытия, вы можете выбрать нужный файл и выбрать «Свойства» в контекстном меню. Здесь вы найдете подробную информацию о выбранном файле и пользователе, который его открыл.
Примечание: для просмотра открытых файлов на сервере вам может потребоваться административные привилегии.
Теперь, когда вы знаете, как просмотреть открытые файлы на сервере Windows Server 2008, вы можете легко контролировать доступ к файлам и решать возникающие проблемы с ними.
Содержание
- Открытые файлы в Windows Server 2008: что это такое?
- Доступ к списку открытых файлов в Windows Server 2008
- Просмотр информации о открытых файлах
- Отключение открытых файлов в Windows Server 2008
- Открытие файла для просмотра или изменения
- Закрытие открытого файла в Windows Server 2008
- Проблемы с открытыми файлами в Windows Server 2008 и их решение
Открытые файлы в Windows Server 2008: что это такое?
Открытые файлы в Windows Server 2008 представляют собой файлы, которые в настоящий момент используются одним или несколькими процессами на сервере. Когда файл открыт для чтения или записи, он становится недоступным для других процессов, которые пытаются получить к нему доступ. Это может приводить к различным проблемам, например, если вы хотите удалить, переместить или изменить файл, который находится в использовании.
В Windows Server 2008 существуют различные инструменты, которые позволяют администраторам просматривать открытые файлы на сервере. Один из таких инструментов — «Диспетчер файлов», который позволяет администратору увидеть список открытых файлов, а также информацию о процессах, которые их используют.
Знание о том, какие файлы открыты на сервере, может быть полезным для администратора в случае необходимости анализа проблем с доступом к файлам, определения причин блокировки файлов или устранения конфликтов при работе с файлами. Этот инструмент позволяет также администратору выгрузить файлы из памяти процессов, что может быть полезно, если требуется разрешить блокировку файла.
Доступ к списку открытых файлов в Windows Server 2008
В Windows Server 2008 администраторам предоставляется возможность получить доступ к списку открытых файлов на сервере. Это очень полезная функция, которая позволяет контролировать активность файловой системы и управлять открытыми файлами.
Для доступа к списку открытых файлов в Windows Server 2008 следуйте следующей инструкции:
- Откройте «Диспетчер файлов» в контекстном меню «Пуск».
- На панели инструментов выберите «Управление» -> «Средства» -> «Диспетчер файлов».
- В окне «Диспетчер файлов» выберите вкладку «Сервис» и нажмите на кнопку «Открытые файлы».
- В списке «Открытые файлы» вы увидите информацию о каждом открытом файле на сервере, включая имя файла, путь, имя пользователя, открывший файл, и время открытия.
- Вы можете выполнить различные действия с открытыми файлами, например, закрыть их или разблокировать, используя доступные кнопки.
Обратите внимание, что для доступа к списку открытых файлов в Windows Server 2008 потребуются права администратора или эквивалентные.
Используя эту простую инструкцию, вы сможете легко получить доступ к списку открытых файлов на вашем сервере Windows Server 2008 и эффективно управлять ими.
Просмотр информации о открытых файлах
Шаг 1: Откройте командную строку с административными правами на сервере Windows Server 2008.
Шаг 2: Введите команду openfiles /query и нажмите клавишу Enter.
Шаг 3: В результате будет выведен список всех открытых файлов на сервере с соответствующей информацией, такой как имя файла, путь к файлу, идентификатор сеанса, пользователь и т. д.
Пример вывода:
INFO: The system global flag ‘maintain objects list’ needs to be enabled to see local opened files.
Уровень совместимости: 2200
Тип ресурса: Диск
Путь: D:\Пример
ID сеанса: 700
Имя открытого файла (определяется сервером): \\localhost\Пример
Пользователь: DOMAIN\Username
…
Примечание: Если вы получаете сообщение об ошибке «The system global flag ‘maintain objects list’ needs to be enabled to see local opened files.», выполните следующий шаг для включения данного флага.
Отключение открытых файлов в Windows Server 2008
Чтобы отключить открытые файлы в Windows Server 2008, выполните следующие шаги:
- Откройте «Серверный менеджер» и выберите пункт «Файловые службы».
- В левой панели выберите «Обзор», а затем перейдите в раздел «Сеансы».
- В правой панели появится список всех открытых сеансов.
- Найдите сеанс, связанный с файлом, который вы хотите отключить, и выделите его.
- Щелкните правой кнопкой мыши на выделенном сеансе и выберите «Закрыть сеанс».
- Подтвердите действие в появившемся диалоговом окне.
После выполнения этих шагов выбранный сеанс будет закрыт, и файл будет освобожден. Учтите, что закрытие сеанса может прервать работу пользователя, который использует файл, поэтому перед закрытием убедитесь, что это не вызовет проблемы.
Открытие файла для просмотра или изменения
Чтобы открыть файл для просмотра или изменения на сервере Windows Server 2008, выполните следующие шаги:
- Перейдите к папке, в которой находится нужный файл. Для этого можно использовать проводник Windows или командную строку.
- Найдите нужный файл в папке и щелкните на нем правой кнопкой мыши.
- В контекстном меню, которое появится после щелчка правой кнопкой мыши, выберите опцию «Открыть».
- Если файл поддерживается программой, связанной с его форматом, то он откроется в этой программе и вы сможете просмотреть или изменить его содержимое.
- Если файла нет программы, связанной с его форматом, появится окно, предлагающее выбрать программу для открытия файла. Выберите нужную программу из списка или нажмите на кнопку «Поиск». Если нужной программы нет, установите ее заранее.
Теперь вы можете просмотреть или изменить файл на сервере Windows Server 2008.
Закрытие открытого файла в Windows Server 2008
Чтобы закрыть открытый файл на Windows Server 2008, вы можете использовать следующий процесс:
- Выберите «Пуск» в левом нижнем углу экрана сервера.
- Нажмите на «Панель управления».
- Выберите «Администрирование», а затем «Управление компьютером».
- В окне «Управление компьютером» выберите «Система» и затем «Диспетчер файлов».
- Найдите открытый файл в списке открытых файлов.
- Щелкните правой кнопкой мыши на файле и выберите «Закрыть открытый файл».
После выполнения этих шагов выбранный файл будет закрыт, и другие пользователи смогут получить доступ к нему.
Проблемы с открытыми файлами в Windows Server 2008 и их решение
1. Ошибка доступа к файлу.
Если при попытке открыть файл на сервере вы получаете сообщение об ошибке доступа, это может быть связано с неправильными настройками разрешений доступа к файлу. Чтобы устранить эту проблему, проверьте права доступа к файлу и убедитесь, что у вас есть достаточные права для открытия файла.
2. Блокировка файла другим пользователем.
Когда файл открыт другим пользователем, вы можете столкнуться с проблемой блокировки файла. Если вы пытаетесь открыть файл, но получаете сообщение о том, что он блокирован другим пользователем, вам нужно узнать, кто блокирует файл и связаться с ним для разблокировки файла. Вы также можете использовать инструмент диспетчера открытых файлов на сервере для просмотра и управления открытыми файлами.
3. Сбои в работе приложений.
Иногда при открытии файлов на сервере могут возникать сбои в работе приложений. Это может быть вызвано конфликтами в расширениях файлов или проблемами с программным обеспечением. Чтобы устранить эту проблему, обновите программное обеспечение или попробуйте открыть файл в другой программе.
Проблема | Решение |
---|---|
Ошибка доступа к файлу | Проверьте права доступа к файлу и обновите их при необходимости |
Блокировка файла другим пользователем | Определите, кто блокирует файл, и свяжитесь с ним для разблокировки |
Сбои в работе приложений | Обновите программное обеспечение или попробуйте открыть файл в другой программе |
В заключение, проблемы с открытыми файлами в Windows Server 2008 могут быть вызваны различными причинами, включая неправильные настройки прав доступа, блокировку файла другим пользователем или сбои в работе приложений. Однако, с помощью соответствующих решений, вы сможете устранить эти проблемы и продолжить работу с файлами на сервере без проблем.
Чтобы увидеть открытые файлы , щелкните правой кнопкой мыши на компьютере. Выберите Управление. Нажмите Роли — Файл Услуги — Управление общим доступом и хранением. Выберите действие, а затем управляйте открытые файлы .
Соответственно, как мне увидеть открытые файлы в Windows Server?
Чтобы просмотреть открытые файлы из общих папок, выполните следующие действия:
- В административных инструментах откройте оснастку «Управление компьютером».
- На левой панели разверните Системные инструменты → Общие папки → Открыть файлы.
- Чтобы закрыть открытый файл, щелкните его правой кнопкой мыши на правой панели и выберите «Закрыть открытый файл».
как я могу узнать, у кого открыт файл? Просматривать к файл вы хотите (даже через общий сетевой ресурс). Нажмите Alt + Enter, чтобы Посмотреть в файл характеристики. Нажмите Открытым чтобы определить, кто имеет в файл открыт . Вы также можете закрыть соединения для файл (индивидуальные или все подключения).
Кроме того, как закрыть открытые файлы в Windows Server 2008?
разрешение
- Выберите «Пуск», «Администрирование», «Управление общим доступом и хранилищем».
- Выберите Управление открытыми файлами.
- Выберите все файлы, относящиеся к Sage 50 — U. S. Edition, и нажмите «Закрыть выбранное».
Как узнать, кто вошел в систему Windows 2008 Server?
Вы можете узнать, кто зарегистрированный на, просмотрев Пользователь вкладка диспетчера задач. Если у вас более одного Пользователь подключенный к вашему компьютеру, вы можете видеть, кто подключен, над чем они работают, и вы можете отправить им сообщение.