Isso foi testado no Windows 10 1607.
Resposta curta, se você estiver usando o Docker:
PS> Stop-Service com.docker.service
PS> Remove-ContainerNetwork -Name nat
Longa resposta:
Se você encontrar essa situação e tiver os Containers ativados ou o Docker instalado, será necessário interromper o Docker antes de poder remover o VMSwitch.
PS> Get-VMSwitch
Name SwitchType NetAdapterInterfaceDescription
---- ---------- ------------------------------
DockerNAT Internal
nat Internal
Windows Phone Emulator Internal Switch Private
Primary Virtual Switch External Intel(R) Wireless
Como você pode ver, eu tenho um VMSwitch chamado nat
. Eu quero que isso vá embora.
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
A resposta acabou sendo bastante simples. Como eu tinha configurado o nat
VMSwitch com um NetNat, removi o NetNat. Não tenho certeza se este é um passo necessário, mas eu fiz isso de qualquer maneira.
PS> Get-NetNat -Name '<name>' | Remove-NetNat
Depois parei o Docker.
PS> Stop-Service com.docker.service
E finalmente
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"):
Para se certificar de que desapareceu:
PS> Get-VMSwitch
Name SwitchType NetAdapterInterfaceDescription
---- ---------- ------------------------------
DockerNAT Internal
Windows Phone Emulator Internal Switch Private
Primary Virtual Switch External Intel(R) Wireless