Установите DNS для «Получить автоматически» программно - PullRequest
3 голосов
/ 11 мая 2011

Используя C # в .NET, как настроить DNS-серверы на «Получить автоматически»? Я могу установить IP-адреса на желаемые значения, как это.

ManagementClass mClass = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection mObjCol = mClass.GetInstances();
foreach (ManagementObject mObj in mObjCol)
{
  if ((bool)mObj["IPEnabled"])
  {
     ManagementBaseObject mboDNS = mObj.GetMethodParameters("SetDNSServerSearchOrder");
     if (mboDNS != null)
     {
        //Assume X.X.X.X and X.X.X.X are the IPs.
        string[] sIPs = { "X.X.X.X", "X.X.X.X" };
        mboDNS["DNSServerSearchOrder"] = sIPs;
        mObj.InvokeMethod("SetDNSServerSearchOrder", mboDNS, null);
     }
  }
}

Я попытался установить оба IP-адреса на ноль, например sIps = { null, null };, но в итоге настройки не изменились.

1 Ответ

7 голосов
/ 11 мая 2011

Попробуйте установить для DNSServerSearchOrder значение null вместо использования массива нулевых строк.

ManagementClass mClass = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection mObjCol = mClass.GetInstances();
foreach (ManagementObject mObj in mObjCol)
{
  if ((bool)mObj["IPEnabled"])
  {
     ManagementBaseObject mboDNS = mObj.GetMethodParameters("SetDNSServerSearchOrder");
     if (mboDNS != null)
     {
        mboDNS["DNSServerSearchOrder"] = null;
        mObj.InvokeMethod("SetDNSServerSearchOrder", mboDNS, null);
     }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...