Вопрос Узнайте, какой процесс блокирует файл или папку в Windows


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

Например, при попытке удалить папку Windows сообщает об этом:

Действие не может быть выполнено, потому что папка открыта в другой программе

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


512
2018-03-09 14:05


происхождения


Видеть этот вопрос ServerFault, - John Fouhy
Дубликат: superuser.com/questions/13291/how-do-i-delete-a-locked-file - heavyd
Ваш файл видео? Вы можете обнаружить, что сам проводник Windows «использует» файл ... - DisgruntledGoat
Как это дубликат? Он конкретно спрашивая, как узнать, какой процесс блокирует файл, а не как удалить заблокированный файл. - b1nary.atr0phy
Я не могу добавить встроенный, более простой ответ здесь, потому что он был неправильно помечен как обман, и я не могу добавить его в другой поток, потому что это относится только к XP. Но в любом случае для версий Windows с Resource Monitor (введите его в строке поиска) перейдите на вкладку CPU / Associated Handles, затем найдите файл или папку. - jontyc


ответы:


Метод PowerShell:

IF((Test-Path -Path $FileOrFolderPath) -eq $false) {
    Write-Warning "File or directory does not exist."       
}
Else {
    $LockingProcess = CMD /C "openfiles /query /fo table | find /I ""$FileOrFolderPath"""
    Write-Host $LockingProcess
}

Подробнее Как узнать, какой процесс блокирует файл или папку в Windows


34
2018-04-26 02:59



По какой-то причине это просто вернуло мне пустую строку. Я также запускал PS ISE в режиме администратора. - Dib
Сначала эту функцию необходимо включить с помощью openfiles /local on - mstrange
К сожалению, openfiles похоже, не работает на 64-битной Windows: ERROR: The target system must be running a 32 bit OS. - Thomas S.
Работает на Win10 64 для меня - Michael
Выполнение этого дало мне ту же ошибку «Отказано в доступе», которую я получал изначально, а затем всегда распечатывал сообщение об отсутствии сообщения об ошибке. Следующий ответ, однако, дал мне необходимую мне информацию - IIS блокировал каталог, который мне нужно изменить. - Chris Thompson


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

  1. открыто Монитор ресурсов, которые можно найти
    • При поиске resmon.exe в меню «Пуск» или
    • Как кнопка на Представление в вашем Диспетчер задач
  2. Открой ЦПУ и используйте поле поиска в Связанные ручки раздел
    • Указывается синей стрелкой на скриншоте снизу

В случае, если это не очевидно, когда вы нашли дескриптор, вы можете определить процесс, посмотрев столбец Image и / или PID.

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

Resource Monitor screenshot


425
2017-09-10 11:43



Примечание. Монитор ресурсов не обнаружил в моем случае никаких связанных обработчиков, тогда как Process Explorer (как описано выше) сделал. - ComFreek
@ComFreek Ну, ProcessExplorer может быть более мощным во многих случаях, но для меня Resource Monitor всегда обнаружил, что приложение блокирует файл, с которым я пытаюсь что-то сделать. Я также предпочитаю его обрабатывать Explorer просто потому, что он находится прямо в ОС. Нет необходимости в дополнительной загрузке и дополнительном ярлыке где-нибудь. - Svish
Я не мог найти это в Process Explorer, но было легко найти с помощью этих инструкций в диспетчере ресурсов. Благодарю. - Tatiana Racheva
@ComFreek В моем случае это был просто другой случай: Process Explorer не нашел дескриптор, в то время как Resource Monitor сделал. - Uwe Keim
+1 - это также отлично работает в Windows 10 - Matt Innes


Несколько вариантов:

Проводник Microsoft / SysInternals - Перейдите в раздел «Поиск»> «Найти ручку» или «DLL». В текстовом поле «Ручка или DLL подстрока:» введите путь к файлу (например, «C: \ path \ to \ file.txt») и нажмите «Поиск». Все процессы, у которых есть открытый дескриптор этого файла, должны быть перечислены.

WhoLockMe - Расширение проводника, которое добавляет пункт меню правой кнопки мыши

Нотабене Кажется, что WhoLockMe не работает с Win 10 (по крайней мере, мне не удалось зарегистрировать его в 32- или 64-разрядных версиях regsvr32.exe).


366
2018-03-09 14:22



В Windows 7, если вы попытаетесь удалить заблокированный файл, сообщение об ошибке сообщит вам, какой процесс заблокирован - Garry English
ПРИМЕЧАНИЕ. Unlocker устанавливает Adware, если вы не будете осторожны. На своем веб-сайте: «Рекламная функция: полностью необязательная панель инструментов Delta». - Julian Knight
@GarryEnglish почему-то это не всегда так. Мне просто пришлось использовать procexp, чтобы сообщить мне, что блокнот ++ имеет блокировку в папке. Windows 7 не смогла сказать мне виновника. - GuiSim
@ jpmc26 № WhoLockMe не работает в Windows 7. - ceving
@ GarryEnglish. Как заявлено GuiSim, это точно не всегда так, и, по моему опыту, это редко бывает. - dgo


Посмотри на Проводник процессов (procexp.exe).

Из введения:

Вы когда-нибудь задумывались, какая программа имеет определенный файл или каталог? Теперь вы можете это выяснить.

Чтобы узнать, какой процесс использует определенный файл, выполните следующие действия:

  1. Идти к найти, Найти Handle или DLL .. или просто нажмите Ctrl+F,

    Enter image description here

  2. Введите имя файла и нажмите Поиск,

    Enter image description here

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

    Enter image description here

  4. При желании вы можете даже вручную закрыть ручку через нижнюю панель (Ctrl+L):

    Enter image description here


175
2018-03-12 03:35



Process Hacker также может это сделать. - Benoit
В виде другой ответ упоминает, Ручка это инструмент командной строки из SysInternals, который также выполнит эту задачу. - heavyd
Я забыл, что в папке открываются cmd-процессы, proces explorer помог мне заметить это. - davejal
Примечание для Googlers, текущая версия PE больше не поддерживает Закрыть ручку - MickyD


LockHunter может разблокировать любые обработчики, которые могут заблокировать ваши файлы или папки. В отличие от подобных автострад, он поддерживает как 32, так и 64-битные Windows.

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

  • Показывает процессы, блокирующие файл или папку
  • Позволяет разблокировать, удалить, скопировать или переименовать заблокированный файл
  • Позволяет убить процесс блокировки
  • Позволяет удалить процессы блокировки с жесткого диска.
  • Интегрируется в меню Explorer
  • Он удаляет файлы в корзину, поэтому вы можете их восстановить, если их удалить по ошибке
  • Поддерживает 32-разрядную и 64-битную Windows

19
2018-03-13 22:06



Два первых ответа не помогли мне, а следующие сохраненные были либо заблокированы моим брандмауэром, либо предупреждены, что я не зашел на мой хром !. LockHunter отлично работал. - user3885927
Удачный охотник работал для меня, когда другие не - SheldonH


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

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


9
2018-03-12 03:37



@John: Ну, он идентифицирует программу, которая заблокировала файл. И вы можете вручную убить процесс через диспетчер задач. Тем не менее, обычно проще просто разблокировать файл (особенно когда это проводник, который заблокировал файл большую часть времени) вместо того, чтобы убить процесс, который заблокировал его (обычно из-за доступа к файлу и оставления обработчика файла из-за сбоя программы). - Lèse majesté


Здесь было мое открытие и решение.

Кстати, ни один из вышеперечисленных ответов не решил мою проблему.

Я даже пытался использовать UNLOCKER, который оказался бесполезным.

Моя проблема была в том, что Memeo Autosync Backup

По-видимому, этот процесс резервного копирования оставляет достаточно «призрачного файла». Этот «призрак, как файл», будет отображаться всякий раз, когда я буду использовать ALT-TAB на моем компьютере (Windows Professional XP), то есть я увижу, что в моей TASK BAR работает программа TWO MS Excel, когда у меня только один вид был ОДНИМ.

Я столкнулся с этим решением, когда подумал, что это может быть защита SYMANTEC Endpoint (Anti-Virus); и отключил программу. Однако я продолжал получать сообщение об ошибке:

не удается удалить (файл LARGE.xls): он используется другим человеком или программой. Закройте все программы, которые могут использовать этот файл, и повторите попытку.

Впоследствии я продолжал видеть уведомление Memeo о «синхронизации» и QUIT в программе.

Впоследствии NO NO ERROR.

Для вас это может быть ЛЮБОЙ из этих фона.


2
2017-10-13 09:43