如何使用WMI未实现的CIM方法?

时间:2018-06-21 15:19:36

标签: c# wmi cim

我目前正在从事的项目涉及很多与硬件有关的事情。因此,我使用了很多WMI相关的代码。我在几个MSDN页面(例如Win32_Fan)上注意到,有些CIM方法尚未实现,因此无法使用。 例如,我要使用CIM_Fan方法SetSpeed。 MSDN page of this method说:

  

WMI当前未实现此方法。要使用此方法,必须在自己的提供程序中实现。

     

本文档摘自DMTF发布的CIM类描述。 Microsoft可能已进行了更改,以纠正一些小错误,符合Microsoft SDK文档标准或提供更多信息。

我对此信息有很多疑问:

  • 首先,我认为我不太了解它们的含义。 说我必须在自己的提供程序中实现该方法。我需要 实际修改使我的PC运行的脚本?

  • 其次,我不了解如何在语法上使用CIM方法。

如果有人对这两个问题的答案有任何想法,将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可以使用:Open Hardware Monitor公开您肯定需要的所有类。它还提供了很多现成的信息。

对于WMI,您还可以使用ORMi库。使用极其简单,例如,它带来有关处理器的信息:

var processors = helper.Query("SELECT * FROM Win32_Processor");

或带有类型对象的

[WMIClass("Win32_Processor")]
public class Processor
{
    [WMIIgnore]
    public string NonRequiredProp { get; set; }

    public string Name { get; set; }

    [WMIProperty("NumberOfCores")]
    public int Cores { get; set; }

    public string Description { get; set; }
}

然后查询:

List<Processor> procesors = helper.Query<Processor>().ToList();