I'm having trouble getting the CPU temperature using PowerShell. I've tried using both Get-Cim and Get-Wmi, but both commands return an error indicating that they are not supported. Specifically, I'm trying to access the MSAcpi_ThermalZoneTemperature class in the WMI namespace and keep running into these issues. Has anyone found a reliable way to retrieve this information?
4 Answers
After some digging, I found out that the MSAcpi_ThermalZoneTemperature class might only give you generic zone readings instead of individual core temperatures. Some laptops just return a static value, especially if they use proprietary drivers for thermal control. Also, WMI isn't great for frequent polling; it can spike your CPU usage if you try to check temperatures too often! I ended up using LibreHardwareMonitor, which felt more reliable for reading temps.
It sounds like your hardware doesn't support those commands. That's usually the case with certain setups.
I had success with this command: `Get-CimInstance -Namespace "rootWMI" -ClassName "MSAcpi_ThermalZoneTemperature"`. Make sure you're running PowerShell as an administrator, as running it normally can cause access denied errors.
I think your OEM might be preventing access to that information. Some manufacturers block certain hardware calls.

I can't manage to get any readings at all, still stuck with the Not Supported message.