Problémy se síťovými adaptéry vmxnet3 na Windows (2008 R2 a 7) po instalaci KB4088875 a KB4088878

Nové kumulativní aktualizace zabezpečení společnosti Microsoft - KB4088875 (Měsíční souhrnná kvalita) a KB4088878 (Aktualizace zabezpečení) pro Windows 7 SP1 a Windows Server 2008 R2, vydané 13. března 2018, způsobují vážné problémy se síťovými adaptéry virtuálních strojů VMware. Tyto aktualizace vedou k obnovení síťových rozhraní vNIC ak obnovení síťových nastavení hostujícího OS, v důsledku toho po instalaci aktualizací virtuální stroj ztratí zadanou statickou IP adresu a stane se nedostupným v síti.

K tomu dochází v důsledku přidání nové aktivní síťové karty do systému a starý síťový adaptér se stane skrytým a neaktivní. Nová síťová karta je nakonfigurována tak, aby dynamicky získávala IP adresu ze serveru DHCP. Pokud se pokusíte ručně nastavit starou IP adresu pro novou síťovou kartu, objeví se chyba:

IP adresa X.X.X.X, kterou jste zadali pro tento síťový adaptér, je již přiřazena jinému adaptéru (ethernetový adaptér vmxnet3), který již v počítači neexistuje. Pokud je stejná adresa přiřazena oběma adaptérům a stanou se aktivními, tuto adresu použije pouze jeden z nich. To může mít za následek nesprávnou konfiguraci systému. Chcete zadat jinou adresu IP pro tento adaptér v seznamu adres IP v dialogovém okně Upřesnit?

IP adresa X.X.X.X zadaná pro tento síťový adaptér je již přiřazena jinému ethernetovému adaptéru vmxnet3. Pokud jsou oba adaptéry přiřazeny ke stejné adrese a oba adaptéry se stanou aktivní, bude jej moci použít pouze jeden z nich. To může vést k poruchám systému. Zadejte jinou IP adresu tohoto adaptéru do seznamu IP adres v okně pokročilých nastavení?

Po instalaci těchto aktualizací ztratí virtuální server přidělenou adresu IP a snaží se získat novou adresu ze serveru DHCP. Tím se vytvoří nové síťové rozhraní ve větvi HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip \ Parameters \ Interfaces. Stará síťová karta se skrývá.

Problém se objevuje pouze na virtuálních počítačích se systémem Windows 7 / 2008R2 s virtuálním síťovým adaptérem, například vmxnet3.

Stará IP adresa je tedy stále považována za použitelnou a musí být uvolněna..

Chcete-li chybu opravit ručně, musíte odstranit skrytý síťový adaptér ze seznamu hardwaru. Chcete-li ve Správci zařízení zobrazit skrytou síťovou kartu, musíte spustit příkazy

set devmgr_show_nonpresent_devices = 1
start devmgmt.msc

Vyberte položku nabídky Zobrazit -> Zobrazit skrytá zařízení. A rozbalte sekci Network Adaters.

Poté ve Správci zařízení musíte odstranit skryté síťové karty vmxnet3 Ethernet Adapter #x. Poté lze nové síťové kartě přiřadit starou IP adresu.

Nyní otevřete ovládací panel síťového připojení a upravte nastavení IP nového adaptéru. Uložit změny (není třeba restartovat).

K automatickému vyřešení tohoto problému společnost Microsoft doporučuje použít následující skript VBS (https://support.microsoft.com/en-us/help/3125574/convenience-rollup-update-for-windows-7-sp1-and-windows-server- 2008-r2), které se mají spustit před nebo po instalaci aktualizací.

Před spuštěním skriptu se doporučuje zálohovat následující větev registru: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Enum \ PCI .

Kód skriptu fixPCI.vbs

Možnost Explicitní
Const HKEY_LOCAL_MACHINE = & H80000002
Dim oReg: Set oReg = GetObject ("winmgmts: impersonationLevel = impersonate! \\. \ Root \ default: StdRegProv")
Dim oShell: Set oShell = CreateObject ("WScript.Shell")
Dim sPath, aSub, sKey, aSubToo, sKeyToo, dwValue, Výsledek, SaveResult
Dim notDeleted
NotDeleted = 0
'Získejte všechny klíče v sPath
sPath = "SYSTEM \ CurrentControlSet \ Enum \ PCI"
oReg.EnumKey HKEY_LOCAL_MACHINE, sPath, aSub


„Opakujte každou klávesu
Pro každý sKey In aSub
'Získejte všechna podklíče do klíče' sKey '
oReg.EnumKey HKEY_LOCAL_MACHINE, sPath & "\" & sKey, aSubToo
Pro každý sKeyToo In aSubToo
Výsledek = oReg.DeleteKey (HKEY_LOCAL_MACHINE, sPath & "\" & sKey & "\" & sKeyToo & "\" & "\ Parametry zařízení" & "\ SlotPersistentInfo")
'Povolit selhání, pouze pokud klíč nikdy neexistoval
Pokud (Výsledek = 1) Nebo (Výsledek> 2) Pak
NotDeleted = 1
SaveResult = Výsledek
Konec pokud
Další
Další

Pokud (NotDeleted> 0) Then
Wscript.Echo "Jeden nebo více klíčů SlotPersistentInfo stále existuje v HKLM \ System \ CurrentControlSet \ Enum \ PCI \\ Parametry zařízení. Prosím, odstraňte ručně. Výsledek =" & Výsledek
Konec pokud

Obecně lze podobné akce provádět pomocí jednoho příkazu PowerShell:
Get-ChildItem “HKLM: // System / CurrentControlSet / Enum / PCI / * / * / DeviceParameters / SlotPersistentInfo” | Odebrat položku

Pomocí PowerCLI můžete najít všechny virtuální počítače s adaptérem Vmxnet3..
Chcete-li to provést, připojte se k serveru vSphere.
Connect-VIServer -Server vsphere65 -Uživatelské jméno / uživatelské jméno

Nyní uvedeme seznam všech virtuálních strojů s OS a použitých verzí virtuálních síťových karet.

PowerCLI C: \> Get-VM | Vyberte jméno, PowerState, Guest, @ N = 'NetworkAdapter'; E = [řetězec] :: Připojit se (',', (Get-NetworkAdapter -Vm $ _ | Select-Object) -ExpandProperty Type))

Pro snadnější analýzu lze tuto tabulku exportovat do Excelu přidáním | Export-Csv C: \ PS \ vNICrep.csv -NoTypeInformation