Одна вещь, которая раздражает меня в Windows, это старая ошибка нарушения общего доступа. Часто вы не можете определить, что держит его открытым. Обычно это просто редактор или исследователь, просто указывающий на соответствующий каталог, но иногда мне приходилось прибегать к перезагрузке компьютера.
Любые предложения о том, как найти виновника?
windows
file-sharing
Клетус
источник
источник
Ответы:
Я имел успех с 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.
Найдя дескриптор, вы можете определить процесс, посмотрев на столбец «Изображение» и / или «PID».
Затем вы можете попытаться закрыть приложение, как обычно, или, если это невозможно, просто щелкнуть правой кнопкой мыши по дескриптору и завершить процесс прямо оттуда. Очень просто!
Скопировано из моего оригинального ответа: https://superuser.com/a/643312/62
источник
resmon
прямо из cmdПопробуйте команду openfiles .
источник
openfiles /local on
и перезапуска. Это делает эту функцию не очень полезной.Просто будьте очень осторожны с закрывающимися ручками; это даже более опасно, чем вы думаете, из-за повторного использования дескриптора - если вы закроете дескриптор файла, и программа откроет что-то еще, этот оригинальный дескриптор файла, который вы закрыли, может быть повторно использован для этого «чего-то еще». А теперь угадайте, что произойдет, если программа продолжит работу, думая, что она работает с файлом (чей дескриптор вы закрыли), когда фактически этот дескриптор файла теперь указывает на что-то другое.
см. сообщение Раймонда Чена на эту тему
источник
Я успешно использовал Handle, чтобы найти такие процессы в прошлом.
источник
Lockhunter ( http://lockhunter.com/ ) работает на 32- и 64-битных системах.
источник
Who Lock Me работает хорошо и развлекает людей этим именем!
источник
Просто чтобы прояснить, это, скорее всего, связано с неправильным поведением сторонних приложений, неправильно использующих вызов API CreateFile, чем с самим Windows. Возможно, это является следствием дизайна CreateFile, но все сделано, и мы не можем вернуться назад.
По сути, при открытии файла в программе Windows у вас есть возможность указать флаг, который разрешает общий доступ. Если вы не укажете флаг, программа получит монопольный доступ к файлу.
Теперь, если Explorer кажется здесь виновником, это может быть тот случай, когда это просто на поверхности, и что истинный виновник - это то, что устанавливает расширение оболочки, которое открывает все файлы в папке для своих собственных целей, но это тоже слишком безрассудство при этом, или это не убирает должным образом после себя. Symantec AV - это то, что я делал раньше, и я не удивлюсь, если виноваты другие AV-программы. Подключаемые модули управления источником также могут быть неисправны.
Так что на самом деле это не ответ, а всего лишь совет не всегда обвинять Windows в том, что может быть плохо написанной сторонней программой (то, что также может произойти в любой другой ОС, которая имеет неявную блокировку файлов, но любая ОС на основе Unix имеет общий доступ с помощью по умолчанию).
источник
На удаленном сервере, когда вы проверяете общий сетевой ресурс, такая простая информация, как консоль управления компьютером, может отображать эту информацию и закрывать файл.
источник
По поводу Проводника, держащего открытый файл: «Когда это происходит с файлом, который нужно удалить, у вас есть выбор принудительного закрытия дескриптора или перезагрузки».
Вы можете просто завершить Explorer.
Если это одноразовая вещь (Explorer обычно не держит этот файл открытым), то я думаю, что выход из системы и повторный вход помогут.
В противном случае завершите процесс проводника на рабочем столе и делайте, что хотите, пока он не завершен. Сначала запустите копию cmd.exe (вам необходим пользовательский интерфейс, чтобы выполнить запланированную очистку). Убедитесь, что не запущены проводники без рабочего стола. Затем убейте последний проводник, например, с помощью диспетчера задач. Делайте что хотите в командной строке. Наконец, запустите Explorer из командной строки, и он станет рабочим столом.
Я предполагаю, что могут быть некоторые остаточные неприятности, если некоторые программы systray не могут справиться с перезапуском оболочки.
источник
Файлы могут быть заблокированы локальными процессами ( разблокировщик - это инструмент для использования) и доступом к файлам, который приходит через общие ресурсы.
В Windows есть встроенная функция, которая показывает, какие файлы на локальном компьютере открыты / заблокированы удаленным компьютером (у которого файл открыт через общий файловый ресурс):
Там вы можете даже принудительно закрыть файл.
источник
Также есть просмотр открытых файлов NirSoft .
источник
С помощью Process Hacker вы можете легко определить, какие процессы хранят ваши файлы:
источник
Приведенные выше ответы с ответом касаются ситуаций, когда программный процесс удерживает дескриптор файла открытым, что (к счастью) происходит большую часть времени, однако в некоторых случаях (как это происходит в настоящее время в этой системе) сама система содержит дескриптор файла. открытый.
Вы можете идентифицировать эту ситуацию, следуя инструкциям, чтобы найти процесс хранения дескриптора файла с помощью проводника процессов выше, и отметив, что имя процесса указано как «system», или следуя инструкциям, используя монитор ресурсов, и отметив, что изображение не отображается открыть дескриптор файла для вашего интересующего файла (хотя, очевидно, что-то происходит, поскольку вы не можете редактировать / удалять и т. д. файл).
Если это произойдет, ваш вариант (насколько я знаю) - перезапустить - или забыть что-нибудь сделать с этим файлом.
источник
Некоторое время назад я был включен в расширенный диспетчер задач в блоге Джереми Заводни, и он отлично подходит для отслеживания дополнительной информации о процессах. +1 для Process Explorer, как и выше, особенно для процессов, которые не будут завершены стандартным диспетчером задач.
источник
Есть инструмент FILEMON и показывает открытые файлы и дескрипторы. Трудно не отставать от его дисплея, если вы смотрите его в прямом эфире, он делает это быстро. Но вы можете остановить его отображение в реальном времени, и вы можете наблюдать за всеми действиями по открытию / записи файлов. В настоящее время принадлежит Microsoft, но первоначально Sysinternals
источник