14

Устаревший коммутатор виртуальных машин в Hyper-V больше не используется, и когда я пытаюсь удалить его, он всегда выдает следующее сообщение:

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

Попытка удаления в графическом интерфейсе также не работает:

графический интерфейс пользователя

6 ответов6

11

Аналогичная проблема была решена на форумах Microsoft TechNet:

У нас есть настройка виртуального коммутатора в диспетчере виртуальных коммутаторов, и адаптер был удален по ошибке с помощью «Изменить настройки адаптера ...» Центра управления сетями и общим доступом. Теперь, очевидно, коммутатор находится в состоянии сбоя, и мы просто хотим удалить его из списка.

В конечном итоге OP выполнил углубленный поиск в реестре и обнаружил, что конфигурация виртуального коммутатора хранится в следующем ключе:

HKLM\SYSTEM\CurrentControlSet\Services\VMSMP\ Параметры \ SwitchList

После того как они удалили соответствующее значение в этом ключе и перезагрузили, виртуальный коммутатор исчез.

Как всегда, я бы порекомендовал вам экспортировать ваши текущие настройки в файл .reg для создания соответствующей резервной копии, прежде чем предпринимать подобные изменения.

(Источник: невозможно удалить сбойный виртуальный коммутатор из диспетчера виртуальных коммутаторов Hyper-V)

7

Я не хотел устанавливать инструменты Azure Powershell, поэтому я просто выполнил действия, описанные в этом видео: https://www.youtube.com/watch?v=V5Gb342gSGg

В основном вы идете в Сетевые подключения -> открыть свойства для виртуального коммутатора, который вы хотите удалить -> нажмите Конфигурировать -> перейдите на вкладку Драйвер -> Удалить устройство.

Чтобы в следующий раз служба Hyper-V не создала новую, я перезагружаю компьютер, не отключая его полностью, поэтому я изменил тип запуска каждой службы Hyper-V на «Вручную».

5

Это было проверено на Windows 10 1607.

Короткий ответ, если вы используете Docker:

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

Длинный ответ:

Если вы столкнетесь с этой ситуацией и у вас будут включены контейнеры или установлен 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

Как видите, у меня есть VMS-переключатель с именем 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
3

Несмотря на то, что я не использую Docker, я хотел найти решение без использования regedit , поэтому после попытки ответа от RobV8R я нашел инструкции по этому вопросу в MS Technet.

Get-HNSNetwork | Remove-HNSNetwork

Или, для более фильтрованного оптоина, это то, что мне нужно.

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

Кроме того, я собираюсь предположить, что вы захотите последовать совету @ mxgg250 и настроить все службы hyper-v на ручной запуск, в противном случае он будет воссоздавать переключатель при перезагрузке.

1

Я не уверен, что это правильно, но у меня сработало:https://www.online-tech-tips.com/computer-tips/unable-delete-network-adapter-windows-10/


ОБНОВИТЬ

Источник: Невозможно удалить сетевой адаптер в Windows 10?

Способ 1 - использование диспетчера устройств

Первое, что вы можете попытаться сделать, это открыть Диспетчер устройств (нажмите «Пуск» и введите «Диспетчер устройств»), разверните «Сетевые адаптеры», а затем щелкните правой кнопкой мыши сетевой адаптер, который вы хотите удалить.

Здесь вы увидите опцию под названием Удаление устройства. Надеюсь, это не должно быть серым. Если это так, перейдите к следующему способу. Когда вы выбираете удалить устройство, появится другое окно с просьбой подтвердить удаление.

Вы также увидите опцию удаления программного обеспечения драйвера для устройства. Если вы хотите полностью удалить сетевой адаптер, я предлагаю выбрать эту опцию, чтобы также удалить драйвер. Если все идет хорошо, вы должны увидеть, что адаптер был удален как из диспетчера устройств, так и из списка сетевых адаптеров на панели управления.

Если вы не видите устройства, перечисленного здесь, вы можете попробовать нажать « Просмотр», а затем « Показать скрытые устройства».

Способ 2 - удалить профиль сети

Мы также можем попытаться удалить профиль сети через командную строку, а затем снова попробовать метод 1. Сначала необходимо открыть командную строку с повышенными привилегиями, нажав кнопку «Пуск», введя CMD, а затем щелкните правой кнопкой мыши командную строку и выберите « Запуск от имени администратора».

Теперь введите следующую команду, чтобы увидеть все проводные (Ethernet) адаптеры:

netsh lan show profiles

Если вам нужно удалить беспроводной адаптер, введите эту команду:

netsh wlan show profiles

Если вы получите какое - то сообщение об ошибке об услуге проводной или WLAN автонастройки не работает, а затем нажмите кнопку Пуск, введите services.msc, щелкните правой кнопкой мыши на соответствующую службу и выберите Start.

Теперь, когда вы запустите команду, вы должны увидеть список профилей. В моем случае у меня только один профиль на этом компьютере.

Затем введите следующую команду, которая удалит нужный интерфейс.

netsh lan delete profile interface="InterfaceName"

Опять же, если это беспроводной интерфейс, используйте wlan вместо lan. Имя интерфейса указывается в верхней части каждого заголовка (Профиль в имени интерфейса), когда вы запустили команду show profile. Как только профиль был удален, перезагрузите компьютер и попробуйте метод 1 снова.

Способ 3 - удалить настройки адаптера через реестр

ВАЖНЫЙ

Если вам нужно отредактировать реестр, сначала сделайте резервную копию реестра.

Помимо удаления профиля сети, вы также можете попытаться удалить настройки адаптера через реестр. После удаления настроек вы можете вернуться к способу 1 и попытаться удалить адаптер. Чтобы удалить настройки, откройте редактор реестра (нажмите «Пуск» и введите regedit.msc) и перейдите к следующему ключу:

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

Вы увидите несколько предметов, перечисленных с длинной серией случайных чисел. Если вы щелкнете по каждому из них, вы увидите IP-адрес, назначенный этому сетевому адаптеру.

Вы можете подтвердить, какой сетевой адаптер соответствует этому разделу реестра, открыв командную строку (Start и введите cmd) и введя в ipconfig.

Как видите, Ethernet-адаптер имеет IP-адрес 192.168.1.233. Таким образом, вы удалили бы ключ в разделе Интерфейсы, который начинается с {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/

0

Существует более простой способ решения проблемы на форумах Microsoft TechNet:

Попробуйте удалить Bridge Adapter из « Панель управления > Сеть и Интернет > Сетевые подключения »

Источник: https://social.technet.microsoft.com/Forums/en-US/winserverhyperv/thread/e49df568-4f4c-47b7-b30c-952d1e26ca58/#8ecfa676-3184-4035-96de-10df079f706f

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .