EnableStatic funktioniert manchmal nicht?
-
Hallo,
ich habe hier ein Problem aus dem ich einfach nicht schlau werde:
Da wir in der Firma viele Rechner neu einrichten müssen, bin ich gerade drüber, ein Tool zu schreiben, mit dem man unter anderem auch die IP-Adresse setzen kann.
Auf meinem Entwicklungs-Rechner funktioniert das auch soweit (Intel Pro/100 S NIC) nur auf den Rechnern auf denen es funktionieren soll (mit Broadcom NIC), gehts nicht! Selbst als ich auf einem dieser Rechner VS2003 installiert habe und das mal ganz genau untersucht habe, konnte ich das Problem nicht finden.Der Quelltext:
public static uint set_ip(string ip_address, string subnet, string description)
{
ManagementBaseObject inPar = null;
ManagementBaseObject outPar = null;
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc= mc.GetInstances();
foreach(ManagementObject mo in moc)
{
if((!(bool) mo["IPEnabled"]) && mo["Description"].ToString() != description)
continue;
inPar = mo.GetMethodParameters("EnableStatic");
inPar["IPAddress"] = new string[]{ ip_address };
inPar["SubnetMask"] = new string[] { subnet };
outPar = mo.InvokeMethod("EnableStatic", inPar, null);
break;
}
return (uint)outPar.Properties["ReturnValue"].Value;
}Die IP-Adresse wird auf dem Rechner zwar gesetzt, aber nicht statisch, nach dem nächsten Neustart also wieder weg! Das passiert auf dem Rechner mit der Intel Pro/100 S nicht und ich weiß nicht wieso!
Hoffe, mir kann einer weiterhelfen...
Vielen Dank