public void ClassMembers_For_Win32_LogicalDisk() { var managementClass = new ManagementClass(new ManagementPath("Win32_LogicalDisk")); MethodDataCollection methods = managementClass.Methods; Assert.True(methods.Count > 0); foreach (MethodData method in methods) { Assert.False(string.IsNullOrWhiteSpace(method.Name)); } PropertyDataCollection properties = managementClass.Properties; Assert.True(properties.Count > 0); foreach (PropertyData property in properties) { Assert.False(string.IsNullOrWhiteSpace(property.Name)); } QualifierDataCollection qualifiers = managementClass.Qualifiers; foreach (QualifierData qualifier in qualifiers) { Assert.False(string.IsNullOrWhiteSpace(qualifier.Name)); } }
static string Serialize(MethodDataCollection methods, bool isLocal) { NativeCimMethods obj = new NativeCimMethods(); foreach (var m in methods) { obj.Add(m.Name, m.Origin, SerializeMethodProperties(m.InParameters.Properties, isLocal), SerializeMethodProperties(m.OutParameters.Properties, isLocal)); } return(NativeCimMethodsHelper.Serialize(obj)); }
public static void ToDebug(this MethodDataCollection collection) { if (collection == null || collection.Count <= 0) { return; } Console.WriteLine("Methods:"); foreach (MethodData data in collection) { ToDebug(data); } }
public static void Win32_ProcessDemo() { //ManagementObject o = new ManagementObject(); //// Specify the WMI path to which //// this object should be bound to //o.Path = new ManagementPath("Win32_Process.Name='calc.exe'"); // Get the WMI class ManagementClass processClass = new ManagementClass("Win32_Process"); processClass.Options.UseAmendedQualifiers = true; // Get the methods in the class MethodDataCollection methods = processClass.Methods; // display the method names Console.WriteLine("Method Name: "); foreach (MethodData method in methods) { if (method.Name.Equals("Create")) { Console.WriteLine(method.Name); Console.WriteLine("Description: " + method.Qualifiers["Description"].Value); Console.WriteLine(); Console.WriteLine("In-parameters: "); foreach (PropertyData i in method.InParameters.Properties) { Console.WriteLine(i.Name); } Console.WriteLine(); Console.WriteLine("Out-parameters: "); foreach (PropertyData o in method.OutParameters.Properties) { Console.WriteLine(o.Name); } Console.WriteLine(); Console.WriteLine("Qualifiers: "); foreach (QualifierData q in method.Qualifiers) { Console.WriteLine(q.Name); } Console.WriteLine(); } } }
public static void Main() { // Get the WMI class ManagementClass processClass = new ManagementClass("Win32_Process"); processClass.Options.UseAmendedQualifiers = true; // Get the methods in the class MethodDataCollection methods = processClass.Methods; // display the method names Console.WriteLine("Method Name: "); foreach (MethodData method in methods) { if (method.Name.Equals("Create")) { Console.WriteLine(method.Name); Console.WriteLine("Description: " + method.Qualifiers["Description"].Value); Console.WriteLine(); Console.WriteLine("In-parameters: "); foreach (PropertyData i in method.InParameters.Properties) { Console.WriteLine(i.Name); } Console.WriteLine(); Console.WriteLine("Out-parameters: "); foreach (PropertyData o in method.OutParameters.Properties) { Console.WriteLine(o.Name); } Console.WriteLine(); Console.WriteLine("Qualifiers: "); foreach (QualifierData q in method.Qualifiers) { Console.WriteLine(q.Name); } Console.WriteLine(); } } }
public static void Main() { // Get the WMI class ManagementPath p = new ManagementPath("Win32_Process"); // Options specify that amended qualifiers // are to be retrieved along with the class ObjectGetOptions o = new ObjectGetOptions( null, System.TimeSpan.MaxValue, true); ManagementClass c = new ManagementClass(p, o); // Get the methods in the class MethodDataCollection methods = c.Methods; // display the methods Console.WriteLine("Method Names: "); foreach (MethodData method in methods) { Console.WriteLine(method.Name); } Console.WriteLine(); // Get the properties in the class PropertyDataCollection properties = c.Properties; // display the properties Console.WriteLine("Property Names: "); foreach (PropertyData property in properties) { Console.WriteLine(property.Name); } Console.WriteLine(); // Get the Qualifiers in the class QualifierDataCollection qualifiers = c.Qualifiers; // display the qualifiers Console.WriteLine("Qualifier Names: "); foreach (QualifierData qualifier in qualifiers) { Console.WriteLine(qualifier.Name); } }
public static void Main() { // Get the WMI class ManagementScope s = new ManagementScope("\\\\MyBox\\root\\cimv2"); ManagementPath p = new ManagementPath("Win32_Environment"); ObjectGetOptions o = new ObjectGetOptions( null, System.TimeSpan.MaxValue, true); ManagementClass c = new ManagementClass(s, p, o); // Get the methods in the class MethodDataCollection methods = c.Methods; // display the methods Console.WriteLine("Method Names: "); foreach (MethodData method in methods) { Console.WriteLine(method.Name); } Console.WriteLine(); // Get the properties in the class PropertyDataCollection properties = c.Properties; // display the properties Console.WriteLine("Property Names: "); foreach (PropertyData property in properties) { Console.WriteLine(property.Name); } Console.WriteLine(); // Get the Qualifiers in the class QualifierDataCollection qualifiers = c.Qualifiers; // display the qualifiers Console.WriteLine("Qualifier Names: "); foreach (QualifierData qualifier in qualifiers) { Console.WriteLine(qualifier.Name); } }
private static void PopulateMethodTable(ManagementClass mgmtClass, CacheTable methodTable, bool staticBinding) { MethodDataCollection methods = mgmtClass.Methods; if (methods != null) { ManagementPath classPath = mgmtClass.ClassPath; foreach (MethodData data in methods) { if (IsStaticMethod(data) == staticBinding) { string name = data.Name; WMIMethodCacheEntry member = new WMIMethodCacheEntry(name, classPath.Path, data); methodTable.Add(name, member); } } } }
static void Example() { // Get the WMI class ManagementClass processClass = new ManagementClass(); processClass.Path = new ManagementPath("Win32_Process"); // Get the methods in the class MethodDataCollection methods = processClass.Methods; // display the methods Console.WriteLine("Method Names: "); foreach (MethodData method in methods) { Console.WriteLine(method.Name); } Console.WriteLine(); // Get the properties in the class PropertyDataCollection properties = processClass.Properties; // display the properties Console.WriteLine("Property Names: "); foreach (PropertyData property in properties) { Console.Write("{0} = {1}", property.Name); } Console.WriteLine(); // Get the Qualifiers in the class QualifierDataCollection qualifiers = processClass.Qualifiers; // display the qualifiers Console.WriteLine("Qualifier Names: "); foreach (QualifierData qualifier in qualifiers) { Console.WriteLine(qualifier.Name); } }
public static void Main() { // Get the WMI class ManagementClass c = new ManagementClass("Win32_LogicalDisk"); // Get the methods in the class MethodDataCollection methods = c.Methods; // display the methods Console.WriteLine("Method Names: "); foreach (MethodData method in methods) { Console.WriteLine(method.Name); } Console.WriteLine(); // Get the properties in the class PropertyDataCollection properties = c.Properties; // display the properties Console.WriteLine("Property Names: "); foreach (PropertyData property in properties) { Console.WriteLine(property.Name); } Console.WriteLine(); // Get the Qualifiers in the class QualifierDataCollection qualifiers = c.Qualifiers; // display the qualifiers Console.WriteLine("Qualifier Names: "); foreach (QualifierData qualifier in qualifiers) { Console.WriteLine(qualifier.Name); } }
public static void VMI_Invorke2() { // Get the object on which the method will be invoked ManagementClass processClass = new ManagementClass("Win32_Process"); processClass.Options.UseAmendedQualifiers = true; // Get an input parameters object for this method ManagementBaseObject inParams = processClass.GetMethodParameters("Create"); PropertyDataCollection paramsInfo = inParams.Properties; foreach (PropertyData item in paramsInfo) { Console.WriteLine(item.Name + " " + item.Value); } // Fill in input parameter values inParams["CommandLine"] = "notepad.exe"; inParams["CurrentDirectory"] = Environment.CurrentDirectory; // Execute the method MethodDataCollection mcc = processClass.Methods; foreach (MethodData method in mcc) { if (method.Name == "Create") { Console.WriteLine(method.Name); Console.WriteLine("Description: " + method.Qualifiers["Description"].Value); } } ManagementBaseObject outParams = processClass.InvokeMethod("Create", inParams, null); // Display results // Note: The return code of the method is // provided in the "returnValue" property // of the outParams object Console.WriteLine("Creation of calculator process returned: " + outParams["returnValue"]); Console.WriteLine("Process ID: " + outParams["processId"]); }
public static List <List <String> > getMethods(string pClass) { List <List <String> > result = new List <List <String> >(); ManagementClass processClass = new ManagementClass(pClass); processClass.Options.UseAmendedQualifiers = true; MethodDataCollection methods = processClass.Methods; foreach (MethodData method in methods) { List <String> pResult = new List <string>(); pResult.Add(method.Name); pResult.Add(method.Qualifiers["Description"].Value.ToString()); String ineP = ""; String outP = ""; if (method.InParameters != null) { foreach (PropertyData parameter in method.InParameters.Properties) { ineP += "[" + parameter.Type.ToString() + "] " + parameter.Name + "; "; } } if (method.OutParameters != null) { foreach (PropertyData parameter in method.OutParameters.Properties) { outP += "[" + parameter.Type.ToString() + "] " + parameter.Name + "; "; } } pResult.Add(ineP); pResult.Add(outP); result.Add(pResult); } return(result); }
private static void PopulateMethodTable( ManagementClass mgmtClass, CacheTable methodTable, bool staticBinding) { MethodDataCollection methods = mgmtClass.Methods; if (methods == null) { return; } ManagementPath classPath = mgmtClass.ClassPath; foreach (MethodData methodData in methods) { if (BaseWMIAdapter.IsStaticMethod(methodData) == staticBinding) { string name = methodData.Name; BaseWMIAdapter.WMIMethodCacheEntry methodCacheEntry = new BaseWMIAdapter.WMIMethodCacheEntry(name, classPath.Path, methodData); methodTable.Add(name, (object)methodCacheEntry); } } }
public static void VMI_Invorke1() { // Get the object on which the // method will be invoked ManagementClass processClass = new ManagementClass("Win32_Process"); MethodDataCollection methods = processClass.Methods; foreach (MethodData item in methods) { Console.WriteLine(item.Name + " " + item.InParameters + " " + item.OutParameters); } // Create an array containing all // arguments for the method object[] methodArgs = { "notepad.exe", null, null, 0 }; //Execute the method object result = processClass.InvokeMethod("Create", methodArgs); //Display results Console.WriteLine("Creation of process returned: " + result); Console.WriteLine("Process id: " + methodArgs[3]); }
/// <summary> /// Populates methods of a ManagementClass in a CacheTable /// </summary> /// <param name="mgmtClass">Class to get the method info from.</param> /// <param name="methodTable">Cachetable to update.</param> /// <param name="staticBinding">controls what methods are adapted.</param> /// <exception cref="UnauthorizedAccessException"></exception> /// <exception cref="ManagementException"></exception> private static void PopulateMethodTable(ManagementClass mgmtClass, CacheTable methodTable, bool staticBinding) { Dbg.Assert(null != mgmtClass, "ManagementClass cannot be null in this method"); MethodDataCollection mgmtMethods = mgmtClass.Methods; if (null != mgmtMethods) { ManagementPath classPath = mgmtClass.ClassPath; // new operation will never fail foreach (MethodData mdata in mgmtMethods) { // is method static bool isStatic = IsStaticMethod(mdata); if (isStatic == staticBinding) { // a method is added depending on // whether staticBinding is requested or not. string methodName = mdata.Name; WMIMethodCacheEntry mCache = new WMIMethodCacheEntry(methodName, classPath.Path, mdata); methodTable.Add(methodName, mCache); } } } }
public static void _03_Mass_Storage() { Console.WriteLine("Win32_Printer.........................................."); ManagementClass mc = new ManagementClass("Win32_Printer"); mc.Options.UseAmendedQualifiers = true; MethodDataCollection methods = mc.Methods; foreach (MethodData item in methods) { Console.WriteLine(item.Name + "-------------------------" + item.InParameters); } ManagementBaseObject inParams = mc.GetMethodParameters("PrintTestPage"); inParams = mc.GetMethodParameters("PrintTestPage"); //PropertyDataCollection paramsInfo = inParams.Properties; //foreach (PropertyData item in paramsInfo) //{ // Console.WriteLine(item.Name + " " + item.Value); //} //object obj = Activator.CreateInstance("Win32_Printer", null); //mc.InvokeMethod("Win32_Printer", null); //ManagementObjectCollection moc = mc.GetInstances(); //foreach (ManagementObject mo in moc) //{ // PropertyDataCollection colletion = mo.Properties; // foreach (PropertyData item in colletion) // { // Console.WriteLine($"{item.Name} {item.Value}"); // } //} }
public static void LogicalDiskSample() { //// Управляющий класс ManagementClass diskClass = new ManagementClass("Win32_LogicalDisk"); // true - если объекты, возвращенные от WMI, должны содержать // измененные сведения; diskClass.Options.UseAmendedQualifiers = true; //------- описание класса // Коллекция объектов QualifierData QualifierDataCollection qualifierCollection = diskClass.Qualifiers; // QualifierData - содержит сведения относительно WMI описателя foreach (QualifierData q in qualifierCollection) { Console.WriteLine(q.Name + " = " + q.Value); } Console.WriteLine(new string('-', 45)); //------------------------------------------------ //------- Доступные методы класса Console.WriteLine("\n Доступные методы класса... "); MethodDataCollection diskMethods = diskClass.Methods; foreach (MethodData method in diskMethods) { Console.WriteLine("Метод = " + method.Name); } Console.WriteLine(new string('-', 45)); //------------------------------------------------ // то же, но через нумератор //MethodDataCollection.MethodDataEnumerator diskEnumerator = // diskClass.Methods.GetEnumerator(); //while (diskEnumerator.MoveNext()) //{ // MethodData method = diskEnumerator.Current; // Console.WriteLine("Method = " + method.Name); //} //Console.WriteLine(new string('-', 45)); //------------------------------------------------- //------- Свойства класса ManagementObject diskС = new ManagementObject("Win32_LogicalDisk.DeviceID='C:'"); PropertyDataCollection.PropertyDataEnumerator propertyEnumerator = diskС.Properties.GetEnumerator(); while (propertyEnumerator.MoveNext()) { PropertyData p = (PropertyData)propertyEnumerator.Current; Console.WriteLine("Найденое свойство: " + p.Name); } Console.WriteLine(new string('-', 45)); //------------------------------------------------ //------- Экземпляры класса Console.WriteLine("\n Теперь отыщем все диски... "); // Получим коллекцию всех экземпляров класса ManagementObjectCollection disks = diskClass.GetInstances(); // Перечислитель коллекции ManagementObjectCollection.ManagementObjectEnumerator disksEnumerator = disks.GetEnumerator(); while (disksEnumerator.MoveNext()) { ManagementObject disk = (ManagementObject)disksEnumerator.Current; Console.WriteLine("Найден диск: " + disk["deviceid"]); Console.WriteLine("Размер: " + disk["Size"]); } Console.WriteLine(new string('-', 45)); //------------------------------------------------ // Получение сведений о методе класса MethodData m = diskClass.Methods["SetPowerState"]; Console.WriteLine("Name: " + m.Name); Console.WriteLine("Origin: " + m.Origin); // аргументы ManagementBaseObject inParams = m.InParameters; foreach (PropertyData pdata in inParams.Properties) { Console.WriteLine(); Console.WriteLine("InParam_Name: " + pdata.Name); Console.WriteLine("InParam_Type: " + pdata.Type); } // Возвращаемые значения ManagementBaseObject outParams = m.OutParameters; foreach (PropertyData pdata in outParams.Properties) { Console.WriteLine(); Console.WriteLine("OutParam_Name: " + pdata.Name); Console.WriteLine("OutParam_Type: " + pdata.Type); } }