我正在尝试通过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
都不会返回任何内容。我期待能够询问传感器。 有人可以向我展示基础知识或将我链接到教程吗?
答案 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