如何删除 Hyper-V 虚拟以太网交换机

flu*_*ter 26 hyper-v windows-10

Hyper-V 中的旧 VM 交换机不再使用,当我尝试删除它时,它总是失败并显示以下消息:

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
Run Code Online (Sandbox Code Playgroud)

尝试在 GUI 中删除也不起作用:

图形用户界面

小智 23

我不想安装 Azure Powershell 工具,所以我只是按照以下视频中的步骤操作:https : //www.youtube.com/watch?v=V5Gb342gSGg

基本上,您转到网络连接-> 打开要删除的虚拟交换机的属性-> 单击配置-> 转到驱动程序选项卡-> 卸载设备。

为了防止 Hyper-V 服务在下次重新启动计算机时创建新的服务而不完全禁用它,我将每个 Hyper-V 服务的启动类型更改为手动。

  • 迄今为止最好的解决方案。避免接触注册表应该是最佳实践。 (2认同)

Run*_*n5k 18

Microsoft 的 TechNet 论坛上解决了类似的问题:

我们在虚拟交换机管理器中设置了一个虚拟交换机,并且使用网络和共享中心的“更改适配器设置...”错误地删除了该适配器。现在,显然交换机处于失败状态,我们只想将其从列表中删除。

最终,OP 在注册表中进行了深入搜索,并找到了存储在以下键中的虚拟交换机配置:

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

在他们删除该键中的相应值并重新启动后,虚拟交换机消失了。

与往常一样,我建议您.reg在尝试类似更改之前将当前设置导出到文件中以进行适当的备份。

(来源:无法从 Hyper-V 的虚拟交换机管理器中删除失败的虚拟交换机


bra*_*is7 14

即使我没有使用 Docker,我也想找出一个不使用 的解决方案regedit,因此在尝试了 RobV8R 的答案后,我在 MS Technet 上找到了有关此问题的说明。

Get-HNSNetwork | Remove-HNSNetwork
Run Code Online (Sandbox Code Playgroud)

或者,对于更过滤的 optoin,这就是我所需要的。

Get-HNSNetwork | ? Name -Like "Default Switch" | Remove-HNSNetwork
Run Code Online (Sandbox Code Playgroud)

此外,我将假设您希望遵循@mxgg250 的建议,并将所有 hyper-v 服务设置为手动启动,否则它将在重新启动时重新创建开关。

  • “Get-HNSNetwork | ? Name -Like 'nat' | Remove-HNSNetwork” - 很好地删除了卸载 Docker for Windows 后留下的 'nat' VMSwitch,谢谢! (2认同)

Rob*_*V8R 7

开始编辑

较新版本的 Windows 10 引入了“默认网络”虚拟交换机。

如果此方法不起作用,请参阅@bradlis7 的回复以获取其他选项。

结束编辑

这是在 Windows 10 1607 上测试的。

简短的回答,如果您使用的是 Docker:

PS> Stop-Service com.docker.service
PS> Remove-ContainerNetwork -Name nat
Run Code Online (Sandbox Code Playgroud)

长答案:

如果遇到这种情况并启用了 Containers 或安装了 Docker,则需要先停止 Docker,然后才能删除 VMSwitch。

PS> Get-VMSwitch

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

如您所见,我有一个名为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
Run Code Online (Sandbox Code Playgroud)

结果证明答案相当简单。因为我已经nat用 NetNat配置了 VMSwitch,所以我删除了 NetNat。我不确定这是否是必要的步骤,但我还是做了。

PS> Get-NetNat -Name '<name>' | Remove-NetNat
Run Code Online (Sandbox Code Playgroud)

然后我停止了 Docker。

PS> Stop-Service com.docker.service
Run Code Online (Sandbox Code Playgroud)

最后

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"):
Run Code Online (Sandbox Code Playgroud)

为了确保它消失了:

PS> Get-VMSwitch

Name                                   SwitchType NetAdapterInterfaceDescription
----                                   ---------- ------------------------------
DockerNAT                              Internal
Windows Phone Emulator Internal Switch Private
Primary Virtual Switch                 External   Intel(R) Wireless
Run Code Online (Sandbox Code Playgroud)

  • 仅供参考,此程序可能不起作用。它对我不起作用。没有 docker 服务正在运行,仍然无法满足悬空的 `nat`。因此,可能有必要求助于@Run5K 答案 (2认同)

Kam*_*ran 7

我不确定这是否正确但对我有用https : //www.online-tech-tips.com/computer-tips/unable-delete-network-adapter-windows-10/


更新

来源:无法删除 Windows 10 中的网络适配器?

方法 1 – 使用设备管理器

您可以尝试做的第一件事是打开设备管理器(单击开始并键入设备管理器),展开网络适配器,然后右键单击要删除的网络适配器。

在此处输入图片说明

在这里,您将看到一个名为“卸载设备”的选项。希望这不会变灰。如果是,请继续下一个方法。当您选择卸载设备时,将出现另一个窗口,要求确认卸载。

在此处输入图片说明

您还将看到删除设备驱动程序软件的选项。如果您想完全删除网络适配器,我建议选择此选项也删除驱动程序。如果一切顺利,您应该会看到该适配器已从设备管理器和控制面板中的网络适配器列表中删除。

如果您没有看到此处列出的设备,您可以尝试单击查看,然后单击显示隐藏的设备。

方法 2 – 删除网络配置文件

我们也可以尝试通过命令行删除网络配置文件,然后再次尝试方法1。首先,您必须通过单击开始,输入 CMD,然后右键单击命令提示符并选择以管理员身份运行来打开提升的命令提示符。

现在输入以下命令以查看所有有线(以太网)适配器:

netsh lan show profiles
Run Code Online (Sandbox Code Playgroud)

如果您需要移除无线适配器,请键入以下命令:

netsh wlan show profiles
Run Code Online (Sandbox Code Playgroud)

如果您收到有关WiredWLAN AutoConfig 服务未运行的错误消息,请单击“开始”,键入 services.msc,右键单击相应的服务并选择“开始”

在此处输入图片说明

现在,当您运行该命令时,您应该会看到一个配置文件列表。就我而言,我在这台计算机上只有一个配置文件。

在此处输入图片说明

接下来,键入以下命令,这将删除所需的接口。

netsh lan delete profile interface="InterfaceName"
Run Code Online (Sandbox Code Playgroud)

同样,如果它是无线接口,请使用wlan而不是lan。当您运行 show profiles 命令时,接口名称列在每个标题的顶部(接口名称上的配置文件)。删除配置文件后,重新启动计算机并再次尝试方法 1。

方法 3 – 通过注册表删除适配器设置

重要的

如果您需要编辑注册表,请确保先备份注册表

除了删除网络配置文件,您还可以尝试通过注册表删除适配器设置。删除设置后,您可以返回方法 1 并尝试删除适配器。要删除设置,请打开注册表编辑器(单击“开始”并键入 regedit.msc),然后导航到以下项:

HKEY_LOCAL_MACHINE - SYSTEM - CurrentControlSet - Services - Tcpip - Parameters - Interfaces
Run Code Online (Sandbox Code Playgroud)

您将看到列出的多个项目,其中包含一长串随机数。如果单击每一个,您将看到分配给该网络适配器的 IP 地址。

在此处输入图片说明

您可以通过打开命令提示符(开始并键入 cmd)并键入ipconfig来确认哪个网络适配器对应于该注册表项。

在此处输入图片说明

如您所见,以太网适配器是 IP 地址为 192.168.1.233 的适配器。因此,您将删除 Interfaces 下以{73123f2a-ad10-4f4b-900e...}开头的键。如果单击不同的接口,其中一个将具有 IP 192.168.247.1,它对应于计算机上的 VMWare 网络适配器。同样,这只会删除适配器的设置,而不是适配器本身。重新启动计算机并再次尝试方法 1。

如需更多信息,请参阅以下链接:

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