Содержание:
- Что приводит к тому, что процесс используется другим процессом?
- Способ 1: Выполнение команды с правами администратора
- Метод 2: Установка другого диапазона IP-адресов
- Метод 3: Устранение конфликта портов IIS
Несколько пользователей 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, в котором вы пытаетесь выполнить действие, имеет права администратора, выполните следующие действия:
- Нажмите клавиша Windows + R для открытия диалогового окна «Выполнить». Затем введите “cmd” и нажмите Ctrl + Shift + Enter чтобы открыть командную строку с повышенными правами.
- При появлении запроса UAC (User Account Control), щелкните Да предоставить права администратора.
- В поднятой командной строке выполните команду еще раз и посмотрите, не появилось ли то же самое сообщение об ошибке.
Если вы все еще получаете ошибку “Процесс не может получить доступ к файлу, потому что он используется другим процессом” ошибка или данный сценарий не применим, перейдите к следующему методу ниже.
Метод 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 на предмет его правильной настройки’.
Вот’ пошаговое руководство по выполнению этой операции:
- Нажмите клавиша Windows + R для открытия диалогового окна Run. Затем введите “cmd” и нажмите кнопку Ctrl + Shift + Enter открыть открытую Командную строку. При появлении запроса UAC (User Account Control), щелкните Да для предоставления административных привилегий.
- В поднятой командной строке выполните следующую команду для запуска Netstat.exe утилита:
netstat -ano
- Получив ответ, прокрутите список Активные подключения и проверьте, активно ли используются порты 50 и 443 другим процессом.
Примечание: Если порты активно используются другим процессом, то вы’только что смогли определить источник проблемы. В этом случае поищите в Интернете конкретные шаги по разрешению конфликта портов в соответствии с PID порта.
- Закройте открытую командную строку, поскольку для выполнения следующих шагов нам не понадобятся права администратора.
- Если порты активно не используются, нажмите кнопку клавиша Windows + R открыть диалоговое окно Выполнить. Затем введите ‘regedit‘ и нажмите Введите чтобы открыть Редактор реестра. При появлении запроса UAC (User account control), нажмите кнопку Да для предоставления административных привилегий.
- В редакторе реестра с помощью левой панели перейдите к следующему месту:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters\ListenOnlyList
Примечание: В случае, если ListenOnlyList если подключ отсутствует, то нет необходимости создавать его в качестве IP-адреса 0.0.0.0 будет использоваться по умолчанию.
- Перед тем как приступить к изменению параметра ListenOnlyList подклавишу, вам’нужно будет остановить службу HTTP, которая запускает IIS. Поэтому переведите редактор реестра в фоновый режим, так как мы вернемся к нему через некоторое время.
- Далее нажмите клавиша Windows + R откройте диалоговое окно Выполнить, введите ‘cmd‘ и нажмите Введите для открытия другого окна командной строки.
- В приглашении Cmd выполните следующую команду и нажмите клавишу Введите чтобы остановить службу HTTP, отвечающую за работу IIS:
net stop http
- На вопрос, нужно ли продолжать эту операцию, введите ‘Y’ и нажмите Enter для подтверждения операции.
- После отключения службы HTTP закройте окно Командная строка и вернитесь в редактор реестра.
- С ListenOnlyList Выбрав подключ, перейдите на правую панель и убедитесь, что она содержит действительные IP-адреса. Если вы обнаружили недействительный IP-адрес, удалите его или измените запись на действительный IP-адрес.
Примечание: В случае если ListenOnlyList присутствует подклавиша 0.0.0.0 адрес указан в списке, необходимо удалить все остальные IP-адреса.
- Закройте редактор реестра и перезагрузите компьютер.
- При следующем запуске служба HTTP должна быть автоматически запущена. Но чтобы убедиться в этом, нажмите клавиша Windows + R для открытия другого диалогового окна Выполнить. Затем наберите “cmd” и нажмите кнопку Введите для открытия окна Командная строка.
- В открывшейся командной строке введите следующую команду, чтобы убедиться, что служба HTTP запущена:
net start http
Примечание: Если вы получите сообщение о том, что “Запрошенная служба уже запущена”, то можете приступать к работе.
- Попытка запуска службы из оснастки Microsoft Internet Information Services (IIS) Microsoft Management Console (MMC). Вы больше не должны сталкиваться с ошибкой ‘процесс не может получить доступ к файлу, поскольку он используется другим процессом’ ошибка.