Как читать ManagementObject Collection в WMI, используя C # - PullRequest
21 голосов
/ 19 августа 2010

Я нашел код в сети и пытался получить больше информации о 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();
}

Ответы [ 3 ]

38 голосов
/ 21 августа 2010

Посмотрите на ваш запрос WMI:

SELECT * FROM Win32_OperatingSystem

Это означает «получить все экземпляры класса Win32_OperatingSystem и включить все свойства класса». Это подсказка, что получившиеся ManagementObject являются обертками над классом WMI Win32_OperatingSystem. См. описание класса , чтобы узнать, какие свойства он имеет, что они значат, и решить, какие свойства вам действительно нужно использовать в своем коде.

Если вам нужно перебрать все доступные свойства без жесткого кодирования их имен, используйте свойство Properties, например , предложенный Джорджи Вот пример:

foreach (ManagementObject mo in osDetailsCollection)
{
    foreach (PropertyData prop in mo.Properties)
    {
        Console.WriteLine("{0}: {1}", prop.Name, prop.Value);
    }
}
15 голосов
/ 19 августа 2010

Сначала используйте документацию , чтобы вы знали, что означает свойство. Поэкспериментируйте с инструментом WMI Code Creator .

3 голосов
/ 19 августа 2010

Вы можете перебрать все свойства, используя Свойства Свойство

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...