Поправка: Процесът няма достъп до файла, защото се използва от друг процес

Няколко потребители на Windows срещат грешка „ Процесът не може да осъществи достъп до файла, тъй като се използва от друг процес“ . През повечето време проблемът възниква, когато потребителят се опита да изпълни команда netsh. Някои потребители съобщават, че за тях съобщението за грешка се появява, когато се опитват да щракнат с десния бутон върху уебсайт в модула IIC (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 (Интернет информационни услуги), който ще задейства тази конкретна грешка, е неправилно конфигуриран подключа на системния регистър ListenOnlyList.

Ако в момента се мъчите да разрешите това конкретно съобщение за грешка, тази статия ще ви предостави колекция от проверени стъпки за отстраняване на неизправности. Долу имате колекция от методи, които други потребители в подобна ситуация са използвали, за да разрешат проблема.

За най-добри резултати следвайте методите по-долу, докато срещнете корекция, която е ефективна за разрешаване на грешката във вашия конкретен сценарий.

Нека да започнем!

Метод 1: Изпълнение на командата с администраторски права

Ако получавате тази грешка, когато се опитвате да изпълните команда netsh, вероятно грешката се появява, защото нямате администраторски права. Съобщава се, че това се случва по-често, когато потребителят се опитва да изпълни команда, която добавя изключения към динамичния диапазон на портове за приложения на Windows или приложения на трети страни.

Имайте предвид, че операция от този вид ще изисква администраторски права. За да сте сигурни, че CMD прозорецът, в който се опитвате да извършите действието, има права на администратор, изпълнете стъпките по-долу:

  1. Натиснете клавиша Windows + R, за да отворите диалоговия прозорец Изпълнение. След това въведете „ cmd “ и натиснете Ctrl + Shift + Enter, за да отворите повишен команден ред.
  2. Когато бъдете подканени от UAC (User Account Control) , щракнете върху Да, за да предоставите администраторски права.
  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 (User Account Control) , щракнете върху Да, за да предоставите администраторски права.
  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:
    net stop 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 услугата е стартирана:
    net start http

    Забележка: Ако ви се върне съобщение, в което се казва, че „Заявената услуга вече е стартирана“, добре е да тръгнете.

  16. Опит за стартиране на услуга от приставката на Microsoft Internet Information Services (IIS) Microsoft Management Console (MMC). Вече не трябва да срещате грешката „процесът няма достъп до файла, защото той се използва от друг процес“ .