Как узнать, кто заблокировал файл или папку

Я регулярно пользуюсь утилитами Sysinternals и хочу поделиться одним из cпособов как при помощи Process Explorer выяснить какой процесс заблокировал доступ к файлу или папке.

Использовать утилиты очень удобно – они бесплатны, не требуют инсталляции и могут быть запущены без предварительного скачивания из интернета (см http://live.sysinternals.com/). Последние 2 пункта делают их очень удобными при анализе и устранении проблем на серверах.

Я недавно завел Ютуб-канал, где выкладываю видео по теме блога. Приглашаю Вас посмотреть и подписаться что бы не пропустить новые выпуски.



Итак, как же узнать, кто держит тот или иной файл или папку.

Для скриншотов я смоделировал такую ситуацию нарочно, открыв в Word файл "D:\temp\Doc1.docx" и пытаясь его в это же время удалить в проводнике. При попытке удалить файл получаю следующее сообщение

image

Поищем этот документ в Process Explorer: Find->Find Handle or DLL…

В появившемся окне вводим имя заблокированного файла и жмем Search

image

Двойной клик на найденном файле и вы переходите в дерево процессов.

В нижем списке выбираете ваш файл (он подсвечен серым) и в контекстном меню выбираете команду Close Handle. Соглашаетесь с предупреждением, что приложение может упасть и все. Файл разблокирован и может быть спокойно удален.

Есть еще один способ сделать то же самое – воспользоваться утилитой Unlocker. Она тоже бесплатна и ее можно скачать с сайта разработчика http://cedrick.collomb.perso.sfr.fr/unlocker/.

Утилита требует инсталляции . После инсталляции, в проводнике, в контекстном меню появится пункт Unlocker.

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

image

Это конечно проще чем с Process Explorer :). Еще один плюс – если файл нельзя удалить сразу, например какой-нибудь системный файл, то Unlocker может предложить его удалить во время перезагрузки системы.

Комментарии

Nikolay Osinin написал(а)…
Кстати, с помощью Unlocker можно определить блокирующий процесс не только для файлов и папок, но и для дисков. Это иногда полезно при использовании USB-флэшек, внешних винчестеров и т.п. При попытке отключения появляется сообщение о том, что устройство занято и не может быть отключено. Тогда запускаем Windows Explorer и открываем контекстное меню для диска, который мы хотим отключить. Unlock сработает наверняка.
charango написал(а)…
Ещё есть Lock Hunter:
http://lockhunter.com/
Андрей Бороздин написал(а)…
Спасибо, обязательно попробую.
Анонимный написал(а)…
так можно определить что блокировано локально. Если же это сетевой диск то увы
Анонимный написал(а)…
Открытые файлы по сети должны быть видны в управлении компьютером.
Анонимный написал(а)…
Открытые файлы по сети должны быть видны в управлении компьютером.-
это если вам известно каким именно ПК)

Популярные сообщения из этого блога

Команды docker save/load, docker export/import – в чем отличие, как и когда ими пользоваться

Как "заглянуть" внутрь запущенного докер-контейнера