因此,今天下午我的办公电脑自动收到了 Windows 10 周年更新(既违背了我的意愿,也违背了我明确的不更新设置)。当我重新登录时,除了一个之外,我所有的网络适配器都消失了(我之前通过 Hyper-V 设置了一个虚拟交换机,以允许模拟设备访问互联网)。
当我尝试为剩余的 NIC 分配 IP 地址时,我收到了以下令人高兴的消息:
您为此网络适配器输入的 IP 地址已分配给此计算机上的另一个适配器“Hyper-V 虚拟以太网适配器”。如果将同一地址分配给两个适配器,并且两个适配器都处于活动状态,则只有其中一个会使用此地址。这可能会导致系统配置不正确。
看来,这次更新并没有起到什么帮助作用,而是以这样的方式卸载了 hyper-v 管理器,过去的网络阴影仍然困扰着我。
在设备管理器中查看时,列出的适配器没有出现。使用设备管理器“显示隐藏的设备”也不会使其出现(即使我运行“set devmgr_show_nonpresent_devices=1”命令)。
Ipconfig 也没有列出该设备。
我想也许如果我重新安装 Hyper-V,我就能从那里管理它,但是完成安装并重新启动后,适配器也不存在了。
我尝试通过“remove-vmswitch”在 Powershell 中将其删除,但失败了,说找不到这样的适配器。
我怎样才能删除这个看似不可见的适配器的所有痕迹,以便我的 NIC 再次开始正常工作?
答案1
警告
在这里插入常见的注册表编辑警告 - 简而言之,在弄乱注册表之前请备份您的系统,如果您不愿意这样做,就不要弄乱它。
现在,事情已经解决了...
在以下注册表位置搜索 IP 地址:
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces
如果您在 GUID 键下找到有问题的 IP 地址(即{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
),则在以下位置应该有一个相关键:
HKLM\SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}\####
它有一个名为“ ”的子值,NetCfgInstanceId
其 GUID 与您在第一次搜索中确定的相同。
您还可以在以下位置找到对该 GUID 的引用:
HKLM\SYSTEM\CurrentControlSet\Control\Network\{4d36e972-e325-11ce-bfc1-08002be10318}
它有一个子键\值,Connection\Name
其中包含网络连接的名称,就像您在控制面板的网络设备视图中看到的一样(即“局域网”)。
我还没有在 Windows 10 中执行此操作,但在以前的 Windows 版本(7 和 2008 R2)中,我删除了所有三个引用 NIC/IP 的密钥(不要删除包含系统上所有 NIC 的父密钥 - 只删除您遇到问题的特定 NIC/IP 的密钥),以便摆脱您所描述的问题。至少您应该先导出密钥,以便根据需要将它们添加回来。
而且,我不记得了,但如果必须重新启动才能使更改生效,我不会感到惊讶。
供参考:当 Windows 提示您尝试分配给网络连接/NIC 的名称正在使用并且您无法看到它时,可以使用相同的方法。(名称将位于 下HKLM\SYSTEM\CurrentControlSet\Control\Network\{4d36e972-e325-11ce-bfc1-08002be10318}\<GUID>\Connection\Name
)
答案2
您可以使用 devcon findall 列出所有设备,并使用 devcon removall 删除有问题的设备。
已将 removeall 命令添加到 devcon。devcon 是 Windows 驱动程序工具包 (WDK) 的一部分,但我在 WDK 附带的可执行文件中未找到新的 removeall 命令。我假设您必须从源代码构建它;这就是我所做的。说明如下:从源代码构建 devcon
它涉及安装 Visual Studio、Windows SDK、WDK,然后从 git 存储库下载最新示例。我发现我需要手动执行“MC msgs.mc”才能使构建工作。