Удаление скрытых сетевых адаптеров в Windows

При замене материнской платы, сетевой карты, P2V миграции, холодном переносе виртуальных машин между различными типами гипервизоров, настройке VLAN на сетевом интерфейсе Windows вы можете столкнуться с проблемой наличия скрытых (невидимых) сетевых адаптеров. В результате вы не можете назначить старый статический IP адрес для нового сетевого интерфейса, так как старый IP был назначен ранее удаленному адаптеру.

Windows автоматически скрывает устройства, которые присутствуют в конфигурации Windows, но физически не подключены к компьютеру. Скрытый сетевой адаптер в системе остается, если вы физически отключили установленную ранее сетевую карту (это может быть, как физический NIC, так и виртуальная сетевая карта). Установленная ранее сетевая карта становится скрытой, и не доступна в диспетчере оборудования.

Ошибка: IP-адрес уже назначен другому сетевому адаптеру

Главная проблема со скрытыми сетевыми адаптерами – вы не сможете назначить IP адрес старого сетевого адаптера новой сетевой карте. При попытке назначить старый IP адрес появляется предупреждение:

Microsoft TCP/IP_x000D_IP-адрес 192.168.1.50, который вы задали для этого сетевого адаптера, уже назначен другому адаптеру. Если обоим устройствам назначен один и тот же адрес и оба адаптеры активны, только один из них сможет его использовать. Это может привести к неполадкам в работе системы._x000D__x000D_Вы хотите задать другой IP адрес для этого адаптера в списке IP-адресов в окне дополнительных параметров._x000D_

The IP address <IP address> you have entered for this network adapter is already assigned to another adapter (Intel Gigabit Network Connection) which is no longer present in the computer. If the same address is assigned to both adapters and they both become active, only one of them will use this address. This may result in incorrect system configuration._x000D__x000D_Do you want to remove the static IP configuration for the absent adapter?

Если попробовать задать IP адрес адаптера с помощью PowerShell , появится ошибка:

New-NetIPAddress –IPAddress 192.168.13.153 -DefaultGateway 192.168.13.1 -PrefixLength 24 -InterfaceIndex 22

New-NetIPAddress : The object already exists._x000D_Windows System Error 5010,New-NetIPAddress

С этой проблемой я часто сталкиваюсь в виртуальных машинах VMWare с виртуальным сетевым адаптером VMXNet3. Новая сетевая карта определяется как новое устройство (в отличии от vNIC типа E1000). Т.е. если вы удалили у ВМ VMWare сетевую карту (vNIC), а потом добавили новую, вы не сможете использовать старый IP адрес, назначенный удаленному сетевому интерфейсу.

Также проблема скрытых сетевых адаптеров появляется после выполнения миграции физического сервера в ВМ (Physical-to-Virtual — P2V), например с помощью VMware Converter . При миграции ОС остаются отключенные физические сетевые адаптеры, статические настройки IP адресов которых вам нужно использовать для новых vNIC.

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

Показать скрытые сетевые адаптеры в диспетчере оборудования Windows

Чтобы показать скрытые (отключенные физически) сетевые адаптеры в Windows нужно запустить консоль “Диспетчер устройств” (Device Manager) в специальном режиме.

Для этого в Windows 7 (и ниже):

  1. Нужно запустить командую строку с правами администратора;
  2. Выполните команду: set devmgr_show_nonpresent_devices=1
  3. Запустите консоль Device Manager: devmgmt.msc

В верхнем меню включите пункт Вид -> Показать скрытые устройства.

Разверните секцию Сетевые адаптеры (Network adapters). В списке должны появится скрытые сетевые карты (с бледными значками). Выберите сетевую карту, которую нужно удалить, ПКМ -> Удалить устройство (Uninstall Device). Можете сразу удалить драйвер , отметив опцию Delete the driver software for this device.

Как удалить скрытую сетевую карту из командной строки или PowerShell?

Вы можете вывести список скрытых сетевых адаптеров в Windows с помощью PowerShell:

Get-PnpDevice -class net | ? Status -eq Unknown | Select FriendlyName,InstanceId

Удалить такой сетевой адаптер можно по его InstanceId (скопируйте его значение из предыдущей команды):

$InstanceId = “PCIVEN_8086&DEV_10D3&SUBSYS_07D015AD&REV_00 00C29FFFF66A80700”
$RemoveKey = "HKLM:SYSTEMCurrentControlSetEnum$InstanceId"
Get-Item $RemoveKey | Select-Object -ExpandProperty Property | %{ Remove-ItemProperty -Path $RemoveKey -Name $_ -Verbose}

Можно удалить все скрытые сетевые адаптеры с помощью скрипта PowerShell:

$Devs = Get-PnpDevice -class net | ? Status -eq Unknown | Select FriendlyName,InstanceId
ForEach ($Dev in $Devs) {    $RemoveKey = "HKLM:SYSTEMCurrentControlSetEnum$($Dev.InstanceId)"    Get-Item $RemoveKey | Select-Object -ExpandProperty Property | %{ Remove-ItemProperty -Path $RemoveKey -Name $_ -Verbose }}

Для удаления устройств в Windows можно использовать утилиту DevCon.exe (Device Consol). Утилита входит в состав Windows Driver Kit (WDK):

Вывести список всех сетевых адаптеров:

devcon findall =net

Скопируйте Device Instance ID сетевого адаптера, который вы хотите удалить:
devcon -r remove "@PCIVEN_8086&DEV_10D3&SUBSYS_07D015AD&REV_00 00C29FFFF66A80700"

Обратите, что нужно указать символ @ перед ID устройства.

В списке присутствуют виртуальные сетевые адаптеры WAN Miniport (без них вы не сможете подключиться к удаленному VPN устройству ), Microsoft Hosted Network (используется для создания точки доступа Wi-Fi на Windows ), Microsoft Wi-Fi Direct и т.д. Не рекомендуем удалять их без необходимости.

В Windows 10/11 и Windows Server 2022/2019/2016 вместо утилиты devcon.exe можно использовать встроенную команду PnPUtil.

Вывести список сетевых адаптеров:

pnputil /enum-devices /class net

Чтобы удалить устройство, выполните:

pnputil /remove-device "PCIVEN_8086&DEV_10D3&SUBSYS_07D015AD&REV_00 00C29FFFF66A80700"

Запустите диспетчер устройств, выберите в меню Actions -> Scan for hardware changes и проверьте, что скрытая сетевая карта была удалена.

Удаление конфигурации сетевой карты из реестра

Если после удаления отключенного сетевого устройства в диспетчере устройств, вы все еще не можете назначить старый IP адрес новому адаптеру, нужно удалить IP конфигурацию старой NIC в реестре.

Настройки IP адресов сетевых интерфейсов хранятся в ветке реестра HKLMSYSTEMCurrentControlSetServicesTcpipParametersInterfaces .

В данной ветке находится несколько ключей вида {Interface GUID}. Проверьте их по очереди пока не найдете интерфейс, у которого значение IPAddress содержит IP адрес старого сетевого интерфейса.

В параметре IPAddress может быть указано несколько IP адресов, т.к. в Windows можно назначить несколько IP адресов (алиасов) одному сетевому адаптеру .

Запомните имя ветки реестра (это идентификатор данного сетевого адаптера). Удалите эту ветку, а также ветки:

  • HKLMSYSTEMCurrentControlSetServicesTcpipParametersAdapters{ваш_NIC_ID}
  • HKLMSYSTEMCurrentControlSetServices{ваш_NIC_ID}
  • HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlNetwork{ваш_NIC_ID}

Перезагрузите компьютер и попробуйте назначить старый статический IP адрес новому сетевому адаптеру.

Также рекомендуется выполнить сбросить сетевые настройки . В Windows 10 и 11 этот пункт доступен в меню Параметры -> Сеть и Интернет -> Сброс сети .

Сброс сетевых настроек также поможет вам, если в Windows не отображаются сетевые адаптеры .

А если вы у вас возникли проблемы после установки дополнительной сетевой карты, убедитесь, проверьте что встроенный LAN интерфейс отключен в BIOS/UEFI (пункт обычно называется Onboard Gbit NIC или Onboard LAN) .

admin

Share
Published by
admin

Recent Posts

Консоль удаленного рабочего стола(rdp console)

Клиент удаленного рабочего стола (rdp) предоставляет нам возможность войти на сервер терминалов через консоль. Что…

2 месяца ago

Настройка сети в VMware Workstation

В VMware Workstation есть несколько способов настройки сети гостевой машины: 1) Bridged networking 2) Network…

2 месяца ago

Логи брандмауэра Windows

Встроенный брандмауэр Windows может не только остановить нежелательный трафик на вашем пороге, но и может…

2 месяца ago

Правильный способ отключения IPv6

Вопреки распространенному мнению, отключить IPv6 в Windows Vista и Server 2008 это не просто снять…

2 месяца ago

Ключи реестра Windows, отвечающие за параметры экранной заставки

Параметры экранной заставки для текущего пользователя можно править из системного реестра, для чего: Запустите редактор…

2 месяца ago

Как управлять журналами событий из командной строки

В этой статье расскажу про возможность просмотра журналов событий из командной строки. Эти возможности можно…

2 месяца ago