Программа Windows для просмотра, какая программа использует файл

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

Есть ли программа, которая позволяет мне для данного файла узнать, какая программа его использует, и завершить эту программу?

Когда я использовал MS-Windows, я обнаружил, что в большинстве случаев именно проводник Windows блокирует файл. Мне показалось странным, что проводник Windows описывает себя как другой процесс.
Кто-то должен добавить ответ для монитора ресурсов, который можно легко вызвать на вкладке производительности монитора задач (т.е. ничего лишнего для установки). Это позволяет вам искать имя файла и находить процессы, которые заблокировали его. Я работаю прямо сейчас, и у меня нет времени, чтобы дать ему ответ, которого он заслуживает.
Почему три ответа указывают на инструменты Руссиновича SysInternals, а четвертый — на рекламное ПО?
Привет, Гибби, если какие-либо из этих ответов оказались полезными, отметьте их как принятые, поставив галочку рядом с ними. Спасибо!

Ответы (7)

LockHunter — еще один отличный бесплатный инструмент.

ссылка на скачивание

+1 Ты меня опередил. Он не только делает то, о чем здесь просят, но и работает намного лучше, чем другие «разблокировщики файлов». Настоятельно рекомендуется. Я пробовал их, пробую повторно каждые несколько месяцев, и это все еще лучшее спустя много лет.
@Pacerier Интересное сравнение. Из них, я думаю, меня волнует только проверка «Выгрузить DLL», остальное мне кажется тривиальным. Также я думаю, что таблица может быть устаревшей, потому что следует отметить «С перезагрузкой», поскольку в LockHunter есть опция «удалить при следующей загрузке». В любом случае, основная причина, по которой я выбрал LockHunter, а не Unlocker, заключалась в том, что Unlocker не работал в Windows 8. Я не знаю, работает ли он сейчас, но в разделе загрузки по-прежнему не упоминается конкретно Windows 8.
@laggingreflex, что на самом деле означает «Выгрузить DLL»?
DLL загружаются через такие программы, как rundll.exe, я думаю, это означает, что он их выгрузит.
Он выгрузит их, если это единственное текущее использование. Windows ведет текущий подсчет процессов, использующих каждую DLL, и сбрасывает их из emery только тогда, когда завершается последний процесс.

Я регулярно использую Process Explorer ( бесплатно от Microsoft) , чтобы делать именно то, о чем вы просите, вы можете искать, какие программы / задачи используют данный файл или каталог, а затем уничтожать программу или дерево программ. Вы даже можете найти DLL, которая заблокировала данный файл, а затем найти и убить те программы, которые используют эту DLL.

Главное окно обозревателя процессов

Это также дает вам много другой полезной информации. Системная информация

Большое спасибо, наконец-то убил постоянный файл ehmsas.txt. Работает чудесно, осталось только найти кнопку поиска (это иконка бинокля на панели инструментов)
@David - Рад, что помог, это одна из первых программ, которые я устанавливаю на новый компьютер с Windows.
@Pacerier - Не совсем, хотя в нем упоминается, что другие программы, такие как Process Explorer, делают много других вещей, которые он пропускает а) Вы можете принудительно выгрузить DLL, просто убив все процессы, которые используют эту DLL, б) Вы можете принести каждый программа, в которой ваш файл открывается на передний план, прежде чем убить его, чтобы убедиться, что его безопасно убить - нет пропущенных сохранений c) я бы никогда не подумал рекомендовать/использовать что-либо, заведомо содержащее вредоносное/рекламное ПО
@SteveBarnes, что касается пункта A , означает ли «выгрузка Dll» то же самое, что и «принудительное уничтожение»? Кроме того, вы должны уточнить пункт C. Является ли анлокер вредоносным ПО?
О: Не совсем так: если DLL выгружается, когда одна или несколько программ, использующих ее, все еще работают, то либо она будет загружена, либо программа(ы) станет нестабильной. C: См. ответ Winterbloods по поводу установки анлокера .

Попробуйте анлокер .

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

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

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

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

На следующем изображении показан диалог, который я получил в результате модуля OpenCandy, где я уже выбрал «Дополнительно» и снял флажок «Установить панель инструментов Delta»:

Установщик панели инструментов Delta

@DanteTheEgregore Я думал, что рекламное ПО показывает только установщик, а не сама программа Unlocker. Если вы нажимаете правильные кнопки во время установки, вы все еще получаете рекламное ПО?
@DanteTheEgregore Спасибо за предупреждение. Честно говоря, до сегодняшнего дня я не знал о потенциальных вредоносных программах в установщике. Я никогда не использовал установщик, но всегда вручную извлекал необходимые файлы из исполняемого файла, чтобы поместить их в портативный пакет. Я отредактировал ответ, чтобы показать, как избежать потенциального вредоносного ПО в установщике.
Анлокер работает на виндовс 8? Он продолжает говорить мне, что «дескриптор блокировки не найден», даже когда у меня открыт файл.
@ValekHalfHeart Я не уверен, извините, и у меня нет ПК с Windows 8, чтобы проверить это. И на официальном сайте, и на CNET указана ОС как до Windows 7, но другие сайты загрузки (включая windows8downloads.com) указывают ее как совместимую с Windows 8.

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

Как и в случае с любым программным обеспечением sysinternals, оно крошечное, портативное и делает именно то, что написано на жестяной банке — оно буквально не имеет других функций, кроме мониторинга процессов по файловой системе, реестру, сети и активности процессов. Учитывая необходимый уровень доступа, его необходимо запускать от имени администратора/пройти эскалацию UAC.

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

введите описание изображения здесь

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

handle — это инструмент командной строки от Microsoft, делающий именно это. Его написала компания Sysinternals , ныне принадлежащая Microsoft. Вы можете дать ему имя файла или каталога (или любой « дескриптор »), и он напечатает exe программы и идентификатор процесса (PID). Вы можете дать ему частичные имена файлов, т.е. "фрагменты" тоже.

Основное использование:

handle c:\movie.mp4

напечатает его заголовок, а затем что-то вроде

vlc.exe       pid: 1256   type: File           1EC: c:\movie.mp4

Использование печатается сhandle -h

Удобный способ его использования — список файлов, открытых на вашем флеш-накопителе. Если ваше перо D:, вы можете запустить, handle D:и оно напечатает, какие программы используют ваш диск и какой файл.


примечания к сценариям

Первое использование запрашивает GUI для EULA. Раньше был -accepteulaпараметр, который не работает со всеми последними версиями. Значение хранится в dword HKEY_CURRENT_USER\Software\Sysinternals\Handle\EulaAccepted. Вы можете иметь тот же эффект, что и accept, добавив

REG ADD "HKCU\Software\Sysinternals\Handle" /v EulaAccepted /t REG_DWORD /d 1 /f

Есть много других интересных утилит sysinternals , размещенных на сайте Microsoft.

день, когда я набрал 386 очков. до встречи на 80386!

Process Hacker делает это:

Особенности
- Подробный обзор системной активности с подсветкой.
- Графики и статистика позволяют быстро отслеживать пожиратели ресурсов и неуправляемые процессы.
- Не можете редактировать или удалить файл? Узнайте, какие процессы используют этот файл.
- Посмотрите, какие программы имеют активные сетевые подключения, и при необходимости закройте их.
- Получайте информацию о доступе к диску в режиме реального времени.
- Просмотр подробных трассировок стека с поддержкой режима ядра, WOW64 и .NET.
- Выходите за рамки services.msc: создавайте, редактируйте и контролируйте службы.
- Маленький, портативный и не требует установки.
- 100% бесплатное программное обеспечение (GPL v3)

https://github.com/processhacker/процессхакер

Для этого вы можете использовать монитор ресурсов , встроенный в Windows 7, 8, 10 и 11!

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

Когда вы нашли дескриптор, вы можете идентифицировать процесс, взглянув на столбец Image и/или PID.

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

Скриншот монитора ресурсов

От: https://superuser.com/questions/117902/find-out-what-process-is-locking-a-file-or-folder-in-windows/643312#643312