ManagementObjectSearcher在foreach循环中迭代其对象时引发FileNotFoundExcep

本文关键字:对象 FileNotFoundExcep 迭代 foreach 循环 ManagementObjectSearcher | 更新日期: 2023-09-27 18:22:12

我试图从system.Management命名空间中获取几个类的一些系统信息,但任何使用ManagementObjectSearcherManagementObjectCollection集合项的尝试都会导致FileNotFoundException

下面我介绍一段有问题的代码:

    public static string GetProcessorID() {
        var processorID = "";
        var query = "SELECT ProcessorId FROM Win32_Processor";
        var oManagementObjectSearcher = new ManagementObjectSearcher(query);
        foreach (var oManagementObject in oManagementObjectSearcher.Get()) {
            processorID = (string)oManagementObject["ProcessorId"];
            break;
        }
        return processorID;
    }

尝试从集合中获取下一项时,在"foreach"行中引发异常。

windows xp professional sp3visual studio 2008 professional的机器上观察到了这一点。我想这可能是我的cpu的问题,它是intel双核-在其他类似环境的机器上运行相同的程序非常完美。这些机器的主要区别在于cpu。

其他参数,如MACAddress和SystemDrive提供了相同的问题,这表明它可能是软件问题(WMI?)

此处描述了非常相似的问题->http://news.softpedia.com/news/XP-SP3-Win32-Processor-Class-Labels-Intel-Core-2-Duo-CPUs-Incorectly-90201.shtml但解决方案并没有解决这个问题

有什么想法吗?提前谢谢。

Dawid

ManagementObjectSearcher在foreach循环中迭代其对象时引发FileNotFoundExcep

我知道我的答案有点晚了,但因为这是我搜索错误时在谷歌上第一次点击,我想我放了一个链接到为我解决问题的主题。

System.Management.ManagementException:找不到

基本上,你要做的是用WMI解决你的错误。

我也有同样的问题。它不会在文字上崩溃,而是在上崩溃

oManagementObjectSearcher.Get().

检查堆栈跟踪:

System.IO.FileNotFoundException - Nie można odnaleźć określonego modułu. (Wyjątek od HRESULT: 0x8007007E)
    Stack trace:
w System.Management.ThreadDispatch.Start()
   w System.Management.ManagementScope.Initialize()
   w System.Management.ManagementObjectSearcher.Initialize()
   w System.Management.ManagementObjectSearcher.Get()
[...]

当我移动到我的计算机/右键单击/manage/services/WMI配置/右键点击/properties->时,我收到消息,消息"Win32:找不到模块"出错