Windows server как посмотреть кто использует файл

Найти пользователей, подключенных к сетевой папке

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

Как мне найти эту информацию?

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

Путь Kinda-Sorta: Выберите Системные инструменты >> Общие папки >> Открыть файлы, чтобы увидеть, какие файлы открыты на файловом сервере. Оттуда вы можете соотнести учетные записи пользователей с открытыми файлами с общими папками, к которым они подключены.

Однако этого может быть недостаточно. Не веришь мне? Зайдите в «Управление компьютером» и выберите «Системные инструменты»> «Общие папки» >> «Сессии», чтобы узнать, кто подключен. Тогда посмотрите на # open files колонку. У некоторых сессий должно быть 0 открытых файлов. Откуда вы знаете, с какой долей они технически связаны? Я рад, что ты спросил .

Обширный, но сложный для масштабирования способ. Выполните действия net share [sharename] для каждой рассматриваемой общей папки, чтобы получить список пользователей, которые к ней подключены. В моем тестировании даже пользователи, у которых нет открытого файла, перечислены.

Вы также можете использовать административный инструмент Share and Storage Manager в Server 2008 и более поздних версиях вместо управления компьютером. Найдите общий ресурс в списке общих ресурсов, а затем в области действий щелкните правой кнопкой мыши «Управление сеансами». Вы увидите список сессий, включая те, которые имеют ноль открытых файлов.

Но . но . Я хочу найти конкретного пользователя, не запрашивая каждую акцию! Если у вас есть конкретный пользователь, которого вы хотите отследить, похоже, что единственным способом найти эту информацию является запрос каждого ресурса и просмотр его, чтобы найти нужного пользователя. И глазного яблока я имею в виду выход трубы на findstr или select-string . Можно экстраполировать рабочий процесс на сценарий, который перечисляет все доступные общие ресурсы, запрашивает подключенных пользователей и ищет выходные данные для рассматриваемого пользователя, но это, по-видимому, упражнение для читателя, а не то, что Microsoft включила в качестве нативной функции. ,

Как узнать, на каком компьютере открыт файл в сетевой папке?

Среда:

Windows XP sp3, сервер Windows 2003

Проблема:

У нас есть несколько десятков киоск-машин, каждая из которых имеет одно и то же имя для входа, которые время от времени и на короткое время сохраняют файл в общем ресурсе. Скорость составляет несколько замков и выпускает за минуту.

Недавно мы столкнулись с тем, что один из клиентов блокировал файл исключительно, а затем не выпускал файл.

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

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

Кажется, есть пробел в информации, которую мы можем получить с сервера:

Мы можем видеть из различных инструментов:
-Какие файлы открыты и заблокированы. (много способов)
-Каким входом в систему указан или заблокирован конкретный файл. (много способов)
— на конкретном компьютере обычно открыт файл. (Общие папки, сессии mmc)

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

Кто-нибудь знает способ добраться до этого?

Читайте также:  Как сделать виджеты для windows

Посмотрите на эту маленькую бесплатную утилиту ( ShareWatch ), я думаю, она сделает то, что вы ищете.

Одна из перечисленных функций: «Показывает пользователей и компьютеры, которые подключены к каждому общему ресурсу, а также какие файлы открыты».

Введите командную строку (CMD),

затем введите: openfiles / ip запроса сетевого ресурса

И имя пользователя и пароль могут потребоваться.

Вы можете получить больше информации об openfiles здесь .

Я полагаю, что вы захотите сослаться на пост Sky100, поскольку он прав, не в том, чтобы предоставить вам то, что вы просили, а в том, что вам нужно для решения вашей проблемы. Вам нужно будет сослаться на заблокированный идентификационный номер с помощью команды «openfile / query / v» (verbose), поскольку она предоставит вам необходимые данные. Ищите имя файла в указанном списке, данные покажут, для какого элемента разрешено чтение и запись, и вместе с ним предоставит конкретный идентификационный номер. Нет, вы не сможете найти, для какой конкретной системы заблокирован файл, но с помощью предоставленных инструментов вы можете отключить этого пользователя от файла. Вот шаг за шагом, чтобы упростить мои разговоры.

1) На файловом сервере с правами администратора выполните Пуск> Выполнить> CMD [ENTER]

2) Рабочий стол CD [ENTER] (скоро вы увидите, почему.)

3) openfiles / query / v> file.txt [ENTER] (это создаст файл на рабочем столе со списком всех открытых файлов на сервере.)

4) Откройте файл file.txt и найдите строку, содержащую как ваше имя файла, так и права на чтение + запись.

5) Запишите идентификационный номер в этой строке и вернитесь к командной консоли.

6) openfiles / отсоединить / ID [поставить номер ID здесь] [ENTER]

Пока у вас есть права администратора на файловом сервере, он будет отключать эту систему от файла, и, если ваша система автоматизирована, это позволит продолжать работу по мере необходимости.

Ссылки: openfiles / query /? открыть файлы / отключить /?

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

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

Если последний поможет, то я бы посмотрел на две вещи:

Проверьте AV, установленный на ваших клиентах. Я видел, что множественные AV на клиентской стороне вызывают серьезную неприятную аномальную блокировку поведения на общих ресурсах.

Попробуйте отключить оппортунистическую блокировку , установив для параметра реестра EnableOpLocks значение 0.

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ LanmanServer \ Параметры EnableOplocks REG_DWORD 0 или 1 По умолчанию: 1 (включено)

Это несколько снизит производительность, но ничего не должно сломать.

Хотелось бы, чтобы кто-то действительно ответил на ваш заданный вопрос — это интересная проблема.

В моей попытке решить проблему RobW и предложить альтернативное решение, я не смог ответить на его вопрос.

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

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

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

Может быть полезно настроить журнал безопасности на очистку каждые несколько дней.

Читайте также:  Windows update security settings have

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

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

Как вы узнаете, какой процесс удерживает файл открытым в Windows?

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

Любые предложения о том, как найти виновника?

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

Чтобы найти конкретный файл, используйте пункт меню « Find->Find Handle or DLL. Введите» в части пути к файлу. Список процессов появится ниже.

Если вы предпочитаете командную строку, в комплект Sysinternals входит инструмент Handle командной строки , в котором перечислены открытые дескрипторы. Несколько примеров о том, как его использовать:

  • c:\Program Files\SysinternalsSuite>handle.exe |findstr /i e:\ — найти все файлы, открытые с диска E:
  • c:\Program Files\SysinternalsSuite>handle.exe |findstr /i file-or-path-in-question

Для этого вы можете использовать Resource Monitor, который встроен в Windows 7, 8 и 10.

  1. Откройте Resource Monitor , который можно найти
    • Выполнив поиск Resource Monitor или resmon.exe в меню «Пуск», или
    • Как кнопка на вкладке « Производительность » в вашем диспетчере задач
  2. Перейти на вкладку CPU
  3. Используйте поле поиска в разделе « Связанные дескрипторы »
    • Смотрите синюю стрелку на снимке экрана ниже

Найдя дескриптор, вы можете определить процесс, посмотрев на столбец «Изображение» и / или «PID».

Затем вы можете попытаться закрыть приложение, как обычно, или, если это невозможно, просто щелкнуть правой кнопкой мыши по дескриптору и завершить процесс прямо оттуда. Очень просто!

Просто будьте очень осторожны с закрывающимися ручками; это даже более опасно, чем вы думаете, из-за повторного использования дескриптора — если вы закроете дескриптор файла, и программа откроет что-то еще, этот оригинальный дескриптор файла, который вы закрыли, может быть повторно использован для этого «чего-то еще». А теперь угадайте, что произойдет, если программа продолжит работу, думая, что она работает с файлом (чей дескриптор вы закрыли), когда фактически этот дескриптор файла теперь указывает на что-то другое.

см. сообщение Раймонда Чена на эту тему

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

Служба индекса поиска открывает другой файл, скажем, файл конфигурации для записи, чтобы обновить некоторое постоянное состояние. Дескриптор файла журнала перерабатывается как дескриптор файла конфигурации. Служба индекса поиска хочет записать некоторую информацию, поэтому она записывает в свой файл журнала. К сожалению, дескриптор файла журнала был закрыт, и этот дескриптор повторно использовался для его файла конфигурации. Зарегистрированная информация попадает в файл конфигурации, повреждая его.

Между тем, другой дескриптор, который вы принудительно закрыли, был повторно использован как дескриптор мьютекса, который используется для предотвращения повреждения данных. Когда оригинальный дескриптор файла закрыт, дескриптор мьютекса закрывается и защита от повреждения данных теряется. Чем дольше служба работает, тем более поврежденными становятся ее индексы. В конце концов, кто-то замечает, что индекс возвращает неверные результаты. И когда вы пытаетесь перезапустить службу, она терпит неудачу, потому что ее файлы конфигурации были повреждены.

Читайте также:  Сильно тормозит windows причины

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

Как узнать какие процессы Windows используют файл?

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

  • «Не удается удалить файл: отказано в доступе» / «Cannot delete file: Access is denied»
  • «Обнаружена проблема общего доступа» / «There has been a sharing violation»
  • «Исходный файл возможно используется» / «The source or destination file may be in use»
  • «Файл используется другой программой или пользователем» / «The file is in use by another program or user».
  • «Убедитесь, что диск не переполнен и не защищен от записи и что файл не используется в настоящее время» / «Make sure the disk is not full or write-protected and that the file is not currently in use»

Одним из лучших способов справиться с заблокированными файлами и каталогами — это воспользоваться бесплатной программой Process Explorer от Microsoft. Программа уже была описана в обзоре Лучшие бесплатные диспетчеры процессов, и вот как ее можно использовать для того, чтобы узнать какой процесс или какая DLL блокирует доступ к файлу. Вам потребуются права администратора.

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

Как узнать, какие программы использует файл в Windows 7?

В Windows 7 и выше, системное сообщение может содержать название программы, блокирующую доступ к файлу. В Windows XP, обычно, такой информации нет. В любом случае, есть простой способ, как можно найти программу:

  1. Откройте Process Explorer от имени администратора
  2. На панели инструментов найдите значок в виде прицела (иконка выделена на рисунке выше)
  3. Перетащите иконку на заблокированный файл или каталог
  4. Программы, которые используют данный файл, будут подсвечены в общем списке процессов в главном окне Process Explorer

Как узнать, какие программы и DLL держат открытые маркеры (дескрипторы) на файл в Windows 7?

  1. Откройте Process Explorer от имени администратора
  2. Нажмите комбинацию клавиш «Ctrl + F». Или выберите в меню «Поиск» пункт «Find a Handle or DLL»
  3. Откроется диалоговое окно поиска
  4. Введите имя заблокированного файла или часть его названия. Как правило, достаточно части имени
  5. Нажмите кнопку «Поиск»
  6. Откроется список со всеми программами и dll, которые используют данный файл. Вернее их открытые маркеры (дескрипторы) на файл
  7. Вы можете удалить все маркеры (дескрипторы) простым нажатие кнопки «Delete», чтобы разблокировать доступ к файлу. Тем не менее, обращаем ваше внимание на то, что при удалении дескрипторов, могут возникнуть проблемы. Например, если это сделать во время сохранения файла, то информация в файле может быть повреждена. Поэтому, если вы сомневаетесь, то можете просто перезагрузить компьютер. Часто, этого вполне достаточно, чтобы разблокировать доступ к файлу.

Process Explorer можно скачать здесь.

Примечание: Как альтернативу, вы так же можете программы из обзора Лучшие бесплатные утилиты для удаления блокированных файлов. Несмотря на их название, они так же позволяют копировать и перемещать файлы. А так же позволяют обойти ряд таких ограничений, как блокировка доступа к файлу при старте системы.

Теперь, вы знаете, как узнать какие процессы Windows используют файл. А так же знаете, как можно разблокировать доступ к файлам.

Оцените статью