Установка IP-адреса сетевого интерфейса, который не подключен к сети (IPEnabled не соответствует действительности) / кабель не подключен? - PullRequest
2 голосов
/ 11 августа 2010

Можно ли установить IP-адрес (или что-либо еще) для сетевого интерфейса, который в данный момент отключен?

Я использую WMI, что означает ManagementObjectCollection и Invoke методы.Но, похоже, нет способа настроить IP в c # на сетевом адаптере, который в данный момент не работает - кабель не подключен?

Нет сообщения об ошибке.Например, я устанавливаю IP вручную для интерфейса Wi-Fi, и с помощью WMI я хочу установить его на DHCP.

    ManagementObjectSearcher query = new ManagementObjectSearcher("Select * from Win32_NetworkAdapterConfiguration where SettingID=\"" + selectedProfile.AdapterGUID + "\"");
    ManagementObjectCollection moc = query.Get();

    foreach (ManagementObject mo in moc)
    {
        ManagementBaseObject newDHCPIP = mo.GetMethodParameters("EnableDHCP");
        mo.InvokeMethod("EnableDHCP", newDHCPIP, null);
        ManagementBaseObject newDHCPDNS = mo.GetMethodParameters("SetDNSServerSearchOrder");
        newDHCPDNS["DNSServerSearchOrder"] = null;
        mo.InvokeMethod("SetDNSServerSearchOrder", newDHCPDNS, null);
        ManagementBaseObject newDHCPRenew = mo.GetMethodParameters("RenewDHCPLease");
        mo.InvokeMethod("RenewDHCPLease", newDHCPRenew, null);
        mo.Dispose();
    }

Я на 100% уверен, что выбрал правильный сетевой адаптер.Но когда я установил его и посмотрел на конфигурацию (по сети Windows и центру обмена, свойства адаптера), статический IP-адрес все еще остается.

Он работает только после подключения к сети Wi-Fi, затем я смотрю на конфигурациюа есть DHCP

1 Ответ

1 голос
/ 11 августа 2010

Я думаю, что лучшим решением будет использование netsh, потому что WMI не работает правильно.

...