1000+ инструкций в блоге SoftComputers
0 0 голоса
Рейтинг

В Windows при попытке удалить, переименовать или переместить файл может появиться ошибка:

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

«Действие не может быть выполнено, так как этот файл открыт в System.»

Это происходит, когда файл заблокирован процессом, который удерживает его в монопольном режиме. Если приложение явно указано, его можно закрыть. Однако если файл занят системным процессом (например, System, антивирус, MSSQL) или неизвестным процессом, требуется диагностика. В этой статье мы рассмотрим, как найти и разблокировать файл с помощью утилит Process Explorer и Handle от Sysinternals, минимизируя риск завершения процессов.

Предупреждение: Принудительное закрытие дескрипторов файлов может вызвать нестабильность приложений или системы. Тестируйте на некритичных системах перед применением на продуктивных серверах.

Приобрести оригинальные ключи активации Windows 11 можно у нас в каталоге от 1690 ₽

1. Почему файл блокируется?

Когда процесс открывает файл, Windows назначает ему файловый дескриптор (handle), через который выполняются операции ввода-вывода. Дескриптор блокирует файл от других приложений, пока процесс не завершится или не освободит его. Блокировка может быть вызвана:

– Пользовательскими приложениями (например, Word, Notepad).

– Системными процессами (System, PID 4).

– Службами (антивирус, агенты резервного копирования, базы данных).

2. Разблокировка с помощью Process Explorer

Process Explorer — бесплатная утилита Sysinternals для анализа процессов и дескрипторов. Она позволяет найти и закрыть дескриптор файла без завершения процесса.

Шаги

1. Скачайте Process Explorer с сайта Microsoft.

2. Распакуйте и запустите procexp.exe с правами администратора.

3. Откройте поиск дескрипторов:

– Перейдите в Find -> Find Handle or DLL (или нажмите Ctrl+F).

4. Введите имя заблокированного файла (например, test.txt) и нажмите Search.

5. В списке результатов найдите нужный файл. Процесс, удерживающий файл, будет выделен в дереве процессов.

6. В нижней панели (включите через View -> Lower Pane View -> Handles) найдите дескриптор файла.

7. Щелкните правой кнопкой мыши по дескриптору и выберите Close Handle. Подтвердите действие.

Примечание: Закрытие дескриптора не завершает процесс, но позволяет разблокировать файл. Если нижняя панель не отображается, включите её в настройках.

Альтернатива: Завершение процесса

Если закрытие дескриптора нежелательно, завершите процесс:

– Щелкните правой кнопкой мыши по процессу в дереве и выберите Kill Process Tree.

Осторожно: Завершение системных процессов (например, PID 4) может привести к сбою системы.

3. Разблокировка с помощью Handle

Handle — консольная утилита Sysinternals для работы с дескрипторами из командной строки.

Шаги

1. Скачайте Handle с сайта Microsoft:

2. Распакуйте архив.

3. Запустите командную строку с правами администратора.

4. Выведите список всех дескрипторов:


handle64.exe > listproc.txt

Или для конкретного каталога/процесса:


handle64.exe -a C:\Some\Path
handle64.exe -p winword.exe

5. Откройте listproc.txt в текстовом редакторе и найдите имя заблокированного файла.

6. Запишите HandleID (в шестнадцатеричном формате, например, 18C) и ProcessID (PID, например, 18800) процесса, удерживающего файл.

7. Закройте дескриптор:


handle64.exe -c 18C -p 18800

8. Подтвердите действие, нажав y и Enter.

Работа с системными процессами

Если handle.exe возвращает ошибку, например:

wininit.exe pid: 732 , процесс работает с правами System. Для доступа:

1. Запустите командную строку с правами System (например, с помощью PsExec от Sysinternals: psexec -s -i cmd).

2. Повторите команду handle64.exe.

4. Альтернативные методы

Перезагрузка: Если завершение процесса или дескриптора невозможно, перезагрузите компьютер, чтобы освободить все дескрипторы.

Диспетчер задач: Найдите процесс вручную через Диспетчер задач (Ctrl+Shift+Esc) и завершите его, если это безопасно.

Resource Monitor: Встроенный resmon.exe позволяет найти дескрипторы:

1. Откройте Resource Monitor (resmon).

2. Перейдите на вкладку CPU -> Associated Handles.

3. Введите имя файла в поле поиска.

4. Завершите процесс (осторожно, только для несистемных процессов).

5. Рекомендации и устранение неполадок

Осторожность с системными процессами: Не закрывайте дескрипторы процессов с PID 4 (System) или других критических служб без тестирования.

Антивирус/службы: Проверьте, не блокирует ли файл антивирус или агент резервного копирования. Временно приостановите их.

Логирование: Если файл часто блокируется, настройте мониторинг с помощью Process Monitor (Sysinternals) для анализа.

Права: Убедитесь, что утилиты запускаются с правами администратора.

Сторонние утилиты: Избегайте утилит вроде Unlocker из-за ограниченной диагностики и риска установки нежелательного ПО.

Ошибка «Файл уже используется» в Windows возникает из-за блокировки файла процессом через дескриптор. Используйте Process Explorer для графического поиска и закрытия дескрипторов или Handle для работы в командной строке. Эти методы позволяют разблокировать файл без завершения процесса, минимизируя риски. Для системных процессов используйте права System. Диагностируйте блокировки с осторожностью, особенно на серверах, и всегда тестируйте действия на некритичных системах.

author avatar
copywriter
banner for Windows
Лицензионный ключ активации Windows от
1099 ₽ Купить
0 0 голоса
Рейтинг
Подписаться
Уведомить о
guest
     
0 отзывов
87
Межтекстовые Отзывы
Посмотреть все комментарии