Skip to content

Instantly share code, notes, and snippets.

@jeffa00
Last active July 28, 2024 20:10
Show Gist options
  • Save jeffa00/9577816 to your computer and use it in GitHub Desktop.
Save jeffa00/9577816 to your computer and use it in GitHub Desktop.
Get CPU Temperature With PowerShell
# Please note that this is quite old at this point and may or may not work for you. I leave it here for historical purposes
# and just in case it can help someone. I think I may have been using Windows 7 when I wrote this.
function Get-Temperature {
$t = Get-WmiObject MSAcpi_ThermalZoneTemperature -Namespace "root/wmi"
$currentTempKelvin = $t.CurrentTemperature / 10
$currentTempCelsius = $currentTempKelvin - 273.15
$currentTempFahrenheit = (9/5) * $currentTempCelsius + 32
return $currentTempCelsius.ToString() + " C : " + $currentTempFahrenheit.ToString() + " F : " + $currentTempKelvin + "K"
}
# Save in your c:\users\yourName\Documents\WindowsPowerShell\modules\ directory
# in sub directory get-temperature as get-temperature.psm1
# You **must** run as Administrator.
# It will only work if your system & BIOS support it. If it doesn't work, I can't help you.
# Just type get-temperature in PowerShell and it will spit back the temp in Celsius, Farenheit and Kelvin.
# More info on my blog: http://ammonsonline.com/is-it-hot-in-here-or-is-it-just-my-cpu/
@forthrin
Copy link

Hi!

I'd like to track CPU hogs over a day and get output in the following format. Unfortunately I have no Power Shell knowledge. Could you throw together something based on the snippets already here? I think this would be really useful for many people.

Pseudo:

while(TRUE)
  for each process that uses more than 5% cpu
    print datetime + cputemp + process.cpu + process.path
  sleep(5)

2020-05-01 12:34:56  34C  15%  C:\Program Files\Microsoft Office\msword.exe
2020-05-01 12:34:56  34C  11%  C:\Program Files\Microsoft Office\msexcel.exe
2020-05-01 12:41:10  37C   7%  C:\Program Files\Microsoft Office\mspoint.exe

@FatherDivine
Copy link

Doesn't seem to work on Winblows nowadays (At least 11, possibly 10). That's using PowerShell && pwsh:

Get-WmiObject : Not supported

@hsavior
Copy link

hsavior commented Jul 10, 2024

Doesn't seem to work on Winblows nowadays (At least 11, possibly 10). That's using PowerShell && pwsh:

Get-WmiObject : Not supported

It depends on the hardware you have, some will not have this object.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment