Poprawka: Proces nie może uzyskać dostępu do pliku, ponieważ jest używany przez inny proces

Kilku użytkowników systemu Windows napotyka błąd „ Proces nie może uzyskać dostępu do pliku, ponieważ jest używany przez inny proces” . W większości przypadków problem występuje, gdy użytkownik próbuje uruchomić polecenie netsh. Niektórzy użytkownicy zgłaszają, że podczas próby kliknięcia prawym przyciskiem myszy witryny sieci Web w przystawce programu IIS (Internetowe usługi informacyjne) MMC (Microsoft Management Console) pojawia się komunikat o błędzie.

Zgłoszono, że problem występuje w systemach Windows Vista, Windows 7, Windows 8.1, Windows 10 oraz w różnych wersjach systemu Windows Server.

Co powoduje, że proces jest używany przez inny proces?

Zbadaliśmy ten konkretny problem, przeglądając różne raporty użytkowników i strategie napraw, których użyli do rozwiązania problemu. Na podstawie tego, co udało nam się zebrać, istnieje kilka typowych scenariuszy, które spowodują ten konkretny komunikat o błędzie:

  • Polecenie wymaga uprawnień administratora - jeśli napotykasz błąd wewnątrz terminala, najprawdopodobniej nie masz uprawnień administratora do wprowadzania modyfikacji. Kilku użytkownikom znajdującym się w podobnej sytuacji udało się rozwiązać problem, przyznając uprawnienia administratora.
  • Inny proces wykorzystuje port 80 lub 443 - jest to typowe dla komputerów z uruchomionymi usługami IIS (Internet Information Services). Jeśli inny proces używa tych dwóch portów, zostanie wyświetlony ten komunikat o błędzie.
  • Podklucz rejestru ListenOnlyList nie jest poprawnie skonfigurowany - inny typowy scenariusz z usługami IIS (Internet Information Services), który wyzwala ten konkretny błąd, to nieprawidłowo skonfigurowany podklucz rejestru ListenOnlyList.

Jeśli obecnie nie możesz rozwiązać tego konkretnego komunikatu o błędzie, w tym artykule znajdziesz zbiór zweryfikowanych kroków rozwiązywania problemów. Poniżej znajduje się zbiór metod, których używali inni użytkownicy w podobnej sytuacji, aby rozwiązać problem.

Aby uzyskać najlepsze wyniki, postępuj zgodnie z poniższymi metodami, aż napotkasz poprawkę, która skutecznie usunie błąd w konkretnym scenariuszu.

Zaczynajmy!

Metoda 1: Uruchomienie polecenia z uprawnieniami administratora

Jeśli otrzymujesz ten błąd podczas próby uruchomienia polecenia netsh, prawdopodobnie wystąpił błąd, ponieważ nie masz uprawnień administratora. Jest to zgłaszane częściej niż często, gdy użytkownik próbuje uruchomić polecenie, które dodaje wykluczenia do dynamicznego zakresu portów dla natywnych aplikacji systemu Windows lub aplikacji innych firm.

Należy pamiętać, że tego rodzaju operacja będzie wymagać uprawnień administratora. Aby upewnić się, że okno CMD, w którym próbujesz wykonać czynność, ma uprawnienia administratora, wykonaj poniższe czynności:

  1. Naciśnij klawisz Windows + R, aby otworzyć okno dialogowe Uruchom. Następnie wpisz „ cmd ” i naciśnij Ctrl + Shift + Enter, aby otworzyć podwyższony wiersz polecenia.
  2. Po wyświetleniu monitu przez UAC (Kontrola konta użytkownika) kliknij Tak, aby przyznać uprawnienia administratora.
  3. W podwyższonym wierszu polecenia uruchom ponownie polecenie i sprawdź, czy nadal występuje ten sam komunikat o błędzie.

Jeśli nadal pojawia się błąd „ Proces nie może uzyskać dostępu do pliku, ponieważ jest używany przez inny proces” lub ten scenariusz nie miał zastosowania, przejdź do następnej metody poniżej.

Metoda 2: ustawienie innego zakresu adresów IP

Jeśli próbujesz rozwiązać konflikt DNS za pomocą narzędzia netsh, a powyższa metoda Ci nie pomogła, możesz spróbować innego podejścia.

Kilku użytkowników usiłujących rozwiązać ten sam komunikat o błędzie odkryło, że konflikt został rozwiązany po tym, jak próbowali ustawić zupełnie inny zakres adresów IP zamiast tworzyć zakres wykluczeń.

Poniżej znajduje się kilka poleceń, które jeden z użytkowników, których to dotyczy, pomyślnie uruchomił, aby rozwiązać konflikt między DNS a Quickbooks:

netsh int ipv4 set dynamicport tcp start=10000 num=1000 netsh int ipv4 set dynamicport udp start=10000 num=1000

Uwaga: upewnij się, że terminal, na którym uruchamiasz polecenie, ma uprawnienia administratora.

Jeśli ta metoda nie rozwiązała konfliktu lub nie miała zastosowania w napotkanej sytuacji, przejdź do ostatniej metody.

Metoda 3: Rozwiązywanie konfliktu portów usług IIS

Jeśli napotkasz problem podczas próby kliknięcia prawym przyciskiem myszy elementu witryny sieci Web w przystawce MMC IIS (kliknięcie przycisku Start nic nie daje), musisz użyć narzędzia Netstat.exe, aby sprawdzić, czy inny proces jest przy użyciu portu 80 i portu 443.

Ten problem występuje dość często na komputerach z zainstalowanymi usługami Microsoft IIS 6.0 i 7.0. Na podstawie oficjalnej dokumentacji firmy Microsoft komunikat o błędzie pojawi się, jeśli jeden z następujących warunków ma zastosowanie do Twojej obecnej sytuacji:

  • ListenOnlyList podklucz rejestru nie jest poprawnie skonfigurowany na IIS działa komputer.
  • Inny proces wykorzystuje port TCP (80) lub port SSL (443) wymagany przez IIS.

Aby rozwiązać ten problem, musimy wdrożyć narzędzie Netstat.exe w celu ustalenia, czy inny proces używa portów określonych powyżej. Jeśli narzędzie ustali, że porty nie są używane, sprawdzimy podklucz ListenOnlyList, aby sprawdzić, czy jest poprawnie skonfigurowany.

Oto przewodnik krok po kroku przez całą sprawę:

  1. Naciśnij klawisz Windows + R, aby otworzyć okno dialogowe Uruchom. Następnie wpisz „ cmd ” i naciśnij Ctrl + Shift + Enter, aby otworzyć podwyższony wiersz polecenia. Po wyświetleniu monitu przez UAC (Kontrola konta użytkownika) kliknij Tak, aby przyznać uprawnienia administracyjne.
  2. W wierszu polecenia z podwyższonym poziomem uprawnień uruchom następujące polecenie, aby uruchomić narzędzie Netstat.exe :
    netstat -ano
  3. Po otrzymaniu zwrotu przewiń listę aktywnych połączeń i sprawdź, czy porty 50 i 443 są aktywnie używane przez inny proces.

    Uwaga: jeśli porty są aktywnie używane przez inny proces, właśnie udało Ci się zidentyfikować źródło problemu. W takim przypadku poszukaj w trybie online konkretnych kroków dotyczących sposobu rozwiązania konfliktu portów zgodnie z PID portu.

  4. Zamknij podwyższony wiersz polecenia, ponieważ nie będziemy potrzebować uprawnień administratora do następnych kroków.
  5. Jeśli porty nie są aktywnie używane, naciśnij klawisz Windows + R, aby otworzyć okno dialogowe Uruchom. Następnie wpisz „ regedit ” i naciśnij klawisz Enter, aby otworzyć Edytor rejestru . Po wyświetleniu monitu przez UAC (Kontrola konta użytkownika) kliknij Tak, aby przyznać uprawnienia administracyjne.
  6. W edytorze rejestru użyj lewego okienka, aby przejść do następującej lokalizacji:
    HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ HTTP \ Parameters \ ListenOnlyList

    Uwaga: w przypadku braku podklucza ListenOnlyList nie ma potrzeby jego tworzenia, ponieważ domyślnie będzie używany adres IP 0.0.0.0 .

  7. Zanim przejdziesz dalej i zmodyfikujesz podklucz ListenOnlyList , musisz zatrzymać usługę HTTP, na której działa IIS. Więc umieść Edytor rejestru w tle, ponieważ wrócimy do niego za chwilę.
  8. Następnie naciśnij klawisz Windows + R, aby otworzyć okno dialogowe Uruchom, wpisz „ cmd ” i naciśnij klawisz Enter, aby otworzyć kolejne okno wiersza polecenia.
  9. W wierszu polecenia Cmd uruchom następujące polecenie i naciśnij klawisz Enter, aby zatrzymać usługę HTTP odpowiedzialną za uruchamianie usług IIS:
    net stop http
  10. Na pytanie, czy chcesz kontynuować tę operację, wpisz „Y” i naciśnij klawisz Enter, aby potwierdzić operację.
  11. Po wyłączeniu usługi HTTP zamknij okno wiersza polecenia i wróć do Edytora rejestru.
  12. Po zaznaczeniu podklucza ListenOnlyList przejdź do okienka po prawej stronie i upewnij się, że zawiera on prawidłowe adresy IP. Jeśli zauważysz nieprawidłowy adres IP, usuń go lub zmodyfikuj, aby odzwierciedlić wpis z prawidłowym adresem IP.

    Uwaga: jeśli obecny jest podklucz ListenOnlyList, a na liście jest adres 0.0.0.0 , należy usunąć wszystkie pozostałe adresy IP.

  13. Zamknij Edytor rejestru i uruchom ponownie komputer.
  14. Przy następnym uruchomieniu usługa HTTP powinna zostać uruchomiona automatycznie. Ale żeby się upewnić, naciśnij klawisz Windows + R, aby otworzyć kolejne okno dialogowe Uruchom. Następnie wpisz „ cmd ” i naciśnij Enter, aby otworzyć okno wiersza polecenia.
  15. W nowo otwartym wierszu polecenia wpisz następujące polecenie, aby upewnić się, że usługa HTTP została uruchomiona:
    net start http

    Uwaga: jeśli otrzymasz wiadomość z informacją, że „Żądana usługa została już uruchomiona”, możesz działać.

  16. Spróbuj uruchomić usługę z przystawki Microsoft Internet Information Services (IIS) Microsoft Management Console (MMC). Nie powinieneś już napotykać błędu „proces nie może uzyskać dostępu do pliku, ponieważ jest używany przez inny proces” .