使用powerShell访问WMI的基础知识

时间:2012-10-11 04:01:06

标签: powershell wmi

我正在尝试通过PowerShell访问Windows WMI中的一些可用数据。我认为这可能是一个简单的起点,可以在转向C之前学习基础知识。

最后,我想从Open Hardware Monitor查询(未记录的)WMI API。这是Jens在此解决方案的一部分:How to get CPU temperature?

然而,我完全迷失了。 我如何首先加载DLL然后再查询?

作为首发,我从get-wmiobject -list

中找到了这个列表
CIM_Sensor
CIM_BinarySensor
CIM_MultiStateSensor
CIM_DiscreteSensor
CIM_NumericSensor
CIM_TemperatureSensor
Win32_TemperatureProbe
CIM_Tachometer
CIM_VoltageSensor
Win32_VoltageProbe
CIM_CurrentSensor
Win32_CurrentProbe

不幸的是,在其中任何一个上运行get-wmiobject -class XX都不会返回任何内容。我期待能够询问传感器。 有人可以向我展示基础知识或将我链接到教程吗?

2 个答案:

答案 0 :(得分:2)

PowerShell v3可能会为您提供更多,当然,如果您正在寻找Server 2012或Windows 8计算机。

否则,问题已经存在于您的文本中,它们通常没有文档记录,或者记录不完整。

我运行了Get-WMIObject -Class CIM_Sensor和Win32_TemperatureProbe并获取了数据,但我也没有得到任何其他内容。

要查找可能更有用的其他内容,您可以尝试以下某些操作:

    Get-WmiObject -NameSpace 'root\wmi'
    Get-WmiObject -Class CLASSNAME | Get-Member
    (Get-WmiObject -List CLASSNAME -Amended).Qualifiers

重要的是可能会进一步了解WMI,因为Win32_类是Microsoft提供的并且通常更容易处理。我使用了很多WMI,但更多的是用于文档,检查操作系统或使其执行操作,而不是直接指向硬件,传感器等。

一些可能也有用的网站:

http://www.dmtf.org/standards/wbem

http://collaboration.opengroup.org/pegasus/

https://en.wikipedia.org/wiki/Windows_Management_Instrumentation

希望至少可以为您提供更多信息,或者让您根据所寻找的内容更多地考虑更多信息。

答案 1 :(得分:0)

有一个名为wmiexplorer的exe,它将列出所有WMI类和每个类的属性。它有一个简单的GUI,在查找所需的属性时非常有用。

它还会显示相应的查询,您也可以进行试验。当我不知道要使用哪个WMI类时,我发现它非常有用。

您可以找到更多信息here