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



Опитайте Нашия Инструмент За Премахване На Проблемите

Няколко потребители на 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 (Контрол на потребителски акаунти) , щракнете Да за предоставяне на администраторски права.
  3. В повишения команден ред изпълнете командата отново и вижте дали все още срещате същото съобщение за грешка.

Ако все още получавате „ Процесът няма достъп до файла, защото той се използва от друг процес ” грешка или този сценарий не е приложим, преминете към следващия метод по-долу.

Метод 2: Задаване на различен IP обхват

Ако се опитвате да разрешите конфликт в DNS конфликт с помощта на netsh и методът по-горе не ви е помогнал, може да опитате различен подход.

Няколко потребители, които се борят да разрешат едно и също съобщение за грешка, са открили, че конфликтът е разрешен, след като са се опитали да зададат съвсем различен IP диапазон, вместо да създават диапазон на изключване.

По-долу имате няколко команди, които един засегнат потребител е изпълнил успешно за разрешаване на конфликт между DNS и Quickbooks:

netsh int ipv4 задайте динамичен порт tcp start = 10000 num = 1000 netsh int ipv4 задайте Dynamport udp start = 10000 num = 1000

Забележка: Уверете се, че терминалът, в който изпълнявате командата, има права на администратор.

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

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

Ако срещнете проблема, докато се опитвате да щракнете с десния бутон на мишката върху елемент от уебсайт в модула на IIS MMC (щракването върху Старт не прави нищо), ще трябва да използвате помощната програма Netstat.exe, за да разберете дали е друг процес използвайки порт 80 и порт 443.

Този проблем е доста често срещан при компютри с Microsoft IIS 6.0 и 7.0. Въз основа на официалната документация на Microsoft, съобщението за грешка ще се появи, ако едно от следните условия е приложимо за текущата ви ситуация:

  • The 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 ‘И натиснете Въведете за да отворите Редактор на регистъра . Когато бъдете подканени от 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 ‘И натиснете Въведете за да отворите друг прозорец на командния ред.

    Стартиране на диалогов прозорец: cmd

  9. В подканата Cmd изпълнете следната команда и натиснете Въведете за да спрете 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 ”И натиснете Въведете за да отворите прозорец на командния ред.

    Отваряне на нормален прозорец на командния ред

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

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

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