How to read ManagementObject Collection in WMI using C# How to read ManagementObject Collection in WMI using C# windows windows

How to read ManagementObject Collection in WMI using C#


Take a look at your WMI query:

SELECT * FROM Win32_OperatingSystem

It means "get all instances of the Win32_OperatingSystem class and include all class properties". This is a clue that the resulting ManagementObjects are wrappers over the WMI Win32_OperatingSystem class. See the class description to learn what properties it has, what they mean and to decide which ones you actually need to use in your code.

If you need to iterate through all available properties without hard-coding their names, use the Properties property like as Giorgi suggested. Here's an example:

foreach (ManagementObject mo in osDetailsCollection){    foreach (PropertyData prop in mo.Properties)    {        Console.WriteLine("{0}: {1}", prop.Name, prop.Value);    }}


Use the documentation first so you know what the property means. Experiment with the WMI Code Creator tool.


You can iterate through all properties using Properties Property