Example #1
0
        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));
            }
        }
Example #2
0
        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));
        }
Example #3
0
        public static void ToDebug(this MethodDataCollection collection)
        {
            if (collection == null || collection.Count <= 0)
            {
                return;
            }

            Console.WriteLine("Methods:");
            foreach (MethodData data in collection)
            {
                ToDebug(data);
            }
        }
Example #4
0
        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();
            }
        }
    }
Example #6
0
    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);
        }
    }
Example #7
0
    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);
        }
    }
Example #8
0
        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);
                    }
                }
            }
        }
Example #9
0
        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);
            }
        }
Example #10
0
    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);
        }
    }
Example #11
0
        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"]);
        }
Example #12
0
        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);
        }
Example #13
0
        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);
                }
            }
        }
Example #14
0
        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]);
        }
Example #15
0
        /// <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);
                    }
                }
            }
        }
Example #16
0
        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}");
            //    }
            //}
        }
Example #17
0
        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);
            }
        }