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

Некоторые пользователи Windows сталкиваются с ошибкой « Процесс не может получить доступ к файлу, потому что он используется другим процессом» . В большинстве случаев проблема возникает, когда пользователь пытается запустить команду netsh. Некоторые пользователи сообщают, что для них сообщение об ошибке появляется, когда они пытаются щелкнуть правой кнопкой мыши веб-сайт в оснастке IIS (Internet Information Services) MMC (Microsoft Management Console).

Сообщается, что проблема возникает в Windows Vista, Windows 7, Windows 8.1, Windows 10 и в различных версиях Windows Server.

Что заставляет процесс использоваться другим процессом?

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

  • Команда требует прав администратора. Если вы столкнулись с ошибкой внутри терминала, скорее всего, это связано с тем, что у вас нет прав администратора для внесения изменений. Нескольким пользователям в аналогичной ситуации удалось решить проблему, предоставив права администратора.
  • Другой процесс использует порт 80 или порт 443 - это типично для компьютеров, на которых запущены IIS (Internet Information Services). Если другой процесс использует эти два порта, вы увидите это сообщение об ошибке.
  • Подраздел реестра ListenOnlyList настроен неправильно. Другой распространенный сценарий с IIS (Internet Information Services), который вызывает эту конкретную ошибку, - это неправильно настроенный подраздел реестра ListenOnlyList.

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

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

Давай начнем!

Метод 1: запуск команды с правами администратора

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

Помните, что для подобной операции потребуются права администратора. Чтобы убедиться, что окно CMD, в котором вы пытаетесь выполнить действие, имеет права администратора, выполните следующие действия:

  1. Нажмите клавишу Windows + R, чтобы открыть диалоговое окно «Выполнить». Затем введите « cmd » и нажмите Ctrl + Shift + Enter, чтобы открыть командную строку с повышенными привилегиями.
  2. В ответ на запрос UAC (Контроль учетных записей пользователей) нажмите Да, чтобы предоставить права администратора.
  3. В командной строке с повышенными привилегиями запустите команду еще раз и посмотрите, появляется ли по-прежнему то же сообщение об ошибке.

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

Метод 2: установка другого диапазона 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

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

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

Метод 3: разрешение конфликта портов IIS

Если вы столкнулись с проблемой при попытке щелкнуть правой кнопкой мыши элемент веб-сайта в оснастке IIS MMC (нажатие кнопки «Пуск» ничего не делает), вам необходимо использовать служебную программу Netstat.exe, чтобы выяснить, является ли другой процесс. используя порт 80 и порт 443.

Эта проблема довольно часто встречается на компьютерах под управлением Microsoft IIS 6.0 и 7.0. Согласно официальной документации Microsoft, сообщение об ошибке появится, если к вашей текущей ситуации применимо одно из следующих условий:

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

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

Вот пошаговое руководство по всему этому:

  1. Нажмите клавишу Windows + R, чтобы открыть диалоговое окно «Выполнить». Затем введите « cmd » и нажмите Ctrl + Shift + Enter, чтобы открыть командную строку с повышенными привилегиями. В ответ на запрос UAC (Контроль учетных записей пользователей) нажмите Да, чтобы предоставить права администратора.
  2. В командной строке с повышенными привилегиями выполните следующую команду, чтобы запустить служебную программу Netstat.exe :
    netstat -ano
  3. Получив ответ, прокрутите список активных подключений и убедитесь, что порты 50 и 443 активно используются другим процессом.

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

  4. Закройте командную строку с повышенными привилегиями, поскольку нам не потребуются права администратора для следующих шагов.
  5. Если порты не используются активно, нажмите клавишу Windows + R, чтобы открыть диалоговое окно «Выполнить». Затем введите regedit и нажмите Enter, чтобы открыть редактор реестра . При появлении запроса от UAC (Контроль учетных записей пользователей) нажмите Да, чтобы предоставить права администратора.
  6. В редакторе реестра используйте левую панель, чтобы перейти к следующему месту:
    HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ HTTP \ Parameters \ ListenOnlyList

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

  7. Прежде чем продолжить и изменить подраздел ListenOnlyList , вам необходимо остановить службу HTTP, на которой запущен IIS. Так что переведите редактор реестра в фоновый режим, и мы вернемся к нему через минуту.
  8. Затем нажмите клавиши Windows + R, чтобы открыть диалоговое окно «Выполнить», введите cmd и нажмите Enter, чтобы открыть другое окно командной строки.
  9. В командной строке Cmd выполните следующую команду и нажмите Enter, чтобы остановить службу HTTP, отвечающую за запуск IIS:
    чистая стопа http
  10. Когда вас спросят, хотите ли вы продолжить эту операцию, введите «Y» и нажмите Enter, чтобы подтвердить операцию.
  11. После отключения службы HTTP закройте окно командной строки и вернитесь в редактор реестра.
  12. С ListenOnlyList подразделом выбранного перейти на правой панель и убедитесь , что он содержит допустимый IP - адрес. Если вы обнаружите недействительный IP-адрес, удалите его или измените, чтобы отразить запись с действительным IP-адресом.

    Примечание. Если имеется подраздел ListenOnlyList и указан адрес 0.0.0.0 , вам необходимо удалить все остальные IP-адреса.

  13. Закройте редактор реестра и перезагрузите компьютер.
  14. При следующем запуске служба HTTP должна запуститься автоматически. Но на всякий случай нажмите клавишу Windows + R, чтобы открыть другое диалоговое окно «Выполнить». Затем введите « cmd » и нажмите Enter, чтобы открыть окно командной строки.
  15. Во вновь открытой командной строке введите следующую команду, чтобы убедиться, что служба HTTP запущена:
    чистый старт http

    Примечание. Если вам вернули сообщение о том, что «Запрошенная служба уже запущена», можно начинать.

  16. Попытка запустить службу из оснастки Microsoft Internet Information Services (IIS) консоли управления Microsoft (MMC). Вы больше не должны сталкиваться с ошибкой «процесс не может получить доступ к файлу, потому что он используется другим процессом» .