Я нашел код в сети и пытался получить больше информации о mo [] .
Я пытаюсь получить всю информацию содержится в ManagementObjectCollection.
Поскольку параметр в mo ищет строковое значение, которое я не знаю, Как я могу получить все значения, не зная значения его параметров. Или, если я хочу получить все значения индексатора, относящиеся к mo, в ManagementObjectCollection
ManagementObjectSearcher objOSDetails = new ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem");
ManagementObjectCollection osDetailsCollection = objOSDetails.Get();
foreach( ManagementObject mo in osDetailsCollection )
{
_osName = mo["name"].ToString();// what other fields are there other than name
_osVesion = mo["version"].ToString();
_loginName = mo["csname"].ToString();
}
Взгляните на свой запрос WMI:
SELECT * FROM Win32_OperatingSystem
Он означает «получить все экземпляры класса Win32_OperatingSystem
и включить все свойства класса». Это признак того, что результирующие объекты ManagementObject
являются оболочками над классом WMI Win32_OperatingSystem
. См. Описание класса , чтобы узнать, какие свойства он имеет, что они означают, и решить, какие из них вам действительно нужно использовать в своем коде.
Если вам нужно перебрать все доступные свойства без жесткого кодирования их имен, используйте свойство Properties
, например, как Giorgi предложил . Вот пример:
foreach (ManagementObject mo in osDetailsCollection)
{
foreach (PropertyData prop in mo.Properties)
{
Console.WriteLine("{0}: {1}", prop.Name, prop.Value);
}
}
Вы можете перебирать все свойства, используя Свойство свойств
Сначала используйте документацию, чтобы знать, что означает то или иное свойство. Поэкспериментируйте с инструментом WMI Code Creator.