Удаление скрытых сетевых адаптеров в 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_

IP-адрес 192.168.1.50, который вы задали для этого сетевого адаптера, уже назначен другому адаптеру. Если обоим устройствам назначен один и тот же адрес

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?

The IP address <IP address> you have entered for this network adapter is already assigned to another 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

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

device manager показать скрытые устройства

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

удаление скрытого сетевого адаптера в windows

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

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

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

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

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

Get-PnpDevice удалить скрытые сетевые карты из powershell

Можно удалить все скрытые сетевые адаптеры с помощью скрипта 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_0000C29FFFF66A80700"

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

devcon удаление несуществующей сетевой карты в Windows

В списке присутствуют виртуальные сетевые адаптеры 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

получить ID сетевого адаптера

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

pnputil /remove-device "PCIVEN_8086&DEV_10D3&SUBSYS_07D015AD&REV_0000C29FFFF66A80700"

pnputil remove-device удалить сетевую карту

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

пересканровать оборубование в windows

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

Если после удаления отключенного сетевого устройства в диспетчере устройств, вы все еще не можете назначить старый 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 10 сброс сети

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

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

EnglishRussianUkrainian