Узнайте, кто блокирует файл в сетевой папке - PullRequest
126 голосов
/ 24 февраля 2009

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

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

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

Ответы [ 8 ]

162 голосов
/ 12 октября 2009

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

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

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

Там вы можете даже принудительно закрыть файл.

53 голосов
/ 21 декабря 2012

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

Через управление общими ресурсами и хранилищами

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

Через OpenFiles

CMD> Openfiles.exe / query / s SERVERNAME

См. http://technet.microsoft.com/en-us/library/bb490961.aspx.

21 голосов
/ 21 мая 2013

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

psfile \\remote-share

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

psfile \\remote-share I:\\Human_Resources

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

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

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

12 голосов
/ 10 мая 2012

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

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

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

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

5 голосов
/ 24 февраля 2009

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

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

\Device\LanmanRedirector\server\share\
4 голосов
/ 24 февраля 2009

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

2 голосов
/ 24 февраля 2009

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

1 голос
/ 21 декабря 2017

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

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

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

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