windows - C # Update Network Adapter Navn delvist arbejder (WinReg godt, ipconfig dårlig)

Indlæg af Hanne Mølgaard Plasc

Problem



I betragtning af følgende funktion:


private void UpdateNetworkAdapterName(string pnpDevID, string oldAdpterName, string newAdapterName)
    {
        string guid = "";

        ObjectQuery query = new ObjectQuery("SELECT * FROM Win32\_NetworkAdapter");
        ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
        ManagementObjectCollection queryCollection = searcher.Get();

        foreach (ManagementObject m in queryCollection)
        {
            if (string.Equals(m["PNPDeviceID"].ToString(), pnpDevID))
            {
                guid = m["GUID"].ToString();
                break;
            }
        }

        RegistryKey regKey = RegistryKey.OpenRemoteBaseKey(RegistryHive.LocalMachine, Environment.MachineName, RegistryView.Registry64);
        regKey = regKey.OpenSubKey("SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\" + guid + "\Connection", true);
        regKey.SetValue("Name", newAdapterName);

        bool successful = false;
        foreach (NetworkInterface netAd in NetworkInterface.GetAllNetworkInterfaces())
        {
            if (netAd.NetworkInterfaceType == NetworkInterfaceType.Ethernet)
            {
                if (string.Equals(netAd.Name, newAdapterName))
                {
                    Console.WriteLine($"Successfully updated network adapter from {oldAdpterName} to {newAdapterName}");
                    successful = true;
                    break;
                }
            }
        }
        if (!successful)
        {
            Console.WriteLine($"Failed to updated network adapter from {oldAdpterName} to {newAdapterName}");
        }
    }


Dette har korrekt opdateret den korrekte adapter 'Navn' -data i Windows-registreringsdatabasen og det korrekte adapternavn i Netværks- og delingscenter.
Imidlertid får jeg den fejlede besked internt fra koden (ingen undtagelser kastet dog (har fjernet undtagelseshåndtering kode for læsbarhed)) og gør en ipconfig viser, at adpaternavnet ikke er blevet opdateret.


Miljøet er Windows10 (skal også fungere på Windows7), begge 64-bit arkitekturer, applikation bygget som en 32bit applikation.


Eventuelle ideer, hvad der foregår? Jeg er på et totalt tab på dette tidspunkt.


Tak på forhånd.

Bedste reference


Bare indså, at jeg har al information til bare at gøre en netsh kommando:


netsh interface set interface name='' newname=''