Как узнать чем используется файл
Как узнать, какой процесс блокирует файл или папку в Windows
Как я могу узнать, какой процесс блокирует файл или папку в Windows? Например, при попытке удалить папку Windows сообщает следующее:
Операция не может быть завершена, так как эти папка или файл открыты в другой программе. Закройте папку или файл и повторите попытку.
Такая же ошибка может возникнуть при переименовании или удаления как папки, так и файла. Но как узнать, какая программа или приложение в настоящее время использует его и не позволяет удалить файл или папку?
Имеется сразу несколько способов и программ чтобы найти процессы и программы, которые открыли файл.
1. Монитор ресурсов
Для поиска программы или процесса, открывшей файл, вы можете использовать Монитор ресурсов (Resource Monitor), который встроен в Windows 7, 8 и 10.
Откройте Монитор ресурсов, это можно сделать несколькими способами:
В Мониторе ресурсов перейдите на вкладку ЦП (CPU). Используйте поле поиска в разделе «Связанные дескрипторы»
В результатах поиска в столбце «Образ» вы увидите, какая программа запустила процесс, блокирующий файл.
Здесь же вы можете кликнуть правой кнопкой мыши по любому найденному процессу и нажать «Завершить процесс», чтобы закрыть программу, блокирующую файл.
2. Process Explorer
Process Explorer — это официальная программа от Microsoft/SysInternals, которую можно скачать по ссылке: https://download.sysinternals.com/files/ProcessExplorer.zip
Перейдите в Find → Handle or DLL.
В текстовом поле «Handle or DLL substring:» введите путь до файла или папки. Будут показаны все процессы, которые имеют открытый обработчик на этот файл.
3. OpenedFilesView
OpenedFilesView это бесплатная программа не требующая установки, она покажет все открытые файлы, имеется возможность искать по имени или пути файла:
4. LockHunter
LockHunter — это надёжная программа для разблокировки файлов.
Это бесплатный инструмент для удаления файлов, заблокированных неизвестным процессом. LockHunter полезен для борьбы с вредоносными программами и другими программами, которые блокируют файлы без причины. В отличие от других подобных инструментов, он удаляет файлы в корзину, поэтому вы можете восстановить их, если удалили по ошибке.
Как узнать чем используется файл
Один из них такой: А вот как определить процесс, если этим процессом является драйвер?
В таких случаях Unlocer пишет, что процесс не блокирован, но удалить, переместить, переименовать файл можно только при перезагрузке.
NirSoft OpenedFilesView кроме того, что это процесс системный, тоже не пишет ничего.
Ни Process Explorer, ни Process Monitor, ни другие утилиты не пишут каким процессом занят файл, если этим процессом является какой-нибудь драйвер.
В папке C:\Windows\Temp у меня появился фай TmpFile1.
Разер файла 8 409 088 Байт (ровно 16424 кластера).
Удалить, переместить, переименовать его ничем не возможно.
Определить, какой процесс его создает, тоже не получается.
«Методом тыка» и путем «гугления» проблемы, путем проб и ошибок, было найдено, что этим процессом является драйвер.
Короче, с какой-то программой, даже не знаю какой, установился алладиновский драйвер защиты Driver Sentinel HASP.
Если проделать операции Диспетчер устройств >>> Вид >>> Показать скрытые устройства >>> Драйверы несамонастраиваемых устройств >>> aksdf >>> Свойства >>> Драйвер >>> Остановить, то файл C:\Windows\Temp\TmpFile1 сразу же исчезает, но при включении драйвера он сразу же появляется опять.
Так же, когда у меня стоял Kaspersky Cristal, какой-то один из его драйверов так же создавал в папке C:\Windows\Temp какие-то файлы, которые так же удалить, переместить, переименовать было невозможно, которые так же сами исчезали после отключения драйвера и появлялись после включения.
Вот и основной вопрос: «Как программно, не «методом тыка», не «гуглением», а средствами Windows, определить, каким процессом занят файл, если этим процессом является драйвер?»
|