- Как узнать, какой процесс блокирует файл или папку в Windows
- 1. Монитор ресурсов
- 2. Process Explorer
- 3. OpenedFilesView
- 4. LockHunter
- Windows заблокирован найти файл
- Что такое заблокированный файл
- Как разблокировать файл в Windows 10
- Снятие блокировки файла через PowerShell
- Как заблокировать файл в Windows 10
- Файл заблокирован процессом Windows, как снять блокировку?
- Как разблокировать файл с помощью Process Explorer?
- Сброс дескриптора файла с помощью утилиты Handle
Как узнать, какой процесс блокирует файл или папку в Windows
Как я могу узнать, какой процесс блокирует файл или папку в Windows? Например, при попытке удалить папку Windows сообщает следующее:
Операция не может быть завершена, так как эти папка или файл открыты в другой программе. Закройте папку или файл и повторите попытку.
Такая же ошибка может возникнуть при переименовании или удаления как папки, так и файла. Но как узнать, какая программа или приложение в настоящее время использует его и не позволяет удалить файл или папку?
Имеется сразу несколько способов и программ чтобы найти процессы и программы, которые открыли файл.
1. Монитор ресурсов
Для поиска программы или процесса, открывшей файл, вы можете использовать Монитор ресурсов (Resource Monitor), который встроен в Windows 7, 8 и 10.
Откройте Монитор ресурсов, это можно сделать несколькими способами:
- В поле для поиска введите «Монитор ресурсов» или resmon.exe:
- Или в Диспетчере задач перейдите на вкладку «Производительность» и найдите кнопку «Открыть монитор ресурсов»:
В Мониторе ресурсов перейдите на вкладку ЦП (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 полезен для борьбы с вредоносными программами и другими программами, которые блокируют файлы без причины. В отличие от других подобных инструментов, он удаляет файлы в корзину, поэтому вы можете восстановить их, если удалили по ошибке.
- Показывает процессы, блокирующие файл или папку
- Предоставляет вам подробную информацию о процессе
- Позволяет разблокировать, удалить, скопировать или переименовать заблокированный файл
- Может удалить файл при следующей перезагрузке ОС
- Позволяет убить процесс блокировки
- Позволяет удалить процессы блокировки с жёсткого диска
- Может выгружать DLL из процессов
- Интегрируется в меню Проводника
- Он удаляет файлы в корзину, поэтому вы можете восстановить их, если удалили по ошибке
- Поддерживает как 32, так и 64 битную Windows
Windows заблокирован найти файл
Добрый день! Уважаемые читатели и гости одного из крупнейших блогов по системному администрированию Pyatilistnik.org. В прошлый раз мы с вами научились производить обновление групповой политики разными методами, как локально так и удаленно. В сегодняшней заметке я рассмотрю более обыденный вопрос, как разблокировать файл в Windows 10, что это вообще за файлы и можно ли самому создать такой заблокированный файл. Уверен, что вы хоть раз да встречались с таким.
Что такое заблокированный файл
В операционной системе Windows 10 есть компонент «Диспетчер вложений (Attachment Manager)» — он нужен, чтобы помочь защитить ваш компьютер от небезопасных вложений, которые вы можете получить с помощью сообщения электронной почты, и от небезопасных файлов, которые вы можете сохранить из Интернета посредством браузера. Если Диспетчер вложений определяет вложение, которое может быть небезопасным, то он запрещает вам открывать файл или предупреждает вас перед его открытием.
Диспетчер вложений Windows использует интерфейс прикладного программирования (API) IAttachmentExecute, чтобы найти тип файла, найти ассоциацию файла. Когда одно из этих приложений сохраняет загруженный файл на диск, отформатированный в NTFS, он обновляет метаданные для файла с зоны, из которой он был загружен. Метаданные сохраняются как
- Тип программы, которую вы используете.
- Тип файла, который вы загружаете или пытаетесь открыть
- Параметры безопасности зоны веб-содержимого, из которой вы загружаете файл (Интернет, Местная интрасеть, Надежные узлы, Опасные сайты)
Диспетчер вложений классифицирует файлы, которые вы получаете или загружаете, в зависимости от типа файла и расширения имени файла. Диспетчер вложений классифицирует типы файлов как группы с высоким, средним и низким уровнем риска.
- Высокий риск — если вложение находится в списке типов файлов с высоким риском и находится в зоне ограниченного доступа, Windows блокирует доступ пользователя к файлу. Если файл находится в зоне Интернета, Windows предлагает пользователю предупреждение системы безопасности Windows: «Windows обнаружила, что этот файл потенциально опасен. Чтобы защитить ваш компьютер, Windows заблокировала доступ к этому файлу.»
- Умеренный риск — если вложение находится в списке типов файлов с умеренным риском и относится к зоне с ограниченным доступом или из Интернета, Windows выдает пользователю предупреждение: «Не удалось проверить издателя. Вы уверены, что хотите запустить это программное обеспечение?».
- Низкий уровень риска. Если вложение находится в списке типов файлов с низким уровнем риска, Windows не будет запрашивать пользователя перед доступом к файлу, независимо от информации о зоне файла.
Поэтому если простым языком, то заблокированный файл — это файл который попал под правила проверки диспетчером вложений и был помечен, как не заслуживающий доверия в виду того, что он был получен из недоверенного источника.
Вот вам пример оповещения от диспетчера вложений:
Если вы мой постоянный читатель, то помните что я уже сталкивался с ситуациями при которых я имел заблокированный, исполняемый файл exe. Вот два примера:
Вот так выглядит заблокированный файл, я для такой демонстрации заблокировал исполняемый файл chrome.exe запускающий браузер Google Chrome.
Как разблокировать файл в Windows 10
Существует минимум два метода позволяющих вам это сделать, первый, это самый простой из графического интерфейса, второй с использованием PowerShell. Я рассмотрю оба варианта. Щелкаете по заблокированному файлу правым кликом, переходите в его свойства и на вкладке «Общие» ставите птичку на против слова «Разблокировать«.
Применяем настройку, в итоге у вас пропадет поле «Разблокировать», в результате чего файл станет как проверенный и заслуживающий доверия.
Снятие блокировки файла через PowerShell
У меня для разблокировки файла есть командлет Unblock-File. Давайте я разблокирую файл chrome.exe. Для этого запустите окно PowerShell от имени администратора и введите команду:
В параметре -Path указываете полный путь до файла, если в пути есть пробелы в имени ,то заключите его в кавычки.
Если вам нужно разблокировать много файлов, то можно воспользоваться вот такой конструкцией:
В данном примере будут разблокированы все файлы содержащиеся в конечной папке. А вот так можно разблокировать по нужным именам:
Тут будут применены меры к файлам в имени которых есть «chr».
Так же можно использовать и командлет get-childitem, вот пример:
Как заблокировать файл в Windows 10
Если вы хотите сами заблокировать нужный файл, то вы можете это сделать через PowerShell. Вам нужно открыть PowerShell, перейти в расположение с файлом и выполнить код:
Set-Content chrome.exe -Stream «Zone.Identifier» -Value $data
В первой строке вам нужно подставить свой путь, в последней поменять имя на ваш файл.
На этом у меня все, мы с вами подробно разобрали, причину блокировки файлов в Windows, как это исправить и как самому его заблокировать. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.
Файл заблокирован процессом Windows, как снять блокировку?
Иногда при попытке удалить, переименовать или переместить какой-то файл в Windows вы можете получить сообщение, что файл занят/заблокирован/используется) другим процессом. Чаще всего имя программы, которая держит файл открытым указывается прямо в окне сообщения File Explorer. Чтобы снять блокировку файла достаточно просто закрыть эту программу. Но бывает ситуации, когда какой-то файл и библиотека используется неизвестным или системным процессом. В этом случае снять блокировку с файла немного сложнее.
Сообщение о блокировке файла может выглядеть по-разному. Например в следующем примере указан тип файла и с каким приложением он ассоциирован:
В этом случае вы можете легко понять какое приложение заблокировало файл и закрыть его.
Однако иногда можно увидеть более интересное сообщение, о том, что файл заблокирован неизвестным или системным процессом Windows. Это может быть, как процесс самой ОС Windows, так и другие процессе, работающий с правами System, например, антивирус, агент резервного копирования, база данных mssql и т.д.):
Попробуем разобраться, как понять какой программой, службой или системным процессом Windows занят файл, как разблокировать файл и можно ли разблокировать файл не закрывая родительский процесс.
Самый простой вариант разблокировать файл – завершить процесс, которые его заблокировал. Но это не всегда возможно, особенно на серверах.
Кроме того, это сторонняя утилита, при установке которой нужно быть внимательным, т.к. в процессе она предлагает установить пачку ненужные программы в нагрузку.
Когда процесс в Windows открывает файл, этому потоку ввода/вывода назначается файловый дескриптор (handler). Процесс и его дочерние процессы получают доступ к файлу по этому дескриптору. Через Window API вы можете послать сигнал файловой системе на освобождение данного дескриптора и снятие блокировки с файла.
Как разблокировать файл с помощью Process Explorer?
ProcessExplorer это бесплатная утилита из набора системных утилит Sysinternals, которую можно скачать на сайте Microsoft (https://docs.microsoft.com/en-us/sysinternals/downloads/process-explorer). Попробуем с помощью Process Explorer найти, какой процесс заблокировал определенный файл и освободить этот файл, сбросив файловый дескриптор процесса.
- ProcessExplorer не требует установки, просто скачайте распакуйте и запустите с правами администратора procexp.exe ;
- Выберите меню Find ->Find Handle or DLL (или нажмите Ctrl-F );
- Укажите имя файла, который нужно разблокировать и нажмите Search;
- Выберите нужный файл. Процесс, который открыл файлы будет выделен в дереве процессов. Можно завершить этот процесс, щелкнув по нему правой кнопкой и выбрав Kill Process Tree. Но можно попробовать закрыть дескриптор файла, не завершая процесс целиком. Дескриптор файла, который вы искали, автоматически выделяется в нижней панели Process Explorer. Щелкните по дескриптору правой кнопкой и выберите Close handle. Подтвердите закрытие файла.
Итак, вы закрыли дескриптор файла, не завершая родительский процесс. Теперь вы можете спокойно удалить или переименовать файл.
Сброс дескриптора файла с помощью утилиты Handle
Handle – это еще одна утилита командной строки из комплекта инструментов Sysinternals (доступна для скачивания на сайте Microsoft (https://docs.microsoft.com/en-us/sysinternals/downloads/handle. Она позволяет найти процесс, который заблокировал ваш файл и снять блокировку, освободив дескриптор.
- Скачайте и распакуйте архив с утилитой Handle;
- Запустите командную строку с правами администратора и выполните команду: handle64.exe > listproc.txt
Данная команда сохранит список открытых дескрипторов в файл. Можно вывести дескрипторы для каталога, в котором находится файл, который вы хотите изменить: Handle64.exe -a C:\Some\Path или конкретного процесса: handle64.exe -p winword.exe
- Откройте файл listproc.txt в любом текстовом редакторе и найдите строку, в которой указано имя заблокированного файла. Скопируйте ID дескриптора файла (значение в hex формате). Затем поднимитесь немного выше к разделу, в котором указан процесс, являющийся владельцем данного дескриптора и запишите его ID. Для процесса запущенного от имени системы скорее всего будет PID 4.
Если система отреагирует на закрытие файла корректно, вы разблокируете ваш файл без необходимости завершать процесс или перезагружать сервер/компьютер.