Получить тип данных CIM из свойств в классах WMI с помощью C#

Итак, мне удалось написать класс, который позволяет мне получать доступ к WMI и получать информацию о классах, включая их методы, и все свойства классов и их последующих методов. Я не могу найти что-либо в C# в классах System.Management или System.Management.Instrumentation, которое позволяет мне получать доступ к типам данных CIM свойств в WMI, либо в основном классе, либо в методах. Кто-нибудь знает, как я могу получить эти типы данных?

1 ответ

Решение

Чтобы получить метаданные (например, cimtype, value, name) классов WMI, вы можете использовать PropertyData учебный класс.

Попробуйте этот пример кода из MSDN

using System;
using System.Management;

public class Sample 
{    
    public static void Main() 
    {

        // Get the WMI class
        ManagementClass osClass = 
            new ManagementClass("Win32_OperatingSystem");

        osClass.Options.UseAmendedQualifiers = true;

        // Get the Properties in the class
        PropertyDataCollection properties =
            osClass.Properties;

        // display the Property names
        Console.WriteLine("Property Name: ");
        foreach (PropertyData property in properties)
        {
            Console.WriteLine(
                "---------------------------------------");
            Console.WriteLine(property.Name);
            Console.WriteLine("Description: " + property.Qualifiers["Description"].Value);
            Console.WriteLine();

            Console.WriteLine("Type: ");               
            Console.WriteLine(property.Type);

            Console.WriteLine();

            Console.WriteLine("Qualifiers: ");
            foreach(QualifierData q in 
                property.Qualifiers)
            {
                Console.WriteLine(q.Name);
            }
            Console.WriteLine();

            foreach (ManagementObject c in osClass.GetInstances())
            {
                Console.WriteLine("Value: ");
                Console.WriteLine(c.Properties[property.Name.ToString()].Value);
                Console.WriteLine();
            }
        }    
    }
Другие вопросы по тегам