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

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

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

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

Какво причинява процеса да бъде използван от друг процес?

Разследвахме този конкретен проблем, като разгледахме различни потребителски отчети и стратегиите за поправка, които използваха, за да разрешат проблема. Въз основа на това, което успяхме да съберем, има няколко общи сценария, които ще задействат това съобщение за грешка:

  • Командата изисква администраторски привилегии - Ако срещнете грешката вътре в терминал, това е най-вероятно, защото нямате административни привилегии за извършване на модификации. Няколко потребители в подобна ситуация успяха да разрешат проблема чрез предоставяне на администраторски привилегии.
  • Друг процес е използване на порт 80 или порт 443 - Това е типично за компютри, работещи с IIS (Интернет информационни услуги). Ако друг процес използва тези два порта, ще видите това съобщение за грешка.
  • Подразделът на регистъра ListenOnlyList не е конфигуриран правилно - Друг често срещан сценарий с IIS (Интернет информационни услуги), който ще задейства тази конкретна грешка, е неправилно конфигуриран подраздел на регистъра ListenOnlyList.

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

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

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

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

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

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

  1. Натиснете клавиша Windows + R, за да отворите диалогов прозорец Run. След това напишете „ 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, за да отворите диалогов прозорец Run. След това напишете „ 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, за да отворите диалогов прозорец Run, въведете ' cmd ' и натиснете Enter, за да отворите друг прозорец на командния ред.

    Изпълнете диалогов прозорец: cmd
  9. В подканата Cmd изпълнете следната команда и натиснете Enter, за да спрете HTTP услугата, отговорна за стартирането на IIS:
     net stop http 
  10. На въпроса дали искате да продължите тази операция, напишете „Y“ и натиснете Enter, за да потвърдите операцията.

    Деактивиране на HTTP услугата
  11. След като HTTP услугата е деактивирана, затворете прозореца на командния ред и се върнете в редактора на системния регистър.
  12. С избрания подраздел ListenOnlyList преминете към десния панел и се уверете, че съдържа валидни IP адреси. Ако забележите IP адрес, който не е валиден, го премахнете или го променете, за да отразява запис с валиден IP адрес.

    Изтриване на двоичните стойности с невалидни IP адреси

    Забележка: В случай, че присъства подраздел ListenOnlyList и е изброен 0.0.0.0 адрес, трябва да изтриете всички останали IP адреси.

  13. Затворете редактора на системния регистър и рестартирайте компютъра.
  14. При следващо стартиране HTTP услугата трябва да бъде стартирана автоматично. Но само за да сте сигурни, натиснете клавиша Windows + R, за да отворите още един диалогов прозорец Изпълнение. След това напишете „ cmd “ и натиснете Enter, за да отворите прозорец на командния ред.

    Отваряне на нормален прозорец на командния ред
  15. В новооткрития команден ред въведете следната команда, за да гарантирате, че HTTP услугата е стартирана:
     net start http 

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

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

Интересни Статии