Public/Measure-CPUTemperature.ps1
function Measure-CPUTemperature { Param( [OpenHardwareMonitor.Hardware.Computer]$HardwareMonitor = (New-HardwareMonitor -CPUEnabled) ) $HardwareMonitor.Hardware.Update() $HardwareMonitor.Hardware.sensors | ?{$_.SensorType -eq 'Temperature' -and $_.Identifier -match 'cpu'} | Select @{ N='CPU Core' E={ $ID = [int]($_.Identifier -split '/')[-1] if (!$ID){ "CPU Package" } else { "CPU Core #$ID" } } },@{ N='CPU Core ID' E={ [int]($_.Identifier -split '/')[-1] } },@{ N='Current Temperature' E={ $_.Value } },@{ N='Minimum Observed' E={ $_.Min } },@{ N='Maximum Observed' E={ $_.Max } } | Sort 'CPU Core ID' | Select 'CPU Core','Current Temperature','Minimum Observed','Maximum Observed' } |