Jak usunąć przełącznik wirtualnej sieci Ethernet Hyper-V

21

Nieaktualny przełącznik VM w Hyper-V nie jest już używany, a kiedy próbuję go usunąć, zawsze kończy się niepowodzeniem z następującym komunikatem:

PS C:\> Get-VMSwitch nat

Name SwitchType NetAdapterInterfaceDescription
---- ---------- ------------------------------
nat  Private


PS C:\> Get-VMSwitch nat | Remove-VMSwitch -Force
Remove-VMSwitch : Failed while removing virtual Ethernet switch.
Switch delete failed, switch = 'acf82f05-c07c-4b35-8588-921498456027':    General access denied error (0x80070005).
At line:1 char:20
+ Get-VMSwitch nat | Remove-VMSwitch -Force
+                    ~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : PermissionDenied: (:) [Remove-VMSwitch], VirtualizationException
+ FullyQualifiedErrorId : AccessDenied,Microsoft.HyperV.PowerShell.Commands.RemoveVMSwitch

Próba usunięcia w GUI nie działa:

GUI

fluter
źródło
błąd odmowy dostępu = problem z uprawnieniami. używasz administratora?
magicandre1981
tak, działam jako administrator. Zauważyłem, że błąd wprowadza w błąd. Podkreślona karta sieciowa zniknęła w centrum udostępniania sieci, myślę, że to jest błąd, ale jak mogę usunąć ten przełącznik vms.
fluter

Odpowiedzi:

13

Podobny problem został rozwiązany na forach Microsoft TechNet:

Mamy konfigurację przełącznika wirtualnego w Virtual Switch Manager i adapter został przypadkowo usunięty przy użyciu „Zmień ustawienia adaptera ...” w Centrum sieci i udostępniania. Teraz oczywiście przełącznik jest w stanie awarii i chcemy go po prostu usunąć z listy.

Ostatecznie OP przeprowadził dogłębne wyszukiwanie w rejestrze i znalazł konfigurację przełącznika wirtualnego zapisaną w następującym kluczu:

HKLM \ SYSTEM \ CurrentControlSet \ Services \ VMSMP \ Parameters \ SwitchList

Po usunięciu odpowiedniej wartości z tego klucza i ponownym uruchomieniu, przełącznik wirtualny zniknął.

Jak zawsze polecam wyeksportować bieżące ustawienia do .regpliku, aby mieć odpowiednią kopię zapasową przed próbą podobnych zmian.

(Źródło: Nie można usunąć nieudanego przełącznika wirtualnego z Virtual Switch Manager Hyper-V )

Run5k
źródło
1
Mogę potwierdzić, że to zadziałało dla mnie. Thx
mloskot,
Nie mogę znaleźć takiej wartości w rejestrze: /
Jurosh
1
To zadziałało dla mnie, ale musiałem również kopać do połączenia sieciowego w rejestrze, aby go usunąć. Pozostało to w rejestrze wszystkich odniesień do svc dokera: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ vmsmp \ parameters \ SwitchList \ {yada yada} i HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSEt001 \ Control \ Network \ {yada yada}
JohnZaj
14

Nie chciałem instalować narzędzi Azure Powershell, więc po prostu wykonałem kroki z tego filmu: https://www.youtube.com/watch?v=V5Gb342gSGg

Zasadniczo przejdź do Połączenia sieciowe -> otwórz właściwości wirtualnego przełącznika, który chcesz usunąć -> kliknij Konfiguruj -> przejdź do zakładki Sterownik -> Odinstaluj urządzenie.

Aby zapobiec tworzeniu nowej usługi Hyper-V przy następnym uruchomieniu komputera bez wyłączania jej całkowicie, zmieniłem Typ uruchamiania każdej usługi Hyper-V na Ręczny.

mxgg250
źródło
Pozostało to w rejestrze wszystkich odniesień do svc dokera: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ vmsmp \ parameters \ SwitchList \ {yada yada} i HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSEt001 \ Control \ Network \ {yada yada}
JohnZaj
1
Zdecydowanie najlepsze rozwiązanie. Najlepszą praktyką jest unikanie dotykania rejestru.
Soleil
9

Chociaż nie używam Dockera , chciałem znaleźć rozwiązanie bez użycia regedit, więc po próbie odpowiedzi z RobV8R znalazłem instrukcje dotyczące tego pytania na MS Technet .

Get-HNSNetwork | Remove-HNSNetwork

Lub, dla bardziej filtrowanego optoinu, tego właśnie potrzebowałem.

Get-HNSNetwork | ? Name -Like "Default Switch" | Remove-HNSNetwork

Zakładam również, że będziesz chciał postępować zgodnie z radą @ mxgg250 i ustawić wszystkie usługi hyper-v na ręczne uruchamianie, w przeciwnym razie odtworzy przełącznik po ponownym uruchomieniu.

bradlis7
źródło
„Get-HNSNetwork |? Nazwa -Jak„ nat ”| Remove-HNSNetwork” - Dobrze działało, aby usunąć „nat” VMSwitch pozostawiony po odinstalowaniu Dockera dla Windows, dzięki!
Froosh,
… Co jest również udokumentowane w instrukcjach Docker dotyczących czyszczenia firmy Microsoft docs.microsoft.com/en-us/virtualization/windowscontainers/…
Froosh,
6

ROZPOCZNIJ EDYCJĘ

Nowsze wersje systemu Windows 10 wprowadziły przełącznik wirtualny „Domyślna sieć”.

Jeśli ta metoda nie działa, zapoznaj się z odpowiedzią @ bradlis7 na inną opcję.

EDYCJA KOŃCOWA

Zostało to przetestowane w systemie Windows 10 1607.

Krótka odpowiedź, jeśli używasz Dockera:

PS> Stop-Service com.docker.service
PS> Remove-ContainerNetwork -Name nat

Długa odpowiedź:

Jeśli napotkasz taką sytuację i masz włączone Kontenery lub Docker, musisz zatrzymać Docker przed usunięciem przełącznika VMS.

PS> Get-VMSwitch

Name                                   SwitchType NetAdapterInterfaceDescription
----                                   ---------- ------------------------------
DockerNAT                              Internal
nat                                    Internal
Windows Phone Emulator Internal Switch Private
Primary Virtual Switch                 External   Intel(R) Wireless

Jak widać, mam VMSwitch o nazwie nat. Chcę, żeby zniknęło.

PS> Remove-VMSwitch -Name nat

Confirm
Are you sure you want to remove the virtual switch "nat"?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"):
Remove-VMSwitch : Failed while removing virtual Ethernet switch.
Switch delete failed, switch = '<guid>': General access denied error (0x80070005).
At line:1 char:1
+ Remove-VMSwitch -Name nat
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : PermissionDenied: (:) [Remove-VMSwitch], VirtualizationException
    + FullyQualifiedErrorId : AccessDenied,Microsoft.HyperV.PowerShell.Commands.RemoveVMSwitch

Odpowiedź okazała się dość prosta. Ponieważ skonfigurowałem przełącznik natVMS za pomocą NetNat, usunąłem NetNat. Nie jestem pewien, czy to konieczny krok, ale i tak to zrobiłem.

PS> Get-NetNat -Name '<name>' | Remove-NetNat

Potem zatrzymałem Dockera.

PS> Stop-Service com.docker.service

I w końcu

PS> Remove-ContainerNetwork -Name nat

Confirm
Remove-ContainerNetwork will remove the container network "nat".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"):

Aby upewnić się, że zniknął:

PS> Get-VMSwitch

Name                                   SwitchType NetAdapterInterfaceDescription
----                                   ---------- ------------------------------
DockerNAT                              Internal
Windows Phone Emulator Internal Switch Private
Primary Virtual Switch                 External   Intel(R) Wireless
RobV8R
źródło
2
Do Twojej wiadomości ta procedura może nie działać. To nie działa dla mnie. Żadna usługa dokowania nie jest uruchomiona, nadal nie można przywrócić wiszącego elementu nat. Może więc być konieczne skorzystanie z odpowiedzi @ Run5K
mloskot
4

Nie jestem pewien, czy to dobrze, ale działało dla mnie: https://www.online-tech-tips.com/computer-tips/unable-delete-network-adapter-windows-10/


AKTUALIZACJA

Źródło: Nie można usunąć karty sieciowej w systemie Windows 10?

Metoda 1 - Użyj Menedżera urządzeń

Pierwszą rzeczą, którą możesz spróbować zrobić, to otworzyć Menedżera urządzeń (kliknij przycisk Start i wpisz menedżera urządzeń), rozwiń Karty sieciowe, a następnie kliknij prawym przyciskiem myszy kartę sieciową, którą chcesz usunąć.

wprowadź opis zdjęcia tutaj

Tutaj zobaczysz opcję o nazwie Odinstaluj urządzenie. Mam nadzieję, że nie powinno to być szare. Jeśli tak, przejdź do następnej metody. Po wybraniu opcji odinstaluj urządzenie pojawi się kolejne okno z prośbą o potwierdzenie odinstalowania.

wprowadź opis zdjęcia tutaj

Zobaczysz także opcję usunięcia oprogramowania sterownika dla urządzenia. Jeśli chcesz całkowicie usunąć kartę sieciową, sugeruję wybranie tej opcji, aby usunąć również sterownik. Jeśli wszystko pójdzie dobrze, powinieneś zobaczyć, że karta została usunięta zarówno z Menedżera urządzeń, jak iz listy kart sieciowych w Panelu sterowania.

Jeśli nie widzisz tutaj urządzenia, możesz spróbować kliknąć Wyświetl, a następnie Pokaż ukryte urządzenia.

Metoda 2 - Usuń profil sieci

Możemy również spróbować usunąć profil sieci za pomocą wiersza polecenia, a następnie ponownie spróbować zastosować metodę 1. Najpierw musisz otworzyć wiersz polecenia z podwyższonym poziomem uprawnień, klikając Start, wpisując CMD, a następnie klikając prawym przyciskiem myszy wiersz polecenia i wybierając Uruchom jako administrator .

Teraz wpisz następujące polecenie, aby wyświetlić wszystkie adaptery przewodowe (Ethernet):

netsh lan show profiles

Jeśli chcesz usunąć kartę sieci bezprzewodowej, wpisz następujące polecenie:

netsh wlan show profiles

Jeśli pojawi się komunikat o błędzie dotyczący niedziałającej usługi AutoConfig sieci przewodowej lub WLAN , kliknij Start, wpisz services.msc, kliknij prawym przyciskiem myszy odpowiednią usługę i wybierz Start .

wprowadź opis zdjęcia tutaj

Teraz po uruchomieniu polecenia powinna zostać wyświetlona lista profili. W moim przypadku mam tylko jeden profil na tym komputerze.

wprowadź opis zdjęcia tutaj

Następnie wpisz następujące polecenie, które usunie żądany interfejs.

netsh lan delete profile interface="InterfaceName"

Ponownie, jeśli jest to interfejs bezprzewodowy, użyj wlan zamiast lan . Nazwa interfejsu znajduje się na górze każdego nagłówka ( Profil w nazwie interfejsu ) po uruchomieniu polecenia show profile. Po usunięciu profilu uruchom ponownie komputer i spróbuj ponownie zastosować metodę 1.

Metoda 3 - Usunięcie ustawień adaptera za pomocą rejestru

WAŻNY

Jeśli musisz edytować rejestr, najpierw wykonaj kopię zapasową rejestru .

Oprócz usunięcia profilu sieciowego możesz także spróbować usunąć ustawienia karty poprzez rejestr. Po usunięciu ustawień możesz wrócić do metody 1 i spróbować usunąć adapter. Aby usunąć ustawienia, otwórz edytor rejestru (kliknij przycisk Start i wpisz regedit.msc) i przejdź do następującego klucza:

HKEY_LOCAL_MACHINE - SYSTEM - CurrentControlSet - Services - Tcpip - Parameters - Interfaces

Zobaczysz kilka przedmiotów z długą serią liczb losowych. Kliknięcie każdego z nich spowoduje wyświetlenie adresu IP przypisanego do tej karty sieciowej.

wprowadź opis zdjęcia tutaj

Możesz potwierdzić, która karta sieciowa odpowiada temu kluczowi rejestru, otwierając wiersz polecenia (Start i wpisz cmd) i wpisując ipconfig .

wprowadź opis zdjęcia tutaj

Jak widać, adapter Ethernet to taki, który ma adres IP 192.168.1.233. Więc usuń klucz w obszarze Interfejsy zaczynające się od {73123f2a-ad10-4f4b-900e…} . Jeśli klikniesz inny interfejs, jeden z nich będzie miał adres IP 192.168.247.1, który odpowiada karcie sieciowej VMWare na komputerze. Ponownie usuwa to tylko ustawienia adaptera, a nie sam adapter. Uruchom ponownie komputer i spróbuj ponownie zastosować metodę 1.

W celu uzyskania dalszych informacji proszę skorzystać z poniższego linku:

https://www.online-tech-tips.com/computer-tips/unable-delete-network-adapter-windows-10/

Kamran
źródło
2

Przed wypróbowaniem powyższych rozwiązań sprawdź okienko „szczegółów” pod kątem komunikatu o błędzie. W moim przypadku odczytano, że awaria nastąpiła z powodu innych maszyn wirtualnych nadal korzystających z przełącznika.

Obrócenie VM off i próbuje ponownie, czy usunąć przełącznik.

Okienko szczegółów

Vaibhav Singh
źródło
0

Istnieje prostszy sposób rozwiązania problemu na forach Microsoft TechNet:

Spróbuj usunąć adapter mostka z „ Panel sterowania > Sieć i Internet > Połączenia sieciowe

Źródło: https://social.technet.microsoft.com/Forums/en-US/winserverhyperv/thread/e49df568-4f4c-47b7-b30c-952d1e26ca58/#8ecfa676-3184-4035-96de-10df079f706f

Alejandro
źródło
1
Nie mam adaptera mostkowego.
Johnny
@johnny Czy możesz udostępnić zrzut ekranu kart sieciowych z okna „Połączenia sieciowe”? Być może możesz to rozwiązać, odinstalowując protokół rozszerzalnego przełącznika wirtualnego Hyper-V, postępując zgodnie z instrukcjami z tej odpowiedzi .
Alejandro