это было протестировано на Windows 10 1607.
короткий ответ, если вы используете Docker:
PS> Stop-Service com.docker.service
PS> Remove-ContainerNetwork -Name nat
Ответ:
если вы столкнулись с этой ситуацией и контейнеры включены или Докер установлен, вам нужно остановить Докер, прежде чем вы можете удалить VMSwitch.
PS> Get-VMSwitch
Name SwitchType NetAdapterInterfaceDescription
---- ---------- ------------------------------
DockerNAT Internal
nat Internal
Windows Phone Emulator Internal Switch Private
Primary Virtual Switch External Intel(R) Wireless
Как видите, у меня есть VMSwitch по имени nat
. Я хочу уйти.
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
ответ получилось довольно просто. Потому что я настроил nat
VMSwitch с NetNat, я удалил NetNat. Я не уверен, что это необходимый шаг, но я все равно это сделал.
PS> Get-NetNat -Name '<name>' | Remove-NetNat
потом я остановил Докера.
PS> Stop-Service com.docker.service
и наконец
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"):
чтобы убедиться, что это было:
PS> Get-VMSwitch
Name SwitchType NetAdapterInterfaceDescription
---- ---------- ------------------------------
DockerNAT Internal
Windows Phone Emulator Internal Switch Private
Primary Virtual Switch External Intel(R) Wireless