Problémy so sieťovými adaptérmi vmxnet3 na Windows (2008 R2 a 7) po inštalácii KB4088875 a KB4088878

Nové kumulatívne aktualizácie zabezpečenia spoločnosti Microsoft - KB4088875 (Mesačná súhrnná kvalita) a KB4088878 (Security Only Update) pre Windows 7 SP1 a Windows Server 2008 R2, vydané 13. marca 2018, spôsobujú vážne problémy so sieťovými adaptérmi virtuálnych počítačov VMware. Tieto aktualizácie vedú k obnoveniu sieťových rozhraní vNIC a k obnoveniu sieťových nastavení hosťujúceho OS, v dôsledku toho po nainštalovaní aktualizácií virtuálny stroj stratí zadanú statickú IP adresu a stane sa nedostupným v sieti..

Deje sa tak v dôsledku toho, že sa do systému pridá nová aktívna sieťová karta a starý sieťový adaptér sa skryje a neaktívne. Nová sieťová karta je nakonfigurovaná na dynamické získavanie adresy IP zo servera DHCP. Ak sa pokúsite manuálne nastaviť starú adresu IP pre novú sieťovú kartu, zobrazí sa chyba:

IP adresa X.X.X.X, ktorú ste zadali pre tento sieťový adaptér, je už priradená inému adaptéru (ethernetový adaptér vmxnet3), ktorý už v počítači neexistuje. Ak je rovnaká adresa priradená obom adaptérom a stanú sa aktívnymi, túto adresu použije iba jeden z nich. Môže to mať za následok nesprávnu konfiguráciu systému. Chcete zadať inú adresu IP pre tento adaptér v zozname IP adries v dialógovom okne pre pokročilých?

IP adresa X.X.X.X zadaná pre tento sieťový adaptér je už priradená inému ethernetovému adaptéru vmxnet3. Ak sú obidvom adaptérom pridelené rovnaké adresy a oba adaptéry sa stanú aktívnymi, bude ich môcť používať iba jeden z nich. To môže viesť k poruchám systému. Do zoznamu IP adries v okne rozšírených nastavení zadajte inú adresu IP pre tento adaptér?

Po nainštalovaní týchto aktualizácií stratí virtuálny server pridelenú adresu IP a pokúsi sa získať novú adresu zo servera DHCP. Tým sa vytvorí nové sieťové rozhranie vo vetve HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip \ Parameters \ Interfaces. Stará sieťová karta sa skrýva.

Tento problém sa vyskytuje iba na virtuálnych počítačoch so systémom Windows 7 / 2008R2 s virtuálnym sieťovým adaptérom, napríklad vmxnet3.

Stará IP adresa sa teda stále považuje za použiteľnú a musí sa uvoľniť..

Ak chcete chybu opraviť manuálne, musíte zo zoznamu hardvéru odstrániť skrytý sieťový adaptér. Ak chcete v Správcovi zariadení zobraziť skrytú sieťovú kartu, musíte spustiť príkazy

set devmgr_show_nonpresent_devices = 1
začnite devmgmt.msc

Vyberte položku ponuky Zobraziť -> Zobraziť skryté zariadenia. A rozviňte časť Network Adaters.

Potom musíte v Správcovi zariadení odstrániť skryté sieťové karty vmxnet3 Ethernet Adapter #x. Potom môžete novej sieťovej karte priradiť starú IP adresu.

Teraz otvorte ovládací panel sieťového pripojenia a upravte nastavenia IP nového adaptéra. Uložiť zmeny (nevyžaduje sa reštart).

Na automatické vyriešenie tohto problému spoločnosť Microsoft navrhuje použiť nasledujúci skript VBS (https://support.microsoft.com/en-us/help/3125574/convenience-rollup-update-for-windows-7-sp1-and-windows-server- 2008-r2), ktoré sa majú spustiť pred alebo po inštalácii aktualizácií.

Pred spustením skriptu sa odporúča zálohovať nasledujúcu vetvu registra: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Enum \ PCI .

Kód skriptu fixPCI.vbs

Možnosť Explicit
Const HKEY_LOCAL_MACHINE = & H80000002
Dim oReg: Set oReg = GetObject ("winmgmts: impersonationLevel = impersonate! \\. \ Root \ default: StdRegProv")
Dim oShell: Nastaviť oShell = CreateObject ("WScript.Shell")
Dim sPath, aSub, sKey, aSubToo, sKeyToo, dwValue, Výsledok, SaveResult
Dim notDeleted
NotDeleted = 0
'Získajte všetky kľúče v sPath
sPath = "SYSTEM \ CurrentControlSet \ Enum \ PCI"
oReg.EnumKey HKEY_LOCAL_MACHINE, sPath, aSub


„Obíďte cez každý kľúč
Pre každú sKey In aSub
'Získajte všetky podkľúče do kľúča' sKey '
oReg.EnumKey HKEY_LOCAL_MACHINE, sPath & "\" & sKey, aSubToo
Pre každý sKeyToo v aSubToo
Výsledok = oReg.DeleteKey (HKEY_LOCAL_MACHINE, sPath & "\" & sKey & "\" & sKeyToo & "\" & "\ Parametre zariadenia" & "\ SlotPersistentInfo")
'Povoliť zlyhanie, iba ak kľúč nikdy neexistoval
Ak (Výsledok = 1) Alebo (Výsledok> 2) Potom
NotDeleted = 1
SaveResult = Výsledok
Koniec, ak
ďalšie
ďalšie

Ak (NotDeleted> 0) Then
Wscript.Echo "Jeden alebo viac kľúčov SlotPersistentInfo stále existuje v HKLM \ System \ CurrentControlSet \ Enum \ PCI \\ Device Parameters. Prosím, odstráňte ich manuálne. Výsledok =" & Výsledok
Koniec, ak

Vo všeobecnosti možno podobné akcie vykonať pomocou jedného príkazu PowerShell:
Get-ChildItem “HKLM: // System / CurrentControlSet / Enum / PCI / * / * / DeviceParameters / SlotPersistentInfo” | Remove-Item

Pomocou PowerCLI môžete nájsť všetky virtuálne počítače s adaptérom Vmxnet3..
Ak to chcete urobiť, pripojte sa k serveru vSphere.
Connect-VIServer -Server vsphere65 -User corp \ username

Teraz uvádzame zoznam všetkých virtuálnych počítačov s OS a použitých verzií virtuálnych sieťových kariet.

PowerCLI C: \> Get-VM | Vyberte meno, PowerState, Guest, @ N = 'NetworkAdapter'; E = [string] :: Join (',', (Get-NetworkAdapter -Vm $ _ | Select-Object) -ExpandProperty Type))

Pre ľahšiu analýzu je možné túto tabuľku exportovať do Excelu pridaním | Exportovať-Csv C: \ PS \ vNICrep.csv -NoTypeInformation