Windows 7 процесс не может получить доступ к файлу

Почему процесс не может получить доступ к файлу и что делать?

Чтобы удалить или изменить файл, он обязательно должен быть свободен от других процессов. Если его уже использует какая-то программа, система накладывает запрет на редактирование элемента, так как это повредит работу программного обеспечения. В этом случае появляется сообщение «Процесс не может получить доступ к файлу, так как этот файл занят другим процессом». Чтобы это исправить, нужно освободить его. Только вот сделать подобное куда сложнее, чем кажется на первый взгляд.

Почему «Процесс не может получить доступ к файлу»?

Одновременно работать с конкретным файлом может только одна программа. Речь идет не о библиотеках общего использования, которые используются только для извлечения данных, а об элементах, предназначенных для перезаписи. Если это кэш-файл игры, здесь содержится пользовательская информация или происходит постоянная обработка данных, и Windows накладывает ограничение. Данные файлы становятся недоступными для удаления или ручного изменения до тех пор, пока мы не завершим процесс, использующий их.

Как удалить файл, если процесс не может получить доступ к файлу?

Следуя по логической цепочке, для удаления любого файла, нужно сначала выгрузить его с оперативной памяти и со всех программ. Как только он перестанет использоваться системой в каких-то процессах, элемент сразу станет доступным для удаления.

Главная сложность данного вопроса в том, чтобы найти процесс, использующий конкретный файл. Это не всегда очевидно. Часто бывает, что изображение использует какая-то игра, браузер, торрент, медиапроигрыватель. Если в первую очередь подумать на программу просмотра картинок, вы ошибетесь. Нужно смотреть куда глубже.

Как можно решить проблему «процесс не может получить доступ к файлу»:

  • Unlocker – специальная программа, созданная как раз для подобных ситуаций. Она автоматически обнаруживает связанные с файлом процессы и завершает их. По сути она делает то же самое, что нужно выполнять вручную, но только в автоматическом режиме. Она имеет минимальный размер и проверена во многих системах, поэтому точно не заражена вирусами. После скачивания и установки, нужно нажать правой кнопкой мыши по файлу и выбрать «Unlock».
  • Завершить связанные процессы. Обычно вполне реально догадаться, какая именно задача использует файл. Для этого нужно открыть Ctrl + Shift + Esc и развернуть список «Подробнее». Здесь будет довольно много процессов, но большинство из них системные, нужно найти те, которые были запущены пользователем. Чтобы удалить файл кэша Google Chrome, нужно закрыть все задачи Google. Для их завершения нужно нажать правой кнопкой мыши и выбрать «Снять задачу».

Процесс не может получить доступ к файлу

  • Установить правильные атрибуты. К каждому файлу можно установить подходящие привилегии. Нужно нажать правой кнопкой мыши по файлу и на вкладке «Общие» установить пункт «Только чтение». После перезагрузки компьютера возможность удаления может появиться.
  • Удаление в безопасном режиме. Очень часто это срабатывает, так как при данном способе запуска система не загружает все посторонние программы. Нужно кликнуть на перезапуск ПК и в момент пуска нажать клавишу F8 (может быть другая) для выбора варианта запуска. В безопасном режиме удалить можно практически любой файл.
  • Снять защиту диска на запись. Она может быть установлена на программном и физическом уровне. Первым делом нужно посмотреть на накопителе (обычно это флешка), нет ли здесь специального тумблера. Рядом должна быть соответствующая пометка. В системе в редакторе реестра также следует найти параметр WriteProtect и установить ему значение 0.

Процесс не может получить доступ к файлу

Как исправить проблему при использовании консоли и IIS?

Точно такая же самая ошибка «процесс не может получить доступ к файлу» может появиться при запуске команды netsh или при выполнении настройки сайта IIS. В таком случае проблема может быть вызвана недостатком прав для выполнения действия, попытке подключения к занятым портам 80 и 443 или некорректной настройкой реестра.

3 способа исправить ошибку:

  • Запустить консоль с повышенными привилегиями. Для этого в меню Пуск нужно ввести «Командная строка» и выбрать «Запуск от имени администратора».
  • Переключиться на другой пул IP-адресов. Также это может сработать при конфликте между DNS и Quickbooks. Достаточно выполнить команду netsh int ipv4 set dynamicport tcp start=10000 num=1000 – затем такую же самую, но вместо tcp следует ввести udp.
  • Устранить конфликты портов. Следует запустить консоль с правами админа, вставить netstat -ano и посмотреть, заняты ли порты 80 и 443. Если они не задействованы, придется перейти по пути HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters\ListenOnlyList в редакторе реестра. Теперь в консоли следует ввести net stop http и в параметре реестра ListenOnlyList нужно оставить только 0.0.0.0. Остается только запустить службу повторно net start http. Если порты заняты, нужно их либо освободить, либо переопределить.

Процесс не может получить доступ к файлу

Перечисленных выше действий достаточно, чтобы исправить проблему «Процесс не может получить доступ к файлу». После выполнения процедур удастся либо удалить файл, либо восстановить нормальную работу Windows IIS 6.0 и 7.0.

Когда файл занят каким-то процессом с ним не получится произвести никаких действий, ни изменить, ни удалить. Все дело в том, что система накладывает ограничения на выполнение редактирования файла, так как это, на самом деле, может нанести вред программному обеспечению. При таких обстоятельствах и возникает сообщение об ошибке, которое гласит: «Процесс не может получить доступ к файлу, так как этот файл занят другим процессом». Подумав логически можно сделать вывод: чтобы открыть доступ этому самому процессу, надо освободить файл от другого процесса. А вот с этим сталкивался, наверное, каждый из нас и знает, что сделать это, чаще всего, гораздо сложнее, чем кажется изначально.

Все из-за того, что с файлом может одновременно работать лишь одно приложение. В первую очередь это касается элементов системы предназначенных для перезаписи. Когда мы, например, играем в игру и файл с кэшем постоянно подвергнут обработке, система Windows накладывает ограничение. После этого редактировать, заменять, удалять и т.д. его уже не получается ровно до тех пор, пока процесс, который с ним работает, не будет завершён.

Файл, который занят другим процессом будет загружен в оперативную память или открыт приложением. Зачастую хватает убрать его из оперативки и всех приложений. Файл перестанет использоваться каким-то процессом и его сразу можно будет отредактировать или удалить.

Чаще всего, проблема заключается в том, чтобы найти этот самый процесс, который использует определённый файл. Использовать ваш файл может какое угодно приложение. Если это, допустим, картинка, вы закрыли программу просмотра картинок и у вас получается удалить это изображение, то считайте вам повезло. Если же нет, то, возможно, придется лезть куда глубже.

1. Unlocker — программа, которая помогает как раз в таких случаях. Она сама находит процессы, которые заняты этим файлом и завершает их. Это можно сделать и без утилиты, только придётся искать в ручную и завершать, а утилита это делает автоматически. Скачав и установив программу, нужно всего лишь нажать ПКМ на файл и выбрать «Unlock»

2. Завершить вручную. Открываем диспетчер задач и разворачиваем список «Подробнее». Из всего большого списка, нужно выбрать только те, которые были запущены Вами. Например, для удаления файла с кэшем браузера, нужно закрыть все задачи браузера. Для этого кликаем правой кнопкой мыши и нажимаем «Завершить задачу».

3. Схитрить с установкой атрибутов. Нажать ПКМ на файл и зайти в свойства. Тут же на вкладке «Общие» поставить галочку напротив поля «Только чтение». Далее перезагрузить компьютер и возможность удаления может появиться.

4. Удалить в безопасном режиме. В безопасном режиме Windows загружает только основные программы нужны для работы системы. Все посторонние остаются отключены, что освобождает файлы от процессов. Для входа в безопасный режим нужно перезагрузить компьютер и во время перезагрузки нажать на клавишу F8 для того, чтобы выбрать вариант запуска системы. На некоторых ПК это может быть другая клавиша. Данный способ довольно часто срабатывает и удалить здесь можно почти любой файл, который не затрагивает работу Windows.

5. Снять защиту на запись. Защита может быть включена как программно, так и механически. Чаще всего это касается SD-карт. На них есть специальный тумблер, который блокирует запись. Программно это выключается через редактор реестра. Для этого нажимаем на Пуск правой кнопкой мыши, выбираем «Выполнить», вводим команду regedit и нажимаем «Ok». Далее нужно найти параметр WriteProtect и установить ему значение 0.

Часто такая же проблема, когда процесс не может получить доступ, может выскочить при выполнении команды netsh в командной строке или при настройке сайта IIS. Тут может быть несколько причин:

1. Неправильная настройка реестра.

2. Попытка подключения к портам 80 и 443, когда они заняты. 

3. Не хватает прав для выполнения действия.

А решить проблему можно так:

1. Запустить cmd от имени администратора. Сделать это можно в меню Пуск с помощью правой кнопки мыши.

2. Поменять пул IP-адресов. Выполнить команду netsh int ipv4 set dynamicport tcp start=10000 num=1000. Затем такую netsh int ipv4 set dynamicport udp start=10000 num=1000.

3. Удалить конфликт портов. От имени администратора запустить командную строку, прописать netstat -ano и посмотреть не заняты ли порты 80 и 443. Если порты свободны, то идём в реестр по пути: 

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters\ListenOnlyList 

Далее в cmd вводим net stop http и в параметре реестра ListenOnlyList нужно оставить одни 0.0.0.0. Далее опять в консоли пишем net start http. Если порты в итоге заняты, то их нужно или освободить или переопределить.

С помощью таких манипуляций можно справиться с ошибкой «Процесс не может получить доступ к файлу» и удалить файл.

С ошибкой «Процесс не может получить доступ к файлу, так как этот файл занят другим процессом» пользователи часто сталкиваются при попытке выполнить команду netsh или в процессе настройки сайта IIS. Узнаем, как ее исправить.

Причины ошибки

Если в ходе настройки сайта IIS или выполнения другого действия система неожиданно выбрасывает сообщение об ошибке, в котором указано, что процессу не удается получить доступ к файлу, то это может произойти по следующим причинам:

  1. Отсутствуют права администратора для запуска команды из консоли командной строки или PowerShell.
  2. Порт 80 или 443 используется другим процессом, что типично для компьютеров под управлением IIS (Internet Information Services).
  3. Неправильно настроен раздел реестра ListenOnlyList в оснастке IIS.

Запуск команды с доступом администратора

Если не удается выполнить команду netsh, скорее всего, ошибка возникает из-за отсутствия прав администратора. В большинстве случаев это происходит, когда пользователь пытается запустить команду, которая добавляет исключения в динамический диапазон портов для собственных приложений Windows или сторонних программ. Имейте в виду, что эта операция требует доступа администратора. Чтобы предоставить его, выполните следующие шаги.

С помощью системного поиска найдите командную строку и запустите ее с правами администратора. Если отобразится запрос контроля учетных записей (UAC), подтвердите его нажатием на кнопку «Да».

В командной строке выполните еще раз команду и проверьте, не прерывается ли ее запуск ошибкой «Процесс не может получить доступ к файлу, так как этот файл занят другим процессом»

Установка другого диапазона IP-адресов

Если не удалось решить конфликт DNS с помощью утилиты netsh, попробуйте использовать другой подход. По отзывам пользователей, проблема была разрешена после того, когда они установили совершенно другой диапазон IP-адресов вместо создания диапазона исключений. Этот способ подтвержден при разрешении конфликта между DNS и бухгалтерской программой Quickbooks.

В консоли командной строки с администраторскими правами запустите следующие команды:

  • netsh int ipv4 set dynamicport tcp start=10000 num=1000
  • netsh int ipv4 set dynamicport udp start=10000 num=1000

Если этот метод не применим к вашей ситуации, перейдите к следующему способу.

Разрешения конфликта портов IIS

Если столкнулись с ошибкой при правом щелчке мыши на элемент сайта внутри оснастки IIS MMC, попробуйте использовать утилиту Netstat.exe, чтобы узнать, занят ли порт 80 или 443 другим процессом. Эта проблема распространена на компьютерах под управлением Microsoft IIS 6.0 и 7.0. Основываясь на официальной документации Майкрософта, сообщение об ошибке появится в случае, если одно из следующих условий применимо к текущей ситуации:

  1. Параметр ListenOnlyList неправильно настроен на компьютере IIS.
  2. Другой процесс использует TCP-порт (80) или SSL-порт (443), требуемый IIS.

Для исправления ошибки сначала запустим утилиту Netstat.exe, чтобы определить, использует ли другой процесс указанные порты. Если они не заняты другим процессом, проверим раздел ListenOnlyList, правильно ли он настроен.

Откройте командную строку, предоставив ей доступ администратора, с помощью поисковой системы Windows. Для запуска утилиты Netstat.exe выполните команду:

netstat -ano

При отображении результатов, прокрутите список активных подключений и проверьте, занятии ли порты 80и 443 другим процессом.

При их использовании отображаемая информация позволит определить причину ошибки. Для этого поищите в интернете конкретные шаги по разрешению конфликта в соответствии с PID-порта.

Если порты не используются, закройте командную строку и запустите Редактор реестра командой regedit из окна Win + R.

На левой панели навигации перейдите в следующее расположение:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters\ListenOnlyList

Если по указанному пути ListenOnlyList отсутствует, не нужно его создавать, поскольку по умолчанию используется IP-адрес 0.0.0.0.

Перед редактированием раздела нужно становить службу HTTP, на которой работает IIS. Поэтому временно сверните редактор реестра, поскольку сейчас вернемся к нему.

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

В консоли выполните указанную команду, чтобы остановить службу HTTP, ответственную за запуск IIS:

net stop http

Чтобы продолжить операцию, введите «Y» и нажмите на Enter. После успешного завершения закройте консоль и вернитесь в редактора реестра.

Перейдите на правую панель раздела ListenOnlyList и убедитесь, что он содержит допустимые IP-адреса. При обнаружении недопустимых адресов, удалите их.

Если присутствует адрес 0.0.0.0, нужно удалить все остальные IP-адреса. После закройте редактор и перезагрузите ПК.

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

net start http

Если отобразится сообщение, что запрошенная служба уже запущена, следуйте далее.

Попробуйте запустить службу из оснастки IIS MMC. После этого больше не должны сталкиваться с ошибкой, когда процессу не удается получить доступ к файлу, поскольку файл занят другим процессом.

Иногда при попытке удалить, переименовать или переместить какой-то файл в Windows вы можете получить сообщение, что файл занят/заблокирован/используется) другим процессом. Чаще всего имя программы, которая держит файл открытым указывается прямо в окне сообщения File Explorer. Чтобы снять блокировку файла достаточно просто закрыть эту программу. Но бывает ситуации, когда какой-то файл и библиотека используется неизвестным или системным процессом. В этом случае снять блокировку с файла немного сложнее.

Многие приложения открывают файлы в монопольном (эксклюзивном) режиме. При этом файл блокируется файловой системой от операций ввода вывода других приложений. Если вы закрываете приложение, блокировка с файла снимается.

Сообщение о блокировке файла может выглядеть по-разному. Например в следующем примере указан тип файла и с каким приложением он ассоциирован:

File/Folder in Use. The action can’t be completed because the file is open in another program. Close the folder or file and try again.
Файл уже используется. Операция не может быть завершена, так как файл или папка открыта в другой программе. Закройте файл и повторите попытку.

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

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

Однако иногда можно увидеть более интересное сообщение, о том, что файл заблокирован неизвестным или системным процессом Windows. Это может быть, как процесс самой ОС Windows, так и другие процессе, работающий с правами System, например, антивирус, агент резервного копирования, база данных mssql и т.д.):

The action can’t be completed because the file is open in SYSTEM.
Файл уже используется. Действие не может быть выполнено, так как этот файл открыт в System.

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

Попробуем разобраться, как понять какой программой, службой или системным процессом Windows занят файл, как разблокировать файл и можно ли разблокировать файл не закрывая родительский процесс.

Самый простой вариант разблокировать файл – завершить процесс, которые его заблокировал. Но это не всегда возможно, особенно на серверах.

Чаще всего для поиска процесса, который заблокировал файл рекомендуют использовать утилиту Unlocker. Лично я
Unlocker
не использую, т.к. она не позволяет получить подробную информацию о процессе или цепочке процессов, которые заблокировали файл. Также нельзя освободить конкретный файл, занятый процессом – приходится завершать приложение целиком.

Кроме того, это сторонняя утилита, при установке которой нужно быть внимательным, т.к. в процессе она предлагает установить пачку ненужные программы в нагрузку.

Когда процесс в Windows открывает файл, этому потоку ввода/вывода назначается файловый дескриптор (handler). Процесс и его дочерние процессы получают доступ к файлу по этому дескриптору. Через Window API вы можете послать сигнал файловой системе на освобождение данного дескриптора и снятие блокировки с файла.

Принудительное закрытие файловых дескрипторов может вызвать нестабильную работу приложения или компьютера. Если вы не знаете, к чему приведет закрытие дескриптора файла для конкретного приложения, то не пытайтесь выполнить это на продуктивном сервере без предварительного теста.

Как разблокировать файл с помощью Process Explorer?

ProcessExplorer это бесплатная утилита из набора системных утилит Sysinternals, которую можно скачать на сайте Microsoft (https://docs.microsoft.com/en-us/sysinternals/downloads/process-explorer). Попробуем с помощью Process Explorer найти, какой процесс заблокировал определенный файл и освободить этот файл, сбросив файловый дескриптор процесса.

  1. ProcessExplorer не требует установки, просто скачайте распакуйте и запустите с правами администратора
    procexp.exe
    ;
  2. Выберите меню Find -> Find Handle or DLL (или нажмите
    Ctrl-F
    ); proc explorer - поиск открытых файлов
  3. Укажите имя файла, который нужно разблокировать и нажмите Search;
  4. Выберите нужный файл. Процесс, который открыл файлы будет выделен в дереве процессов. Можно завершить этот процесс, щелкнув по нему правой кнопкой и выбрав Kill Process Tree. Но можно попробовать закрыть дескриптор файла, не завершая процесс целиком. Дескриптор файла, который вы искали, автоматически выделяется в нижней панели Process Explorer. Щелкните по дескриптору правой кнопкой и выберите Close handle. Подтвердите закрытие файла. process explorer найти и завершить дескриптор процесса

    Если у вас в Process Explorer не отображается нижняя панель со списком открытых дескрипторов процесса, включите пункт меню View -> Lower Pane View -> Handles

Итак, вы закрыли дескриптор файла, не завершая родительский процесс. Теперь вы можете спокойно удалить или переименовать файл.

Сброс дескриптора файла с помощью утилиты Handle

Handle – это еще одна утилита командной строки из комплекта инструментов Sysinternals (доступна для скачивания на сайте Microsoft (https://docs.microsoft.com/en-us/sysinternals/downloads/handle. Она позволяет найти процесс, который заблокировал ваш файл и снять блокировку, освободив дескриптор.

  1. Скачайте и распакуйте архив с утилитой Handle;
  2. Запустите командную строку с правами администратора и выполните команду:
    handle64.exe > listproc.txt
    утилита Handle.exe  Данная команда сохранит список открытых дескрипторов в файл. Можно вывести дескрипторы для каталога, в котором находится файл, который вы хотите изменить:
    Handle64.exe -a C:\Some\Path
    или конкретного процесса:
    handle64.exe -p winword.exe
  3. Откройте файл listproc.txt в любом текстовом редакторе и найдите строку, в которой указано имя заблокированного файла. Скопируйте ID дескриптора файла (значение в hex формате). Затем поднимитесь немного выше к разделу, в котором указан процесс, являющийся владельцем данного дескриптора и запишите его ID. Для процесса запущенного от имени системы скорее всего будет PID 4. список открытых дескрипторов файлов в windows

    Для некоторых системных процессов handle.exe вернет следующий текст:
    wininit.exe pid: 732 \<unable to open process>
    . Это означает, что вы не может получить информацию об этих системных процессах (даже с правами администратора). Для получения дескрипторов файлов, открытых такими процессами, запустите командную строку с правами System и попробуйте получить список дескрипторов еще раз.

  4. Теперь вернитесь в командную строку и сбросьте дескриптор файла по полученным HandleID и ProcessID. Формат команды следующий:
    handl64e.exe -c HandleID -p ProcessID
    Например:
    handl64e.exe -c 18C -p 18800
    handl64e - закрыть дескриптор открытого файла
  5. Утилита запросит подтвердить закрытие файла для указанного процесса. Подтвердите, нажав y -> enter

Если система отреагирует на закрытие файла корректно, вы разблокируете ваш файл без необходимости завершать процесс или перезагружать сервер/компьютер.

Файл занят другим процессом, заблокирован другим процессом или открыт в другой программе — простое решение

Как разблокировать файл в PowerToys LocksmithРаспространенная проблема при попытке удалить, переименовать, переместить или изменить файл или папку — сообщение о том, что процесс не может получить доступ к файлу, так как этот файл занят другим процессом, о том, что папка или файл открыты в другой программе и аналогичные.

В этой простой инструкции новый простой способ узнать, какой именно процесс мешает действиям с файлом или папкой в Windows 11 и Windows 10, закрыть такую программу и выполнить требуемые изменений. На близкую тему может быть полезным: Как удалить файл, который не удаляется в Windows.

File Locksmith — новая функция Microsoft PowerToys для разблокировки файлов

Заблокированный другим процессом файл или папка — типичная ситуация, при этом Windows не всегда сообщает пользователю, о каком именно процессе идёт речь.

Процесс не может получить доступ к файлу, сообщения об ошибке

На сайте уже несколько раз обновлялся обзор полезной и бесплатной утилиты Microsoft PowerToys, содержащей набор инструментов для работы в системах Windows 10 и Windows 11. В начале ноября в ней появилась ещё одна возможность — File Locksmith, которая и поможет в рассматриваемой ситуации.

File Locksmith позволяет легко определить, какие процессы используют файл или папку (а точнее — её содержимое) и быстро закрыть эти процессы. Далее подробно о том, как именно работает функция:

  1. Установите Microsoft PowerToys, если ещё не установили. Проще всего это сделать из магазина приложений Microsoft Store используя поиск в магазине или ссылку https://aka.ms/getPowertoys, также есть другие способы загрузки: https://learn.microsoft.com/ru-ru/windows/powertoys/install
  2. После первого запуска приложения может потребоваться перезапуск PowerToys от имени администратора в главном окне приложения (в моем тесте функция File Locksmith не появилась в меню до выполнения перезапуска на одном из устройств). Перезапуск Microsoft Powertoys от имени администратора
  3. В параметрах Microsoft PowerToys убедитесь, что функция File Locksmith включена. Функция File Locksmith в Microsoft Powertoys
  4. Нажмите правой кнопкой мыши по файлу, который занят другим процессом и выберите пункт меню «Какие процессы используют этот файл?». В Windows 11 потребуется предварительно открыть классическое контекстное меню, нажав «Показать дополнительные параметры». Посмотреть какие процессы используют этот файл
  5. Откроется окно со списком процессов, использующих этот файл. Если процесс не отображается, выполните перезапуск окна с правами администратора, нажав по значку справа вверху. Процессы использующие файл
  6. Раскрыв свойства процесса, вы можете узнать его идентификатор (например, для завершения вручную), а также от имени какого пользователя он запущен. Информация о процессе в File Locksmith
  7. Действие по проверке использующих элемент процессов можно применять и к папке, в таком случае будет отображаться список всех процессов, использующих её содержимое, а раскрыв сведения можно получить информацию о том, какие именно файлы использует этот процесс. Какие процессы используют файлы в папке
  8. И, самое главное, прямо в окне File Locksmith можно завершить процесс. Однако будьте осторожны при завершении системных процессов Windows.

Надеюсь, новый инструмент будет полезен. Конечно, есть и другие возможности, например, многие используют Unlocker, но вариант с File Locksmith куда более безопасен для пользователя, на мой взгляд.

  • Windows 7 профессиональная скачать торрент 64 bit скачать торрент бесплатно
  • Windows 7 постоянно запускается средство восстановления
  • Windows 7 профессиональная скачать торрент 32 bit iso
  • Windows 7 предварительный просмотр миниатюр в панели задач
  • Windows 7 профессиональная последняя версия