select * from Win32_OperatingSystem抛出异常

时间:2014-01-12 17:46:13

标签: c# wpf system.management

我有一个WPF应用程序,我正在使用以下内容来获取我的PC的操作系统详细信息:

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

当我走进这一行时:

win32OperatingSystem.Get()中的ManagementObject obj

我得到以下异常:

无效查询。

这里有什么不对?

2 个答案:

答案 0 :(得分:1)

WMI类有一个命名空间,你没有指定一个。使用WMI Code Creator来验证您的查询,它会为您生成C#代码,您可以直接从该工具运行它来检查结果。

答案 1 :(得分:0)

我建议使用EnvironmentOperatingSystem类(而不是ManagementObjectSearcher)的属性来获取这些详细信息。

string _operatingSystem = Environment.OSVersion.VersionString;