wmi设置ip 更新不成功
public static void ChangeTo(string[] ipAddr, string[] subnetList, string[] gateway, string[] dns)
{
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection nics = mc.GetInstances();
ManagementBaseObject iObj = null;
ManagementBaseObject oObj = null;
foreach (ManagementObject mo in nics)
{
if (!(bool)mo["IPEnabled"]) continue;
//IP
iObj = mo.GetMethodParameters("EnableStatic");
iObj["IPAddress"] = ipAddr;
iObj["SubnetMask"] = subnetList;
ManagementOperationObserver observer = new ManagementOperationObserver();
observer.ObjectPut += (s, e) => { Console.WriteLine("正在更新"); };
observer.Completed += (s, e) => { Console.WriteLine("更新完成"); };
mo.InvokeMethod(observer, "EnableStatic", iObj, null);
//网关
iObj = mo.GetMethodParameters("SetGateways");
iObj["DefaultIPGateway"] = gateway;
oObj = mo.InvokeMethod("SetGateways", iObj, null);
////设置DNS
iObj = mo.GetMethodParameters("SetDNSServerSearchOrder");
iObj["DNSServerSearchOrder"] = dns;
oObj = mo.InvokeMethod("SetDNSServerSearchOrder", iObj, null);
}
}
百度的方法,我试了 没用,没有变化啊