Как выбрать одно поле из класса win32 WMI?
Классы Win32 в ОС Windows существуют группы Оборудование, Программное обеспечение или ОС занятия (наряду с другими), который содержит объекты и атрибуты в зависимости от выбранного класса. Моя проблема заключается в том, что Win32_CDROMDrive это имеет много свойств подключенного нечетного устройства, таких как
Caption
, Description
, Drive
, Id
, Name
, прием.). Проблема (в частности) заключается в собственности SerialNumber
который возвращает идентификатор накопителя по изготовлению. Он возвращает значение null в случае и возвращает фактическое значение в другом случае!Я просто хочу получить
SerialNumber
исключительно так SELECT SerialNumber FROM Win32_CDROMDrive
без извлечения целых значений и выбора между ними.Что я уже пробовал:
Вот как можно перечислить все свойства
Win32_CDROMDrive
(SerialNumber
существуют с фактическим значением).var searcher = new ManagementObjectSearcher("SELECT * FROM Win32_CDROMDrive"); foreach (ManagementObject mo in searcher.Get()) foreach (PropertyData pd in mo.Properties) Console.WriteLine("{0}:- {1}", pd.Name, pd.Value);Чтобы получить одно значение свойства (например
Name
) из того же класса, на который был изменен запрос (и он вернет значение Name
).var searcher = new ManagementObjectSearcher("SELECT Name FROM Win32_CDROMDrive");Чтобы получить значение
SerialNumber
свойство, на которое изменяется запрос (и вот в чем проблема, оно вернет null)var searcher = new ManagementObjectSearcher("SELECT SerialNumber FROM Win32_CDROMDrive");Более странное поведение возникает, когда я пытаюсь получить значение свойства с помощью другого случайного свойства, подобного этому (оно возвращает фактические значения)
var searcher = new ManagementObjectSearcher("SELECT SerialNumber, SCSIPort FROM Win32_CDROMDrive");А если с собственность с различными начальными (он будет возвращать null для
SerialNumber
и фактическое значение для Name
)var searcher = new ManagementObjectSearcher("SELECT SerialNumber, Name FROM Win32_CDROMDrive");Опять же может ли
SerialNumber
быть извлеченным исключительно так SELECT SerialNumber FROM Win32_CDROMDrive
без извлечения целых значений и выбора между ними.