L'infrastruttura WMI (Windows Management Instrumentation) permette, tra le altre cose, una volta definito lo schema di una classe, di instanziarne a runtime delle istanze. Tale operazione può essere effettuata tramite script wsh oppure sfruttando le classi presenti nei namespace System.Management e System.Management.Instrumentation.
Anzitutto è necessario istanziare un oggetto della classe ManagementPath, che identifica la classe da considerare:
ManagementPath pathObj = new ManagementPath();
pathObj.ClassName = "Win32_IP4RouteTable";
pathObj.NamespacePath = "root\\CimV2";
In questo caso si tratta di una route ip.
Deve essere poi creata l'istanza di classe:
ManagementScope mgmtScope = new ManagementScope(pathObj);
ManagementClass routeTableClass = new ManagementClass(mgmtScope, pathObj, null);
ManagementObject routeTableObj = routeTableClass.CreateInstance();
Sulla quale viene effettuata l'impostazione delle proprietà:
routeTableObj.SetPropertyValue("<prop_name>", <prop_value>);
...
Ed infine l'istanza viene salvata:
PutOptions po = new PutOptions();
po.Type = PutType.UpdateOrCreate;
routeTableObj.Put(po);
Luc.