Come rimuovere uno switch Ethernet virtuale Hyper-V


21

Uno switch VM obsoleto in Hyper-V non viene più utilizzato e quando provo a eliminarlo, fallisce sempre con il seguente messaggio:

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

Il tentativo di eliminare all'interno della GUI non funziona neanche:

GUI


errore di accesso negato = problema di autorizzazione. usi admin?
magicandre1981,

si, sto correndo come amministratore. Ho notato che l'errore è fuorviante. La scheda di rete sottolineata è andata nel centro condivisione di rete, credo che sia l'errore, ma come posso rimuovere questo vmswitch.
fluter

Risposte:


13

Un problema simile è stato risolto sui forum TechNet di Microsoft:

Abbiamo una configurazione di switch virtuale nel Virtual Switch Manager e l'adattatore è stato eliminato per errore utilizzando le "Modifica impostazioni scheda ..." del Centro connessioni di rete e condivisione. Ora, ovviamente, l'interruttore è in uno stato non riuscito e vogliamo solo rimuoverlo dall'elenco.

Alla fine, l'OP ha eseguito una ricerca approfondita all'interno del registro e ha trovato la configurazione dello switch virtuale memorizzata nella seguente chiave:

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

Dopo aver eliminato il valore corrispondente all'interno di quella chiave e riavviato, lo switch virtuale era scomparso.

Come sempre, ti consiglio di esportare le tue impostazioni attuali in un .regfile per avere un backup adeguato prima di provare simili cambiamenti.

(Fonte: impossibile rimuovere lo switch virtuale non riuscito dal Virtual Switch Manager di Hyper-V )


1
Posso confermare che ha funzionato per me. Thx
mloskot

Non riesco a trovare tale valore nel registro: /
Jurosh

1
Questo ha funzionato per me, tuttavia ho anche dovuto scavare nella connessione di rete nel registro per eliminarlo. Ciò ha lasciato tutti i riferimenti alla finestra mobile svc nel registro: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ vmsmp \ parametri \ SwitchList \ {yada yada} e HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSEt001 \ Control \ Network \ {yada yada}
JohnZaj

14

Non volevo installare gli strumenti di Azure Powershell, quindi ho appena seguito i passaggi di questo video: https://www.youtube.com/watch?v=V5Gb342gSGg

Fondamentalmente vai su Connessioni di rete -> apri le proprietà per lo switch virtuale che vuoi eliminare -> fai clic su Configura -> vai alla scheda Driver -> Disinstalla dispositivo.

Per impedire che il servizio Hyper-V ne crei uno nuovo la prossima volta che riavvio il computer senza disabilitarlo del tutto, ho cambiato il Tipo di avvio di ciascun servizio Hyper-V in Manuale.


Ciò ha lasciato tutti i riferimenti alla finestra mobile svc nel registro: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ vmsmp \ parametri \ SwitchList \ {yada yada} e HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSEt001 \ Control \ Network \ {yada yada}
JohnZaj

1
Di gran lunga la soluzione migliore. Evitare di toccare il registro dovrebbe essere una buona pratica.
Soleil,

8

Anche se non sto usando Docker, volevo trovare una soluzione senza usare regedit, quindi dopo aver tentato la risposta da RobV8R , ho trovato istruzioni su questa domanda su MS Technet .

Get-HNSNetwork | Remove-HNSNetwork

Oppure, per un'optoina più filtrata, questo è ciò di cui avevo bisogno.

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

Inoltre, suppongo che vorrai seguire i consigli di @ mxgg250 e impostare tutti i servizi hyper-v sull'avvio manuale, altrimenti ricrea l'interruttore di riavvio.


"Get-HNSNetwork |? Nome -Come 'nat' | Remove-HNSNetwork" - Ha funzionato bene per rimuovere il VMSwitch 'nat' lasciato dopo aver disinstallato Docker per Windows, grazie!
Froosh,

... che è anche documentato sulle istruzioni Docker di cleanup di Microsoft docs.microsoft.com/en-us/virtualization/windowscontainers/…
Froosh

6

INIZIA EDIT

Le versioni più recenti di Windows 10 hanno introdotto uno switch virtuale "Rete predefinita".

Se questo metodo non funziona, consultare la risposta di @ bradlis7 per un'altra opzione.

MODIFICA FINE

Questo è stato testato su Windows 10 1607.

Risposta breve, se si utilizza Docker:

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

Risposta lunga:

Se ti imbatti in questa situazione e hai Container abilitato o Docker installato, dovrai interrompere Docker prima di poter rimuovere VMSwitch.

PS> Get-VMSwitch

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

Come puoi vedere, ho un VMSwitch chiamato nat. Voglio che vada via.

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

La risposta si è rivelata piuttosto semplice. Poiché avevo configurato natVMSwitch con un NetNat, ho rimosso il NetNat. Non sono sicuro che questo sia un passaggio necessario, ma l'ho fatto comunque.

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

Poi ho fermato Docker.

PS> Stop-Service com.docker.service

E infine

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"):

Per assicurarsi che fosse sparito:

PS> Get-VMSwitch

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

2
Cordiali saluti, questa procedura potrebbe non funzionare. Non funziona per me. Nessun servizio docker è in esecuzione, non è ancora possibile riattivare il ciondolo nat. Quindi, potrebbe essere necessario ricorrere alla risposta @ Run5K
mloskot

4

Non sono sicuro che sia giusto, ma ha funzionato per me: https://www.online-tech-tips.com/computer-tips/unable-delete-network-adapter-windows-10/


AGGIORNARE

Fonte: impossibile eliminare la scheda di rete in Windows 10?

Metodo 1: utilizzare Gestione dispositivi

La prima cosa che puoi provare a fare è aprire Gestione dispositivi (fai clic su Start e digita Gestione dispositivi), espandi Schede di rete, quindi fai clic con il pulsante destro del mouse sulla scheda di rete che desideri rimuovere.

inserisci qui la descrizione dell'immagine

Qui vedrai un'opzione chiamata Uninstall device. Si spera che questo non dovrebbe essere disattivato. In tal caso, passare al metodo successivo. Quando si seleziona il dispositivo di disinstallazione, verrà visualizzata un'altra finestra che chiede di confermare la disinstallazione.

inserisci qui la descrizione dell'immagine

Vedrai anche un'opzione per eliminare il software del driver per il dispositivo. Se si desidera rimuovere completamente la scheda di rete, suggerisco di selezionare questa opzione per rimuovere anche il driver. Se tutto va bene, dovresti vedere che l'adattatore è stato rimosso sia da Gestione dispositivi sia dall'elenco degli adattatori di rete nel Pannello di controllo.

Se non vedi il dispositivo elencato qui, puoi provare a fare clic su Visualizza, quindi su Mostra dispositivi nascosti .

Metodo 2 - Elimina profilo di rete

Possiamo anche provare a eliminare il profilo di rete tramite la riga di comando e quindi riprovare Metodo 1. Innanzitutto, è necessario aprire un prompt dei comandi con privilegi elevati facendo clic su Start, digitando CMD e quindi facendo clic con il pulsante destro del mouse sul prompt dei comandi e scegliendo Esegui come amministratore .

Ora digita il seguente comando per vedere tutti gli adattatori cablati (Ethernet):

netsh lan show profiles

Se è necessario rimuovere un adattatore wireless, digitare questo comando:

netsh wlan show profiles

Se viene visualizzato un messaggio di errore relativo al servizio di configurazione automatica cablata o WLAN non in esecuzione, fare clic su Start, digitare services.msc, fare clic con il pulsante destro del mouse sul servizio appropriato e scegliere Avvia .

inserisci qui la descrizione dell'immagine

Ora quando esegui il comando, dovresti vedere un elenco di profili. Nel mio caso, ho solo un profilo su questo computer.

inserisci qui la descrizione dell'immagine

Quindi, digitare il seguente comando, che eliminerà l'interfaccia desiderata.

netsh lan delete profile interface="InterfaceName"

Ancora una volta, se si tratta di un'interfaccia wireless, utilizzare wlan anziché lan . Il nome dell'interfaccia è elencato nella parte superiore di ogni intestazione ( Profilo sul nome dell'interfaccia ) quando è stato eseguito il comando show profiles. Dopo aver eliminato il profilo, riavvia il computer e riprova il Metodo 1.

Metodo 3: rimuovere le impostazioni dell'adattatore tramite il registro

IMPORTANTE

Se è necessario modificare il registro, assicurarsi innanzitutto di eseguire il backup del registro .

Oltre a eliminare il profilo di rete, puoi anche provare a rimuovere le impostazioni dell'adattatore tramite il registro. Dopo aver rimosso le impostazioni, è possibile tornare al metodo 1 e provare a rimuovere l'adattatore. Per rimuovere le impostazioni, aprire l'editor del registro (fare clic su Start e digitare regedit.msc) e passare alla chiave seguente:

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

Vedrai diversi elementi elencati con una lunga serie di numeri casuali. Se fai clic su ciascuno, vedrai l'indirizzo IP assegnato a quella scheda di rete.

inserisci qui la descrizione dell'immagine

È possibile confermare quale scheda di rete corrisponde a quella chiave di registro aprendo un prompt dei comandi (Start e digitare cmd) e digitando ipconfig .

inserisci qui la descrizione dell'immagine

Come puoi vedere, l'adattatore Ethernet è quello che ha un indirizzo IP di 192.168.1.233. Quindi elimineresti la chiave in Interfacce che inizia con {73123f2a-ad10-4f4b-900e ...} . Se si fa clic su un'interfaccia diversa, una di esse avrà l'IP 192.168.247.1, che corrisponde all'adattatore di rete VMWare sul computer. Ancora una volta, questo elimina solo le impostazioni per l'adattatore, non l'adattatore stesso. Riavvia il computer e riprova il Metodo 1.

Per ulteriori informazioni si prega di fare riferimento al seguente link:

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


2

Prima di provare le soluzioni precedenti, assicurati di controllare il messaggio "errore" nel riquadro "dettagli". Nel mio caso, si legge che l'errore si è verificato a causa di altre macchine virtuali che utilizzano ancora lo switch.

Girando la VM off e provare di nuovo, ha fatto rimuovere l'interruttore.

Riquadro dettagli


0

Esiste un modo più semplice per risolvere il problema sui forum TechNet di Microsoft:

Prova a eliminare l' adattatore Bridge da " Pannello di controllo > Rete e Internet > Connessioni di rete "

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


1
Non ho un adattatore Bridge.
johnny,

@johnny Puoi condividere uno screenshot delle tue schede di rete dalla finestra "Connessioni di rete"? Forse puoi risolverlo disinstallando il protocollo Hyper-V Extensible Virtual Switch seguendo le istruzioni di questa risposta .
Alejandro,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.