Hoe verwijder je spooknetwerkadapters en los je IP-conflicten op in Windows?
Het omgaan met verborgen of spooknetwerkadapters in Windows is nogal vreemd, maar het is een veelvoorkomend probleem als je hardware vervangt, P2V-migraties uitvoert of VLAN-configuraties op één netwerkkaart aanpast. Het belangrijkste probleem is dat Windows de neiging heeft om oude, losgekoppelde netwerkapparaten te bewaren die niet meer in Apparaatbeheer verschijnen, maar wel op de achtergrond actief blijven. Waarom is dit belangrijk? Omdat aan deze spookapparaten nog steeds IP-adressen kunnen zijn toegewezen. Pogingen om bijvoorbeeld je oude statische IP-adres opnieuw toe te wijzen, worden geblokkeerd met foutmeldingen zoals “Het ingevoerde IP-adres is al toegewezen aan een andere adapter.” Ontzettend frustrerend, vooral als je de netwerkconfiguratie handmatig hebt ingesteld en verwacht dat alles probleemloos werkt. Het is erg handig om te weten hoe je deze spookapparaten kunt opsporen en correct kunt verwijderen. Het is niet altijd zo simpel als opnieuw opstarten of het apparaat uitschakelen; soms heb je een paar PowerShell-opdrachten of aanpassingen in het register nodig. Deze handleiding beschrijft de essentiële stappen om die onzichtbare netwerkadapters op te sporen en te verwijderen, zodat uw nieuwe netwerkconfiguratie eindelijk het IP-adres krijgt dat het verdient, zonder fouten.
Het IP-adres is al toegewezen aan een andere netwerkadapter.
Wanneer Windows de foutmelding “adres al toegewezen” geeft of PowerShell zegt “Het object bestaat al”, komt dat meestal doordat het ‘spookapparaat’ nog steeds het IP-adres “vasthoudt”, zelfs als u denkt dat u de oude netwerkkaart hebt verwijderd. Een typisch scenario? Het migreren van een fysieke server naar een virtuele machine of het vervangen van een netwerkkaart op een hypervisor. De oude configuraties blijven achter en Windows raakt net genoeg in de war om nieuwe toewijzingen te blokkeren. In VMware bijvoorbeeld, zorgt de overstap van een E1000 naar een VMXNet3 virtuele netwerkkaart er soms niet voor dat alles wordt gereset, waardoor Windows het oude IP-adres onthoudt dat aan het verwijderde apparaat was gekoppeld. In sommige configuraties treedt dit probleem pas op na een herstart of na een netwerkreset, wat het oplossen van problemen enigszins lastig maakt. De oorzaak is dat losgekoppelde netwerkkaarten niet altijd automatisch worden verwijderd en als “niet-aanwezige” apparaten in Windows blijven staan. De oplossing? Zoek en verwijder die verborgen adapters.
Verborgen (niet-bestaande) netwerkadapters weergeven in Windows Apparaatbeheer
Om deze ‘spookadapters’ te zien, moet u de weergave van niet-aanwezige hardware inschakelen. Zo doet u dat: – Open de opdrachtprompt als beheerder (klik met de rechtermuisknop en selecteer ‘Uitvoeren als beheerder’).- Typ: set devmgr_show_nonpresent_devices=1en druk op Enter.- Start Apparaatbeheer met: devmgmt.msc. Klik nu in Apparaatbeheer op Weergave -> Verborgen apparaten weergeven. Vouw Netwerkadapters uit. U ziet nu een aantal grijsgekleurde pictogrammen; dit zijn de oude, niet-aangesloten netwerkkaarten. Klik met de rechtermuisknop op de netwerkkaart die u wilt verwijderen, vooral als deze niet meer is aangesloten of in gebruik is, en selecteer ‘ Apparaat verwijderen’. U kunt eventueel ‘Stuurprogrammasoftware voor dit apparaat verwijderen’ aanvinken als u zeker weet dat u deze niet meer nodig hebt. Deze aanpak is cruciaal, omdat Windows deze adapters vaak geregistreerd houdt, waardoor IP-wijzigingen op nieuwe apparaten worden voorkomen.
Hoe verwijder je verborgen/niet-aanwezige netwerkadapters met PowerShell en CMD?
Als u de voorkeur geeft aan de opdrachtregel, heeft PowerShell een aantal handige opdrachten om deze ‘spookapparaten’ op te sporen en te verwijderen: – Om ongebruikte of niet-aanwezige netwerkapparaten weer te geven: Get-PnpDevice -Class net | Where-Object { $_. Status -eq 'Unknown' } | Select-Object FriendlyName, InstanceId Deze opdracht toont apparaten die Windows niet herkent als aanwezig — meestal defecte netwerkkaarten of virtuele adapters die niet meer in gebruik zijn.- Om een specifiek ‘weesapparaat’ te verwijderen, gebruikt u de InstanceId van hierboven: powershell $InstanceId = “PCI\VEN_8086&DEV_10D3&SUBSYS_07D015AD&REV_00\000C29FFFF66A80700” $RemoveKey = “HKLM:\SYSTEM\CurrentControlSet\Enum\$InstanceId” Get-Item $RemoveKey | ForEach-Object { Get-ItemProperty -Path $_. PSPath } | ForEach-Object { Remove-ItemProperty -Path $RemoveKey -Name $_. PSChildName -Verbose } – Of om alle onbekende netwerkapparaten te verwijderen (wees voorzichtig!): powershell $Devs = Get-PnpDevice -Class net | Where-Object { $_. Status -eq ‘Unknown’ } foreach ($Dev in $Devs) { $InstanceId = $Dev. InstanceId $RemoveKey = “HKLM:\SYSTEM\CurrentControlSet\Enum\$InstanceId” Get-Item -Path $RemoveKey | ForEach-Object { Get-ItemProperty -Path $_. PSPath } | ForEach-Object { Remove-ItemProperty -Path $RemoveKey -Name $_. PSChildName -Verbose } } – Voor een directere aanpak kunt u apparaten verwijderen met het Windows-hulpprogramma Devcon.exe : cmd devcon findall =net devcon -r remove “@PCI\VEN_8086&DEV_10D3&SUBSYS_07D015AD&REV_00\000C29FFFF66A80700” Als alternatief kunt u op Windows 10/11 het volgende gebruiken pnputil: – Alle netwerkapparaten weergeven: pnputil /enum-devices /class net – Een apparaat verwijderen op basis van de InstanceID: pnputil /remove-device "PCI\VEN_8086&DEV_10D3&SUBSYS_07D015AD&REV_00\000C29FFFF66A80700" Vergeet daarna niet terug te gaan naar Apparaatbeheer en te klikken op ‘Scannen naar hardwarewijzigingen ‘ — hiermee wordt de lijst met apparaten van het systeem vernieuwd en worden de resterende apparaten verwijderd.—
Verwijder oude netwerkconfiguraties uit het register.
Soms bewaart Windows zelfs na het verwijderen van een apparaat nog oude IP-gegevens in de cache. Om deze volledig te wissen, moet u in het register zoeken. Open de Register-editor (druk op Ctrl +C Win + R, typ ` IPAddress` regedit) en navigeer naar: – HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces. Elke subsleutel is hier een GUID voor een netwerkinterface. Controleer de waarde van het IP-adres. Als deze nog steeds het oude IP-adres bevat, verwijdert u de hele sleutel of wist u de IP-waarden. U kunt ook kijken onder: – HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Adapters en: – HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network. Wees echter voorzichtig, want het wijzigen van registervermeldingen kan de netwerkfunctionaliteit verstoren. Maak altijd een back-up van uw register voordat u iets verwijdert. Nadat alles is opgeschoond, start u uw pc opnieuw op om er zeker van te zijn dat alle oude IP-adressen en spookapparaten zijn verwijderd. Probeer vervolgens uw nieuwe statische IP-adres opnieuw toe te wijzen.
Samenvatting
Het omgaan met spooknetwerkadapters is nogal vervelend, maar als je eenmaal doorhebt hoe je verborgen apparaten kunt weergeven en verwijderen via PowerShell of regedit, is het te doen. Meestal is het lastigste om te achterhalen welke adapters wat zijn en ervoor te zorgen dat ze verwijderd zijn zonder je huidige configuratie te verstoren. Het is ook een goed idee om na al die stappen de netwerkinstellingen van Windows te resetten. Je kunt dit doen via Instellingen -> Netwerk en internet -> Netwerk resetten. Dit helpt als netwerkadapters niet goed werken of niet correct worden weergegeven. Deze procedure lijkt misschien wat overdreven – Windows maakt het natuurlijk altijd ingewikkelder dan nodig – maar in de praktijk lost het die hardnekkige IP-conflicten en verborgen apparaten op.
Samenvatting
- Schakel de weergave van niet-aanwezige apparaten in Apparaatbeheer in.
- Identificeer en verwijder spooknetwerkadapters.
- Gebruik PowerShell of devcon om achtergebleven apparaatvermeldingen te verwijderen.
- Verwijder verouderde IP-instellingen uit het register.
- Herstart en configureer uw netwerk-IP-adressen opnieuw.
Tot slot
Ik hoop echt dat dit iemand helpt om dat IP-conflict eindelijk op te lossen. Het is best een gedoe, maar als die verborgen apparaten eenmaal weg zijn, loopt alles een stuk soepeler. Hopelijk scheelt dit degene die ermee te maken heeft een paar uur.