Скрытые сетевые адаптеры в Windows могут оставаться в системе после замены сетевой карты, материнской платы, P2V-миграции или настройки VLAN. Эти «призрачные» устройства, невидимые в стандартном режиме Диспетчера устройств, могут блокировать назначение старого IP-адреса новому сетевому интерфейсу, вызывая ошибки конфигурации сети. В этой статье описаны шаги по выявлению и удалению скрытых сетевых адаптеров с использованием Диспетчера устройств, PowerShell, PnPUtil, DevCon и редактирования реестра.
Почему возникают скрытые сетевые адаптеры
Скрытые сетевые адаптеры появляются, когда физическое или виртуальное сетевое устройство удаляется, но его конфигурация сохраняется в Windows. Это происходит в следующих случаях:
– Замена физической сетевой карты (NIC) или материнской платы.
– P2V-миграция с помощью инструментов, таких как VMware Converter.
– Холодный перенос виртуальных машин между гипервизорами (например, VMware, Hyper-V).
– Удаление виртуальной сетевой карты (vNIC), например, VMXNet3 в VMware.
– Настройка VLAN или изменение конфигурации сетевых интерфейсов.
Основная проблема: попытка назначить старый статический IP-адрес новому адаптеру вызывает ошибку, так как он уже привязан к скрытому устройству. Пример сообщения об ошибке:
IP-адрес 192.168.1.50, заданный для этого сетевого адаптера, уже назначен другому адаптеру. Это может привести к неполадкам в работе системы.
При использовании PowerShell для настройки IP может появиться ошибка:
New-NetIPAddress : The object already exists. Windows System Error 5010
Как найти скрытые сетевые адаптеры
Скрытые устройства не отображаются в Диспетчере устройств по умолчанию. Чтобы их увидеть, выполните следующие шаги:
1. Откройте Командную строку с правами администратора:
Пуск → Командная строка (Администратор) (Start → Command Prompt (Admin)).
2. Введите команду для включения отображения скрытых устройств:
set devmgr_show_nonpresent_devices=1
3. Запустите Диспетчер устройств:
devmgmt.msc
4. В меню выберите Вид → Показать скрытые устройства (View → Show hidden devices).
5. Разверните раздел Сетевые адаптеры (Network adapters). Скрытые устройства отображаются с бледными значками.
Удаление скрытого адаптера через Диспетчер устройств
1. Найдите скрытый сетевой адаптер в разделе Сетевые адаптеры.
2. Щелкните правой кнопкой мыши → Удалить устройство (Uninstall Device).
3. Активируйте опцию Удалить программы драйверов для этого устройства (Delete the driver software for this device), если она доступна.
4. Подтвердите удаление.
После удаления выполните Действия → Обновить конфигурацию оборудования (Actions → Scan for hardware changes), чтобы убедиться, что адаптер исчез.
Удаление скрытых адаптеров через PowerShell
Для автоматизации процесса используйте PowerShell для поиска и удаления скрытых сетевых адаптеров.
Поиск скрытых адаптеров
Чтобы вывести список скрытых сетевых адаптеров:
Get-PnpDevice -Class Net | Where-Object { $_.Status -eq 'Unknown' } | Select-Object FriendlyName, InstanceId
Команда возвращает имена (FriendlyName) и идентификаторы (InstanceId) скрытых адаптеров.
Удаление одного адаптера
Скопируйте InstanceId нужного адаптера и выполните:
$InstanceId = "PCI\VEN_8086&DEV_10D3&SUBSYS_07D015AD&REV_00\000C29FFFF66A80700"
$RemoveKey = "HKLM:\система\CurrentControlSet\Enum\$InstanceId"
Get-Item $RemoveKey | Select-Object -ExpandProperty Property | ForEach-Object { Remove-ItemProperty -Path $RemoveKey -Name $_ -Verbose }
Удаление всех скрытых адаптеров
Для удаления всех скрытых сетевых адаптеров используйте скрипт:
$Devs = Get-PnpDevice -Class Net | Where-Object { $_.Status -eq 'Unknown' } | Select-Object FriendlyName, InstanceId
ForEach ($Dev in $Devs) {
$RemoveKey = "HKLM:\SYSTEM\CurrentControlSet\Enum\$($Dev.InstanceId)"
Get-Item $RemoveKey | Select-Object -ExpandProperty Property | ForEach-Object { Remove-ItemProperty -Path $RemoveKey -Name $_ -Verbose }
}
Удаление с помощью PnPUtil
В Windows 10, Windows 11 и Windows Server 2016/2019/2022 используйте утилиту PnPUtil вместо DevCon.
1. Выведите список сетевых адаптеров:
pnputil /enum-devices /class Net
2. Найдите Instance ID скрытого адаптера.
3. Удалите устройство:
pnputil /remove-device "PCI\VEN_8086&DEV_10D3&SUBSYS_07D015AD&REV_00\000C29FFFF66A80700"
4. Проверьте удаление в Диспетчере устройств (Действия → Обновить конфигурацию оборудования / Actions → Scan for hardware changes).
Удаление с помощью DevCon
Утилита DevCon.exe из Windows Driver Kit (WDK) также подходит для удаления скрытых адаптеров.
1. Выведите список всех сетевых адаптеров:
devcon findall =net
2. Скопируйте Device Instance ID и удалите адаптер:
devcon -r remove "@PCI\VEN_8086&DEV_10D3&SUBSYS_07D015AD&REV_00\000C29FFFF66A80700"
Примечание: Указывайте символ @ перед Instance ID.
Осторожно с виртуальными адаптерами
Не удаляйте виртуальные адаптеры, такие как:
– WAN Miniport (необходимы для VPN).
– Microsoft Hosted Network (для точки доступа Wi-Fi).
– Microsoft Wi-Fi Direct.
Удаление конфигурации из реестра
Если после удаления адаптера проблема с назначением IP-адреса сохраняется, проверьте реестр. Настройки сетевых интерфейсов хранятся в ветке:
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces
1. Откройте Редактор реестра (regedit).
2. Найдите ветку с GUID интерфейса, содержащую старый IPAddress.
3. Удалите ветки, связанные с этим интерфейсом:
– HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Adapters\{GUID}
– HKLM\SYSTEM\CurrentControlSet\Services\{GUID}
– HKLM\SYSTEM\CurrentControlSet\Control\Network\{GUID}
Пример удаления через PowerShell:
$InterfaceGUID = "{ваш_GUID}"
Remove-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\$InterfaceGUID" -Recurse
Remove-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Adapters\$InterfaceGUID" -Recurse
Remove-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Services\$InterfaceGUID" -Recurse
Remove-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Network\$InterfaceGUID" -Recurse
Сброс сетевых настроек
Если проблемы сохраняются, выполните сброс сетевых настроек:
1. Откройте Параметры → Сеть и Интернет → Сброс сети (Settings → Network & Internet → Network reset).
2. Нажмите Сбросить сейчас (Reset now).
3. Перезагрузите компьютер.
Проверка BIOS/UEFI
Если после установки новой сетевой карты возникают конфликты, проверьте BIOS/UEFI:
1. Перейдите в настройки BIOS/UEFI.
2. Отключите встроенный сетевой интерфейс (Onboard Gbit NIC или Onboard LAN), если он не используется.
Рекомендации
– Перед удалением адаптеров создайте резервную копию реестра:
reg export HKLM\SYSTEM\CurrentControlSet C:\Backup\SystemRegBackup.reg
– Используйте PnPUtil в современных версиях Windows для простоты.
– После удаления адаптеров проверьте назначение IP-адреса:
New-NetIPAddress -IPAddress 192.168.1.50 -DefaultGateway 192.168.1.1 -PrefixLength 24 -InterfaceIndex 22
– Регулярно проверяйте Диспетчер устройств после миграций или замены оборудования.
Эти шаги помогут устранить проблемы с назначением IP-адресов и очистить систему от скрытых сетевых адаптеров.