first commit
This commit is contained in:
39
GetCpuTemp.ps1
Executable file
39
GetCpuTemp.ps1
Executable file
@@ -0,0 +1,39 @@
|
||||
# Read CPU temperature via LibreHardwareMonitor WMI.
|
||||
# Prereq: 1) Install LibreHardwareMonitor 2) Run it (as Admin) 3) Keep it running
|
||||
# winget install LibreHardwareMonitor.LibreHardwareMonitor
|
||||
|
||||
param([switch]$ListAll)
|
||||
|
||||
$ns = "root\LibreHardwareMonitor"
|
||||
$ok = $false
|
||||
try {
|
||||
$sensors = Get-CimInstance -Namespace $ns -ClassName Sensor -ErrorAction Stop
|
||||
$ok = $true
|
||||
} catch {
|
||||
Write-Host "LibreHardwareMonitor WMI not available. Ensure:" -ForegroundColor Yellow
|
||||
Write-Host " 1. LibreHardwareMonitor is installed"
|
||||
Write-Host " 2. LibreHardwareMonitor.exe is running (can be minimized)"
|
||||
Write-Host " 3. Run LibreHardwareMonitor as Administrator"
|
||||
Write-Host "Error: $($_.Exception.Message)" -ForegroundColor Red
|
||||
exit 1
|
||||
}
|
||||
|
||||
if ($ListAll) {
|
||||
$sensors | Where-Object { $_.SensorType -eq 'Temperature' } | Select-Object Name, Parent, Value | Format-Table -AutoSize
|
||||
exit 0
|
||||
}
|
||||
|
||||
# Intel CPU (adjust to /amdcpu/0 for AMD)
|
||||
$cpu = $sensors | Where-Object { $_.SensorType -eq 'Temperature' -and $_.Parent -like '/intelcpu/*' }
|
||||
if (-not $cpu) {
|
||||
$cpu = $sensors | Where-Object { $_.SensorType -eq 'Temperature' -and $_.Parent -like '/amdcpu/*' }
|
||||
}
|
||||
if (-not $cpu) {
|
||||
Write-Host "No CPU temperature sensor found. Try -ListAll to see available sensors." -ForegroundColor Yellow
|
||||
exit 1
|
||||
}
|
||||
|
||||
$cpu | ForEach-Object {
|
||||
$c = if ($null -ne $_.Value) { [Math]::Round($_.Value, 1) } else { "N/A" }
|
||||
Write-Host "$($_.Name): $c C (Parent: $($_.Parent))"
|
||||
}
|
||||
Reference in New Issue
Block a user