Назад | Перейти на главную страницу

Как узнать, какой процесс для конкретного пользователя обращается к файлам в общей папке

В последние пару недель в нашей системе управления бизнесом случались некоторые сбои. Ему отказано в доступе к некоторым файлам, которые он использует. Покопавшись с помощью «Управление открытыми файлами», я смог определить, какие пользователи имеют доступ к рассматриваемым файлам. Отсюда я использовал как Resource Manager, так и Process Explorer для поиска подстроки каталога, в котором находятся эти файлы. Я могу видеть процессы, которые должны иметь доступ к этим каталогам, и файлы, к которым предполагается доступ. Проблема в том, что поиск дескрипторов вообще никогда не показывает проблемные файлы, поэтому я не могу определить процесс, который их блокирует. Отчасти проблема в том, что к файлам обращаются периодически, а не постоянно. Чтобы убедиться, что моя попытка отследить преступный процесс, я выполнил следующие действия:

  1. Обновите «Управление открытыми файлами», пока пользователь не покажет, что они открыты.
  2. Искать в дескрипторах подстроку каталога.
  3. Обновите управление открытыми файлами еще раз, чтобы убедиться, что файлы все еще доступны после завершения поиска дескриптора.

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

Есть ли у кого-нибудь другие идеи о том, как я могу определить, какой процесс обращается к этим файлам? Я точно знаю пользователей, которые обращаются к ним, и я выполнял поисковые запросы удаленно со своих рабочих станций.

[EDIT1] Сервер работает под управлением Windows Server Standard, а все клиентские машины работают под управлением Windows 7 Professional. Эти файлы представляют собой оценки, экспортированные CCC One (это компания по устранению столкновений), а программа, к которой отказывают в доступе, - это NEX (Наша система управления бизнесом) от Nexsyis. Что касается протокола, я не совсем уверен, но могу представить, что это SMB.

Я предполагаю, что вы говорите о Windows Server. Если да, я предлагаю взглянуть на следующие инструменты:

  • Монитор ресурсов: Start > Run > resmon. На «Диске» перечислены процессы, открытые файлы и операции чтения / записи.
  • Computer Management > Shared Folders > Shares (compmgmt.msc), чтобы увидеть открытые сетевые ресурсы.
  • В net session команда
  • Sysinternals Process Explorer - Вы можете искать handles с участием Ctrl + ж
  • Монитор процессов Sysinternals - вы можете настроить «долгосрочный» захват, чтобы он соответствовал пути к файлу, о котором идет речьa, и оставить его включенным на длительный период, пока вы пытаетесь воспроизвести проблему.

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