Masalah dengan adapter jaringan vmxnet3 pada Windows (2008 R2 dan 7) setelah menginstal KB4088875 dan KB4088878

Pembaruan keamanan Microsoft kumulatif baru - KB4088875 (Rollup Kualitas Bulanan) dan KB4088878 (Pembaruan Keamanan Saja) untuk Windows 7 SP1 dan Windows Server 2008 R2, dirilis 13 Maret 2018, menyebabkan masalah serius dengan adaptor jaringan mesin virtual VMware. Pembaruan ini mengarah pada pembentukan kembali antarmuka jaringan vNIC dan reset pengaturan jaringan OS tamu, sebagai hasilnya, setelah pembaruan diinstal, mesin virtual kehilangan alamat IP statis yang ditentukan dan menjadi tidak tersedia melalui jaringan.

Ini terjadi karena fakta bahwa kartu jaringan aktif baru ditambahkan ke sistem, dan adaptor jaringan lama menjadi tersembunyi dan tidak aktif. Kartu jaringan baru dikonfigurasikan untuk secara dinamis mendapatkan alamat IP dari server DHCP. Jika Anda mencoba secara manual mengatur alamat IP lama untuk kartu jaringan baru, kesalahan muncul:

Alamat IP X.X.X.X yang Anda masukkan untuk adaptor jaringan ini sudah ditetapkan ke adaptor lain (vmxnet3 Ethernet adapter) yang tidak lagi ada di komputer. Jika alamat yang sama ditetapkan untuk kedua adaptor dan mereka menjadi aktif, hanya satu dari mereka yang akan menggunakan alamat ini. Ini dapat mengakibatkan konfigurasi sistem yang salah. Apakah Anda ingin memasukkan alamat IP yang berbeda untuk adaptor ini dalam daftar alamat IP di kotak dialog lanjutan?

Alamat IP X.X.X.X yang ditentukan untuk adaptor jaringan ini sudah ditetapkan ke adaptor Ethernet vmxnet3 lain. Jika kedua adapter diberikan alamat yang sama dan kedua adapter menjadi aktif, maka hanya satu dari mereka yang dapat menggunakannya. Ini dapat menyebabkan kerusakan sistem. Masukkan alamat IP lain untuk adaptor ini dalam daftar alamat IP di jendela pengaturan lanjutan?

Setelah menginstal pembaruan ini, server virtual kehilangan alamat IP yang ditugaskan, mencoba untuk mendapatkan alamat baru dari server DHCP. Ini menciptakan antarmuka jaringan baru di cabang HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip \ Parameters \ Interfaces. Kartu jaringan lama bersembunyi.

Masalahnya hanya muncul pada mesin virtual dengan Windows 7 / 2008R2 dengan adapter jaringan virtual seperti vmxnet3.

Dengan demikian, alamat IP lama masih dianggap dapat digunakan dan perlu dibebaskan..

Untuk memperbaiki kesalahan secara manual, Anda perlu menghapus adapter jaringan yang tersembunyi di daftar perangkat keras. Untuk menampilkan kartu jaringan yang tersembunyi di manajer perangkat, Anda harus menjalankan perintah

set devmgr_show_nonpresent_devices = 1
mulai devmgmt.msc

Pilih item menu Lihat -> Tampilkan Perangkat Tersembunyi. Dan perluas bagian Network Adaters.

Setelah itu, di manajer perangkat, Anda perlu menghapus kartu jaringan yang tersembunyi vmxnet3 Ethernet Adapter #x. Setelah itu, alamat IP lama dapat ditetapkan ke kartu jaringan baru.

Sekarang buka panel kontrol koneksi jaringan dan edit pengaturan IP adaptor baru. Simpan perubahan (tidak perlu reboot).

Untuk memperbaiki masalah ini secara otomatis, Microsoft menyarankan untuk menggunakan skrip VBS berikut ini (https://support.microsoft.com/en-us/help/3125574/convenience-rollup-update-for-windows-7-sp1-and-windows-server- 2008-r2) harus dijalankan sebelum atau setelah menginstal pembaruan.

Sebelum menjalankan skrip, disarankan untuk membuat cadangan cabang registri berikut: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Enum \ PCI .

Kode skrip fixPCI.vbs

Opsi Eksplisit
Const HKEY_LOCAL_MACHINE = & H80000002
Dim oReg: Setel oReg = GetObject ("winmgmts: impersonationLevel = impersonate! \\. \ Root \ default: StdRegProv")
Redup oShell: Setel oShell = CreateObject ("WScript.Shell")
Dim sPath, aSub, sKey, aSubToo, sKeyToo, dwValue, Hasil, SaveResult
Dim notDeleted
NotDeleted = 0
'Dapatkan semua kunci dalam sPath
sPath = "SYSTEM \ CurrentControlSet \ Enum \ PCI"
oReg.EnumKey HKEY_LOCAL_MACHINE, sPath, aSub


'Ulangi setiap tombol
Untuk Setiap sKey Dalam aSub
'Dapatkan semua subkunci dalam kunci' sKey '
oReg.EnumKey HKEY_LOCAL_MACHINE, sPath & "\" & sKey, aSubToo
Untuk Setiap sKeyToo Di aSubToo
Hasil = oReg.DeleteKey (HKEY_LOCAL_MACHINE, sPath & "\" & sKey & "\" & sKeyToo & "\" & "\ Parameter Perangkat" & "\ SlotPersistentInfo")
'Izinkan kegagalan hanya jika kunci tidak pernah ada
Jika (Hasil = 1) Atau (Hasil> 2) Kemudian
NotDeleted = 1
SaveResult = Hasil
Berakhir jika
Selanjutnya
Selanjutnya

Jika (NotDeleted> 0) Kemudian
Wscript.Echo "Satu atau lebih kunci SlotPersistentInfo masih ada di bawah HKLM \ System \ CurrentControlSet \ Enum \ PCI \\ Parameter Perangkat. Silakan hapus secara manual. Hasil =" & Hasil
Berakhir jika

Secara umum, tindakan serupa dapat dilakukan menggunakan satu perintah PowerShell:
Get-ChildItem “HKLM: // System / CurrentControlSet / Enum / PCI / * / * / DeviceParameters / SlotPersistentInfo” | Hapus-Item

Anda dapat menggunakan PowerCLI untuk menemukan semua mesin virtual dengan adaptor Vmxnet3..
Untuk melakukan ini, sambungkan ke server vSphere.
Connect-VIServer -Server vsphere65 -User corp \ username

Sekarang kami akan mencantumkan semua mesin virtual dengan OS dan versi yang digunakan kartu jaringan virtual.

PowerCLI C: \> Get-VM | Pilih Nama, PowerState, Tamu, @ N = 'NetworkAdapter'; E = [string] :: Gabung (',', (Get-NetworkAdapter -Vm $ _ | Select-Object) -ExpandProperty Type))

Untuk memudahkan analisis, tabel ini dapat diekspor ke Excel dengan menambahkan | Ekspor-Csv C: \ PS \ vNICrep.csv -NoTypeInformation