Узнайте, кто блокирует файл в сетевом ресурсе

Я хочу знать, кто блокирует файл на общем сетевом ресурсе.

вот проблема: сетевой ресурс находится на NAS, поэтому я не могу войти в систему. Мне нужен инструмент, чтобы удаленно узнать, кто блокирует файл. Нецелесообразно перезагружать NAS каждый раз, потому что есть несколько пользователей.

ручки.exe, Process Explorer и началу страницы похоже, ограничивается файлами на локальном компьютере, поэтому они не работают для меня.

8 ответов


на всякий случай, если кто-то ищет решение для этой системы на базе Windows или NAS:

в Windows есть встроенная функция, которая показывает, какие файлы на локальном компьютере открыты / заблокированы удаленным компьютером (который имеет файл, открытый через файловую папку):

  • Выберите " Управление Компьютером "(Открыть "Управление Компьютером")
  • выберите "общие папки"
  • выбрать "открыть файлы"

там вы можете даже закрыть напиши убедительно.


на серверах Windows 2008 R2 у вас есть два способа просмотра открытых файлов и закрытия этих соединений.

через управление акциями и хранилищами

диспетчер серверов > роли > файловые службы > управление общим доступом и хранилищем > щелкните правой кнопкой мыши на SaSM > управление открытым файлом

Через OpenFiles

CMD > Openfiles.exe / query / S ИМЯ_СЕРВЕРА

посмотреть http://technet.microsoft.com/en-us/library/bb490961.aspx.


PsFile работает на удаленных машинах. Если моя учетная запись входа уже имеет доступ к удаленному ресурсу, я могу просто ввести:

psfile \remote-share

(замените "remote-share" на имя вашего файлового сервера), и он отобразит каждый открытый документ на этом ресурсе, а также кто его открыл и идентификатор файла, если я хочу заставить файл закрыться. Для меня это действительно длинный список, но его можно сузить, введя часть пути:

psfile \remote-share I:\Human_Resources

Это сложно, так как в моем случае этот удаленный ресурс монтируется как Z: на моей локальной машине, но psfile идентифицирует пути, как они определены на удаленном файловом сервере, который в моем случае является I: (Ваш будет другим). Мне просто нужно было просмотреть результаты моего первого запуска psfile, чтобы увидеть некоторые из путей, которые он вернул, а затем запустить его снова с частичным путем, чтобы сузить результаты.

дополнительно, PsFile позволит вам указать учетные данные для удаленного общего ресурса, если вам нужно предоставить их для доступ.

наконец, малоизвестный совет: если кто-то нажимает на файл в Проводнике Windows и режет или копирует файл с намерением вставить его в другое место, это действие также помещает блокировку файла.


Если это просто случай знать / видеть, кто находится в файле в любое конкретное время (и если вы используете windows), просто выберите файл " вид " как "детали", т. е. вместо эскизов, плиток или значков и т. д. После того, как в представлении "подробности", по умолчанию вы будете показаны; - Имя файла - Размер - Тип и - Дата изменения

все, что вам нужно сделать сейчас, это щелкнуть правой кнопкой мыши в любом месте указанной панели инструментов(имя файла, размер, тип и т. д...) и вам будет предоставлен список других опций, которые панель инструментов может отображать.

выберите "владелец", и новый столбец покажет имя пользователя человека, использующего файл или который изначально создал его, если никто другой не использует его.

Это может быть особенно полезно при использовании общей базы данных MS Access.


частичный ответ: с помощью Process Explorer вы можете просматривать дескрипторы на сетевом ресурсе открыт с вашей машины.

используйте меню "найти дескриптор", а затем вы можете ввести путь, как это

\Device\LanmanRedirector\server\share\

сеансы обрабатываются устройством NAS. Что вы спрашиваете зависит от устройства NAS и ничего общего с Windows. Вам нужно будет заглянуть в прошивку NAS, чтобы увидеть, что она поддерживает. Единственный другой способ-понюхать пакеты и разобраться с этим самостоятельно.


похоже, у вас та же проблема, которую я пытался решить здесь. в моем случае это файловый сервер Linux (работает samba, конечно), поэтому я могу войти в систему и посмотреть, какой процесс блокирует файл; к сожалению, я не нашел, как закрыть его, не убивая ответственный сеанс. AFAICT, клиент windows "думает", что он закрыт; но не потрудился сообщить файловому серверу.


закрыть файл e:\gestion\yourfile - ... dat, открытый любым пользователем (/a *)

openfiles / disconnect /a * / op "e:\gestion\yourfile - ... dat"

больше в: http://dosprompt.info/commands/openfiles.asp