address network adapter is

Иногда, после конвертации P2V, или после пересоздания виртуальных машин, случается ситуация, что драйвера от старых физических NIC все еще присутствуют в виртуальной системе, и физические сетевые карты (NIC) все еще считаются Windows существующими устройствами на машине.

Проблема заключается в том, что исходные NIC являются скрытыми (hidden), и по умолчанию не видны в оборудовании системы, и вы не можете назначить старый IP адрес новой сетевой карточке, т.к. данный адрес еще используется старой NIC.

В таком случае Windows начинает раздражать такими сообщениями об ошибке:

«The IP address 131.107.10.201 you have entered for this network adapter is already assigned to another adapter.»

Если зайти в диспетчер устройств (DeviceManager), вы увидите, что ваша новая сетевая карта названа как то так: “Microsoft Virtual Machine Bus Network Adapter #2”, а более никаких NIC в системе не видно. Так где же NIC # 1? На самом деле, она тоже там есть, но она скрыта, и до тех пор, как Windows помнит о старой сетевой карте, вы не сможете назначить новым картам старый IP адрес.

Чтобы избавиться от старых невидимых NIC, воспользуйтесь следующей процедурой:

1.Откройте командную строку.

2. Наберите следующую команду и нажмите клавишу ВВОД:

set devmgr_show_nonpresent_devices=1

3. Наберите еще одну команду:

start devmgmt.msc

Убедитесь, что вы набрали devmgmt.msc в том же самом окне командной строки, в котором вы выполнили «set devmgr_show_nonpresent_devices=1». Причина в том, что команда «Set» работает только для того же самом окружения, в котором выполнялась, и если вы закроете окно эта переменная сбросится.

4.В диспетчере устройств выберите View > Show hidden devices (Показать скрытые устройства).

5.Разверните дерево сетевых адаптеров. Старые физические сетевых карты теперь видны и окрашены в серый цвет.

6.Щелкните правой кнопкой по такой сетевой карточке и нажмите Uninstall(Удалить).

После этого вы можете назначить требуемый IP адрес новой виртуальной NIC.

Примечание: администраторам Windows Active Directory для простоты управления я рекомендую установить эту переменную глобально с помощью групповых политик, и распространить эту политику на все компьютеры. Для этого создайте новый GPO, которые определяет следующую ветку реестра:

System Key: [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession Manager Environment]

Имя параметра: DEVMGR_SHOW_NONPRESENT_DEVICES

Тип данных: REG_SZ (String Value)

Value Data: (1 = show all hidden devices/ показать все скрытые устройства)

Для применения данной политики понадобится перезагрузка. Мне кажется, что отображение скрытых устройств Windows с помощью групповой политики – это хорошая идея, т.к. проблема с невидимыми устройствами нередка в Windows системах.

Новые кумулятивные обновления безопасности Microsoft — KB4088875 (Monthly Quality Rollup) и KB4088878 (Security Only Update) для Windows 7 SP1 и Windows Server 2008 R2, выпушенные 13 марта 2018, вызывают серьезные проблемы с сетевыми адаптерами виртуальных машин VMware. Данные обновления приводят к пересозданию сетевых интерфейсов vNIC и сбросу сетевых настроек гостевых ОС, как следствие, после установки обновлений виртуальная машина теряет заданный статический IP адрес и становится не доступной по сети.

Происходит это из-за того, что в системе добавляется новая сетевая карта активный, а старый сетевой адаптер становится скрытым и неактивным. Новая сетевая карта настроена на динамическое получение IP адреса от DHCP сервера. В том случае, если попытаться вручную выставить старый IP адрес для новой сетевой карты, появляется ошибка:

После установки данных обновлений виртуальный сервер теряет назначенный ему IP адрес, пытаясь получить новый адрес от DHCP сервера. При этом создается новый сетевой интерфейс в ветке HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParametersInterfaces. Старая сетевая карта при этом скрывается.

Проблема проявляется только на виртуальных машинах с Windows 7 / 2008R2 с виртуальным сетевым адаптером типа vmxnet3.

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

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

set devmgr_show_nonpresent_devices=1
start devmgmt.msc

Выберите пункт меню View -> Show Hidden Devices. И разверните секцию Network Adaters.

После этого в диспетчере устройств нужно удалить скрытые сетевые карты vmxnet3 Ethernet Adapter #x. После этого старый IP адрес можно будет назначить новой сетевой карте.

Теперь откройте панель управления сетевыми подключениями и отредактируйте IP настройки нового адаптера. Сохраните изменения (перезагрузка не потребуется).

Для автоматического исправления данной проблемы Microsoft предлагает воспользоваться следующим VBS скриптом (https://support.microsoft.com/en-us/help/3125574/convenience-rollup-update-for-windows-7-sp1-and-windows-server-2008-r2), который нужно запустить до или после установки обновлений.

Перед выполнением скрипта рекомендуется создать резервную копию следующей ветки реестра: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetEnumPCI .

Код скрипта fixPCI.vbs

Option Explicit
Const HKEY_LOCAL_MACHINE = &H80000002
Dim oReg : Set oReg = GetObject(«winmgmts:!\.
ootdefault:StdRegProv»)
Dim oShell : Set oShell = CreateObject(«WScript.Shell»)
Dim sPath, aSub, sKey, aSubToo, sKeyToo, dwValue, Result, SaveResult
Dim NotDeleted
NotDeleted = 0
‘ Get all keys within sPath
sPath = «SYSTEMCurrentControlSetEnumPCI»
oReg.EnumKey HKEY_LOCAL_MACHINE, sPath, aSub

‘ Loop through each key
For Each sKey In aSub
‘ Get all subkeys within the key ‘sKey’
oReg.EnumKey HKEY_LOCAL_MACHINE, sPath & «» & sKey, aSubToo
For Each sKeyToo In aSubToo
Result = oReg.DeleteKey(HKEY_LOCAL_MACHINE, sPath & «» & sKey & «» & sKeyToo & «» & «Device Parameters» & «SlotPersistentInfo»)
‘ Allow failure only if key never existed
If (Result = 1) Or (Result > 2) Then
NotDeleted = 1
SaveResult = Result
End If
Next
Next

If (NotDeleted > 0) Then
Wscript.Echo «One or more SlotPersistentInfo keys still exist under HKLMSystemCurrentControlSetEnumPCI\Device Parameters. Please delete manually. Result = » & Result
End If

В общем-то аналогичные действия можно выполнить с помощью одной команды PowerShell:
Get-ChildItem “HKLM://System/CurrentControlSet/Enum/PCI/*/*/DeviceParameters/SlotPersistentInfo” | Remove-Item

Чтобы найти все виртуальные машины с адаптером Vmxnet3, можно воспользоваться PowerCLI.
Для этого, подключится к серверу vSphere.
Connect-VIServer -Server vsphere65 -User corpusername

Теперь выведем список всех виртуальных машин с ОС и используемыми версиями виртуальных сетевых карт.

I brought up a snapshot of a Windows Server 2003 R2 guest today and could not login to the domain. After further review I found the server had lost its static TCP/IP settings – both NICs were set to DHCP (they had previously been statically set). When I attempted to add the TCP/IP addresses back to the NICs, I received the following error message:

“The IP address you have entered for this network adapter is already assigned to another adapter “Fast Ethernet Adapter #2”. “Fast Ethernet Adapter #2″ is hidden from the Network Connections folder because it is not physically 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. Do you want to enter a different IP address for this adapter in the list of IP addresses in the Advanced dialog box?”

Solutions – KB825826 outlines several potential fixes. I ended up using Method #6 to remove the hidden network adapter. To uninstall the ghosted network adapter from the registry, complete these steps:

  1. Click Start, click Run, type cmd.exe, and then press ENTER.
  2. Type set devmgr_show_nonpresent_devices=1, and then press ENTER.
  3. Type Start DEVMGMT.MSC, and then press ENTER.
  4. Click View, and then click Show Hidden Devices.
  5. Expand the Network adapters tree.
  6. Right-click the dimmed network adapter, and then click Uninstall.

Next I configured the static IP on the NIC, and regained network connectivity. A reboot was required in my case, only because services dependant on domain availability did not automatically startup.

Founder of The Back Room Tech and managing editor. He began blogging in 2007 and quit his job in 2010 to blog full-time. He has over 15 years of industry experience in IT and holds several technical certifications. Read Aseem’s Full Bio

Оцените статью