I am trying to make a simple program to change IP settings in C #. I use this code: How can you change the network settings (IP address, DNS, WINS, host name) with C # code, execute it and make your own method:
public void changerip(string adresse, string NIC) { ManagementObjectCollection objMOC = objMC.GetInstances(); foreach (ManagementObject objMO in objMOC) { if (objMO["Caption"].Equals(NIC)) { try { if (adresse != "0") { ManagementBaseObject setIP; ManagementBaseObject newIP = objMC.GetMethodParameters("EnableStatic"); newIP["IPAddress"] = new string[] { "192.168." + adresse + ".50" }; newIP["SubnetMask"] = new string[] { "255.255.255.0" }; setIP = objMO.InvokeMethod("EnableStatic", newIP, null); ManagementBaseObject setGateway; ManagementBaseObject newGateway = objMO.GetMethodParameters("SetGateways"); newGateway["DefaultIPGateway"] = new string[] { "192.168." + adresse + ".254" }; newGateway["GatewayCostMetric"] = new int[] { 1 }; setGateway = objMO.InvokeMethod("SetGateways", newGateway, null); ManagementBaseObject newDNS = objMO.GetMethodParameters("SetDNSServerSearchOrder"); newDNS["DNSServerSearchOrder"] = "192.168.1.24,192.168.1.2".Split(','); ManagementBaseObject setDNS = objMO.InvokeMethod("SetDNSServerSearchOrder", newDNS, null); } else { ManagementBaseObject newDNS = objMO.GetMethodParameters("SetDNSServerSearchOrder"); newDNS["DNSServerSearchOrder"] = null; ManagementBaseObject enableDHCP = objMO.InvokeMethod("EnableDHCP", null, null); ManagementBaseObject setDNS = objMO.InvokeMethod("SetDNSServerSearchOrder", newDNS, null);
It works great on Windows XP, but it doesn't work on Windows 7 (Starter or Pro). I do not have any exceptions and error / security messages from the OS.
Does anyone have an idea of what happened?
source share