Выберите * из исключения исключения Win32_OperatingSystem

У меня есть приложение WPF, и я использую следующее для получения сведений об ОС моего ПК:

using (ManagementObjectSearcher win32OperatingSystem = new ManagementObjectSearcher("select * from Win32_OperatingSystem"))
{
     foreach (ManagementObject obj in win32OperatingSystem.Get())
     {
         _operatingSystem = obj["Caption"].ToString();
         _osArchitecture = obj["OSArchitecture"].ToString();
         break;
     }
}

Когда я вхожу в эту строку:

ManagementObject obj в win32OperatingSystem.Get())

Я получаю следующее исключение:

Неверный запрос.

Что здесь не так??

2 ответа

У классов WMI есть пространство имен, вы его не указали. Используйте WMI Code Creator, чтобы получить правильные запросы, он генерирует код C# для вас, и вы можете запустить его прямо из инструмента, чтобы проверить результаты.

Я бы предложил использовать свойства Environment а также OperatingSystem класс (вместо ManagementObjectSearcher), чтобы получить эти детали.

string _operatingSystem = Environment.OSVersion.VersionString;
Другие вопросы по тегам