Kompakte Ein-Datei-Wiki: Themen bleiben in dieser Seite, DE/EN wird per Button umgeschaltet.
HWiNFO Thermal Guard
Automatischer thermischer Schutz für Windows-Gaming-PCs.
3-Stufen-Eskalation: Warnung → Programme beenden → Notabschaltung.
🌐 Sprache / Language
| Deutsch | English |
|---|---|
| Schnellstart | Quick Start |
| Konfiguration | Configuration |
| Watchdog & 12h-Reset | Watchdog & 12h-Reset |
| Troubleshooting | Troubleshooting |
Features
- 🔥 CPU + GPU Temperaturüberwachung mit 3-Stufen-Eskalation
- 🎮 GPU-Profil Auto-Detection (NVIDIA / AMD)
- 📦 Auto-Download fehlender Dependencies (HWiNFO, RemoteHWInfo, BurntToast)
- 🔍 Pfad-Scan: findet installierte Software automatisch
- 🐕 Watchdog: startet abgestürzte Prozesse neu
- 🔄 HWiNFO Free 12h-Reset: automatischer Neustart vor Session-Ablauf
- 🔔 Windows Toast (BurntToast) + ntfy Push-Benachrichtigungen
- ⚡ PowerShell 5.1 + 7 kompatibel
Dateien
| Datei | Beschreibung |
|---|---|
HWiNFO-ThermalGuard.ps1 |
Hauptscript |
Start-HWiNFO-Remote.bat |
Autostart-Kette |
Start-HWiNFO-Remote.vbs |
Unsichtbar-Wrapper |
README.md |
Offline-Dokumentation |
Architektur
Start-HWiNFO-Remote.vbs (shell:startup)
└── Start-HWiNFO-Remote.bat
├── PS-Version erkennen (pwsh / powershell)
├── Shared Memory Registry setzen
├── Pfade scannen + Auto-Download
├── HWiNFO64.exe starten
├── RemoteHWInfo.exe starten (hidden)
└── HWiNFO-ThermalGuard.ps1 starten (hidden)
├── GPU Auto-Detection
├── BurntToast prüfen/installieren
├── Watchdog alle 60s
└── Polling-Loop alle 5s
├── Stufe 1: Toast + ntfy
├── Stufe 2: taskkill
└── Stufe 3: shutdown.exe
v1.4 · Repository · © Pol4rFuchs
Schnellstart
Frischer PC (nix installiert)
- Ordner
C:\Tools\HWiNFO-ThermalGuard\anlegen - Alle Dateien reinkopieren:
HWiNFO-ThermalGuard.ps1Start-HWiNFO-Remote.batStart-HWiNFO-Remote.vbs
Start-HWiNFO-Remote.batper Rechtsklick → Als Administrator ausführen- Fertig
Alles was fehlt (HWiNFO64, RemoteHWInfo, BurntToast) wird automatisch heruntergeladen und installiert. Die GPU (NVIDIA oder AMD) wird automatisch erkannt.
Was passiert beim ersten Start?
Bat startet
├── PowerShell 7 oder 5.1 erkennen
├── HWiNFO Shared Memory in Registry aktivieren
├── HWiNFO64 suchen → nicht da? → winget install
├── RemoteHWInfo suchen → nicht da? → GitHub ZIP download
├── HWiNFO64 starten + 15s warten
├── RemoteHWInfo starten + 5s warten
├── ThermalGuard starten
│ ├── GPU erkennen (NVIDIA / AMD)
│ ├── BurntToast prüfen → nicht da? → Install-Module
│ ├── Sensor-Check
│ └── Polling-Loop aktiv
└── Alle Dienste aktiv
Autostart einrichten
.batund.vbsmüssen im gleichen Ordner liegenWin+R→shell:startup→ Enter- Rechtsklick auf
.vbs→ Verknüpfung erstellen → in den startup-Ordner verschieben
Ab jetzt startet alles unsichtbar bei jedem Login.
Dienste prüfen
PowerShell-Einzeiler:
"HWiNFO64: $(if(Get-Process HWiNFO64 -EA 0){'[OK]'}else{'[TOT]'}) | RemoteHWInfo: $(if(Get-Process RemoteHWInfo -EA 0){'[OK]'}else{'[TOT]'}) | ThermalGuard: $(if(Get-CimInstance Win32_Process|?{$_.CommandLine -match 'ThermalGuard'}){'[OK]'}else{'[TOT]'})"
Beispiel-Setups
Gaming-PC mit NVIDIA + eigenem ntfy-Server
$GPUProfile = "AUTO"
$EnableNtfy = $true
$NTFY_URL = "https://ntfy.alpenfestung.duckdns.org"
$NTFY_TOPIC = "ha-system"
$EnableHWiNFO12hReset = $false # HWiNFO Pro
Kumpel-PC mit AMD + kein ntfy
Nichts anpassen — Defaults reichen:
$GPUProfile = "AUTO" # erkennt AMD automatisch
$EnableNtfy = $false # Default
PC mit ntfy.sh (kostenlos, kein eigener Server)
$EnableNtfy = $true
$NTFY_URL = "https://ntfy.sh"
$NTFY_TOPIC = "thermalguard-deinname"
ntfy-App installieren (Android/iOS), Topic subscriben, fertig.
Quick Start
Fresh PC (nothing installed)
- Create folder
C:\Tools\HWiNFO-ThermalGuard\ - Copy all files into it:
HWiNFO-ThermalGuard.ps1Start-HWiNFO-Remote.batStart-HWiNFO-Remote.vbs
- Right-click
Start-HWiNFO-Remote.bat→ Run as Administrator - Done
Everything missing (HWiNFO64, RemoteHWInfo, BurntToast) is downloaded and installed automatically. The GPU (NVIDIA or AMD) is detected automatically.
What happens on first start?
Bat starts
├── Detect PowerShell 7 or 5.1
├── Enable HWiNFO Shared Memory in Registry
├── Find HWiNFO64 → not found? → winget install
├── Find RemoteHWInfo → not found? → GitHub ZIP download
├── Start HWiNFO64 + wait 15s
├── Start RemoteHWInfo + wait 5s
├── Start ThermalGuard
│ ├── Detect GPU (NVIDIA / AMD)
│ ├── Check BurntToast → not found? → Install-Module
│ ├── Sensor check
│ └── Polling loop active
└── All services running
Enable autostart
.batand.vbsmust be in the same folderWin+R→shell:startup→ Enter- Right-click
.vbs→ Create shortcut → move shortcut to startup folder
Everything starts invisibly on every login from now on.
Check service status
PowerShell one-liner:
"HWiNFO64: $(if(Get-Process HWiNFO64 -EA 0){'[OK]'}else{'[DOWN]'}) | RemoteHWInfo: $(if(Get-Process RemoteHWInfo -EA 0){'[OK]'}else{'[DOWN]'}) | ThermalGuard: $(if(Get-CimInstance Win32_Process|?{$_.CommandLine -match 'ThermalGuard'}){'[OK]'}else{'[DOWN]'})"
Example setups
Gaming PC with NVIDIA + own ntfy server
$GPUProfile = "AUTO"
$EnableNtfy = $true
$NTFY_URL = "https://your-server.duckdns.org"
$NTFY_TOPIC = "ha-system"
$EnableHWiNFO12hReset = $false # HWiNFO Pro
Friend's PC with AMD + no ntfy
No changes needed — defaults work:
$GPUProfile = "AUTO" # detects AMD automatically
$EnableNtfy = $false # default
PC with ntfy.sh (free, no server needed)
$EnableNtfy = $true
$NTFY_URL = "https://ntfy.sh"
$NTFY_TOPIC = "thermalguard-yourname"
Install ntfy app (Android/iOS), subscribe to topic, done.
Konfiguration
Alle Einstellungen stehen am Anfang der HWiNFO-ThermalGuard.ps1.
GPU-Profil
$GPUProfile = "AUTO" # Erkennt automatisch NVIDIA oder AMD (Standard)
$GPUProfile = "NVIDIA" # Manueller Override
$GPUProfile = "AMD" # Manueller Override
Bei AUTO erkennt das Script die GPU über zwei Methoden:
- Windows WMI (
Win32_VideoController) — funktioniert immer - HWiNFO JSON (Fallback) — liest GPU-Name aus Sensor-Daten
Sensor-Labels nach Profil
| NVIDIA | AMD | |
|---|---|---|
| GPU Temp | GPU Temperature |
GPU Temperature |
| GPU Hotspot | nicht verfügbar | GPU Hot Spot Temperature |
| GPU Fan | GPU Fan1 |
GPU Fan |
| GPU Load | GPU Core Load |
GPU Utilization |
Toggles
$EnableCPU = $true # CPU-Temperatur überwachen
$EnableGPU = $true # GPU-Temperatur überwachen
$EnableNtfy = $false # ntfy Push (true = aktivieren, URL+Topic setzen)
ntfy
Eigener Server
$EnableNtfy = $true
$NTFY_URL = "https://dein-server.duckdns.org"
$NTFY_TOPIC = "ha-system"
ntfy.sh (kostenlos, kein Server nötig)
$EnableNtfy = $true
$NTFY_URL = "https://ntfy.sh"
$NTFY_TOPIC = "thermalguard-deinname"
Aus (nur Windows Toast)
$EnableNtfy = $false
Schwellwerte
$CPU_WarnTemp = 85 # CPU Vorwarnung
$CPU_CritTemp = 91 # CPU Hard-Stop
$GPU_WarnTemp = 83 # GPU Vorwarnung
$GPU_CritTemp = 90 # GPU Hard-Stop
$GPU_HotspotWarn = 95 # GPU Hotspot Vorwarnung (nur AMD)
$GPU_HotspotCrit = 100 # GPU Hotspot Hard-Stop (nur AMD)
$GPU_FanWarnRPM = 300 # Fan-Warnung unter diesem Wert bei Last
$GPU_FanCritRPM = 0 # Fan Hard-Stop: 0 RPM bei Last
Richtwerte
| Komponente | Konservativ | Standard | Aggressiv |
|---|---|---|---|
| CPU Warn | 80°C | 85°C | 88°C |
| CPU Crit | 88°C | 91°C | 95°C |
| GPU Warn | 78°C | 83°C | 85°C |
| GPU Crit | 85°C | 90°C | 92°C |
| GPU Hotspot Warn | 90°C | 95°C | 97°C |
| GPU Hotspot Crit | 95°C | 100°C | 105°C |
Timing
$PollInterval = 5 # Sekunden zwischen Sensor-Abfragen
$Stage2Delay = 30 # Sekunden bis Programme beendet werden
$Stage3Delay = 90 # Sekunden bis Shutdown (gesamt ab Trigger)
$Stage3Delay ist die Gesamtzeit ab dem ersten kritischen Wert. Bei Defaults: 30s bis Kill, dann 60s bis Shutdown.
Prozessliste (Stufe 2)
$KillProcesses = @(
"TslGame" # PUBG
"Stalker2-Win64-Shipping" # Stalker 2
"obs64" # OBS Studio
"chrome"
"firefox"
"floorp"
)
Prozessnamen findest du im Task-Manager unter "Details" oder:
Get-Process | Where-Object { $_.MainWindowTitle -ne "" }
Pfade (optional)
Normalerweise nicht nötig — Auto-Scan findet alles. Nur setzen bei ungewöhnlichem Installationsort:
$HWiNFO_Path = "" # leer = auto-scan
$RemoteHWInfo_Path = "" # leer = auto-scan
Scan-Reihenfolge HWiNFO64
- Manueller Override → 2.
Program Files→ 3.Program Files (x86)→ 4.C:\Tools\→ 5. Desktop → 6. Downloads → 7. PATH → 8. winget install
Scan-Reihenfolge RemoteHWInfo
- Manueller Override → 2.
C:\Tools\RemoteHWInfo\→ 3.C:\Tools\→ 4. Desktop → 5. Downloads → 6. Script-Ordner → 7. GitHub ZIP download
3-Stufen-Eskalation
t=0s Schwelle erreicht → Toast + ntfy + Timer
t=0-30s Polling → Wert fällt? → Reset
t=30s STUFE 2: Programme beenden
t=30-90s Polling → Wert fällt? → Reset
t=90s STUFE 3: shutdown.exe /s /f /t 0
Jeder Sensor hat einen eigenen Timer. Fan-Check nur bei GPU-Last > 50%.
Logging
%USERPROFILE%\HWiNFO-ThermalGuard\thermalguard.log
Levels: INFO, WARN, CRIT, ERROR. Rotation bei 10 MB.
Configuration
All settings are at the top of HWiNFO-ThermalGuard.ps1.
GPU Profile
$GPUProfile = "AUTO" # Auto-detect NVIDIA or AMD (default)
$GPUProfile = "NVIDIA" # Manual override
$GPUProfile = "AMD" # Manual override
AUTO detects via Windows WMI first, falls back to HWiNFO JSON sensor names.
Sensor labels by profile
| NVIDIA | AMD | |
|---|---|---|
| GPU Temp | GPU Temperature |
GPU Temperature |
| GPU Hotspot | not available | GPU Hot Spot Temperature |
| GPU Fan | GPU Fan1 |
GPU Fan |
| GPU Load | GPU Core Load |
GPU Utilization |
Toggles
$EnableCPU = $true # Monitor CPU temperature
$EnableGPU = $true # Monitor GPU temperature
$EnableNtfy = $false # ntfy push (true = enable, set URL+Topic below)
ntfy
Own server
$EnableNtfy = $true
$NTFY_URL = "https://your-server.duckdns.org"
$NTFY_TOPIC = "ha-system"
ntfy.sh (free, no server)
$EnableNtfy = $true
$NTFY_URL = "https://ntfy.sh"
$NTFY_TOPIC = "thermalguard-yourname"
Off (Toast only)
$EnableNtfy = $false
Thresholds
$CPU_WarnTemp = 85 # CPU warning
$CPU_CritTemp = 91 # CPU hard stop
$GPU_WarnTemp = 83 # GPU warning
$GPU_CritTemp = 90 # GPU hard stop
$GPU_HotspotWarn = 95 # GPU hotspot warning (AMD only)
$GPU_HotspotCrit = 100 # GPU hotspot hard stop (AMD only)
$GPU_FanWarnRPM = 300 # Fan warning below this RPM under load
$GPU_FanCritRPM = 0 # Fan hard stop: 0 RPM under load
Timing
$PollInterval = 5 # Seconds between sensor polls
$Stage2Delay = 30 # Seconds until programs are killed
$Stage3Delay = 90 # Seconds until shutdown (total from trigger)
Kill list (Stage 2)
$KillProcesses = @(
"TslGame" # PUBG
"Stalker2-Win64-Shipping" # Stalker 2
"obs64" # OBS Studio
"chrome"
"firefox"
"floorp"
)
Find process names: Task Manager → Details, or:
Get-Process | Where-Object { $_.MainWindowTitle -ne "" }
Paths (optional)
Not needed normally — auto-scan finds everything. Only set for unusual install locations:
$HWiNFO_Path = "" # empty = auto-scan
$RemoteHWInfo_Path = "" # empty = auto-scan
3-Stage Escalation
t=0s Threshold reached → Toast + ntfy + Timer
t=0-30s Polling → Value drops? → Reset
t=30s STAGE 2: Kill processes
t=30-90s Polling → Value drops? → Reset
t=90s STAGE 3: shutdown.exe /s /f /t 0
Each sensor has its own timer. Fan check only when GPU load > 50%.
Logging
%USERPROFILE%\HWiNFO-ThermalGuard\thermalguard.log
Levels: INFO, WARN, CRIT, ERROR. Rotation at 10 MB.
Watchdog & 12h-Reset
Konfiguration
$EnableWatchdog = $true # Prozess-Watchdog an/aus
$WatchdogIntervalSec = 60 # Prüf-Intervall in Sekunden
$EnableHWiNFO12hReset = $true # Automatischer Neustart vor 12h-Limit
$HWiNFOMaxRuntimeMin = 690 # Neustart nach X Minuten (690 = 11.5h)
Was der Watchdog macht
Alle 60 Sekunden (konfigurierbar) prüft der Watchdog:
| Prüfung | Aktion |
|---|---|
| HWiNFO64 Prozess weg | Neustart + 15s warten |
| RemoteHWInfo Prozess weg | Neustart + 5s warten |
| HWiNFO Laufzeit > 11.5h | Beide stoppen → neu starten |
| Endpoint offline | Sofortiger Watchdog-Check |
Bei jedem Fehler wird ein Alert (Toast + ntfy) gesendet.
HWiNFO Free 12h-Limit
Die kostenlose Version von HWiNFO beendet sich nach 12 Stunden. Ohne den 12h-Reset läuft ThermalGuard danach blind.
Ablauf
HWiNFO läuft seit 11.5h
├── Alert: "HWiNFO 12h-Reset"
├── HWiNFO64 stoppen
├── RemoteHWInfo stoppen
│ (braucht neues Shared Memory nach HWiNFO-Neustart)
├── 3s warten
├── HWiNFO64 neu starten
├── 15s warten auf Sensor-Initialisierung
├── RemoteHWInfo neu starten
├── 5s warten auf HTTP-Server
└── Timer zurücksetzen → nächster Reset in 11.5h
Warum 11.5h statt 12h?
30 Minuten Puffer. HWiNFO zeigt vor dem 12h-Limit einen Dialog — wenn niemand am PC ist, bleibt der Dialog offen und HWiNFO läuft noch kurz weiter. Mit 11.5h ist der Neustart sicher durch bevor das Limit greift.
Warum wird RemoteHWInfo auch neugestartet?
RemoteHWInfo liest den HWiNFO Shared Memory. Nach einem HWiNFO-Neustart wird ein neuer Shared Memory Block erstellt. RemoteHWInfo muss sich neu verbinden — ein Neustart ist der sauberste Weg.
HWiNFO Pro
Wer HWiNFO Pro hat braucht den 12h-Reset nicht:
$EnableHWiNFO12hReset = $false
Der Prozess-Watchdog (Crash-Recovery) bleibt trotzdem aktiv.
Endpoint-Ausfall
Wenn der HTTP-Endpoint (localhost:60000/json.json) nicht antwortet:
- ThermalGuard loggt "Endpoint nicht erreichbar"
- Alert wird gesendet (max alle 15 Minuten)
- Watchdog-Check wird sofort erzwungen (normales Intervall überspringen)
- Watchdog prüft ob HWiNFO + RemoteHWInfo laufen → startet neu wenn nötig
- Polling läuft weiter — sobald Endpoint wieder da, normaler Betrieb
ThermalGuard beendet sich nie wegen eines Endpoint-Ausfalls.
Log-Beispiel
[2026-05-18 23:01:22] [WARN] WATCHDOG: HWiNFO64 laeuft seit 690 Minuten — 12h-Reset...
[2026-05-18 23:01:22] [INFO] Alert: HWiNFO 12h-Reset
[2026-05-18 23:01:25] [INFO] WATCHDOG: Warte 15s auf HWiNFO Sensor-Init...
[2026-05-18 23:01:40] [INFO] WATCHDOG: Warte 5s auf RemoteHWInfo...
[2026-05-18 23:01:45] [INFO] WATCHDOG: 12h-Reset erfolgreich — HWiNFO (PID 4521) + RemoteHWInfo (PID 7832)
Watchdog & 12h-Reset
Configuration
$EnableWatchdog = $true # Process watchdog on/off
$WatchdogIntervalSec = 60 # Check interval in seconds
$EnableHWiNFO12hReset = $true # Auto-restart before 12h limit
$HWiNFOMaxRuntimeMin = 690 # Restart after X minutes (690 = 11.5h)
What the watchdog does
Every 60 seconds (configurable):
| Check | Action |
|---|---|
| HWiNFO64 process gone | Restart + wait 15s |
| RemoteHWInfo process gone | Restart + wait 5s |
| HWiNFO runtime > 11.5h | Stop both → restart both |
| Endpoint offline | Immediate watchdog check |
Alerts (Toast + ntfy) are sent on every failure.
HWiNFO Free 12h limit
The free version of HWiNFO terminates after 12 hours. Without the 12h-reset, ThermalGuard runs blind after that.
Reset sequence
HWiNFO running for 11.5h
├── Alert: "HWiNFO 12h-Reset"
├── Stop HWiNFO64
├── Stop RemoteHWInfo (needs new Shared Memory)
├── Wait 3s
├── Start HWiNFO64
├── Wait 15s for sensor init
├── Start RemoteHWInfo
├── Wait 5s for HTTP server
└── Timer reset → next reset in 11.5h
Why 11.5h instead of 12h?
30-minute buffer. HWiNFO shows a dialog before the 12h limit — if nobody is at the PC, the dialog stays open. 11.5h ensures the restart completes before the limit hits.
HWiNFO Pro
Pro users don't need the 12h reset:
$EnableHWiNFO12hReset = $false
The process watchdog (crash recovery) remains active.
Endpoint failure
When the HTTP endpoint (localhost:60000/json.json) doesn't respond:
- ThermalGuard logs "Endpoint not reachable"
- Alert sent (max every 15 minutes)
- Immediate watchdog check forced
- Watchdog checks if HWiNFO + RemoteHWInfo are running → restarts if needed
- Polling continues — normal operation resumes when endpoint returns
ThermalGuard never exits due to an endpoint failure.
Troubleshooting
HWiNFO64 konnte nicht installiert werden
winget braucht den Windows Update Service:
Get-Service wuauserv | Select-Object Status, StartType
Falls deaktiviert:
Set-Service wuauserv -StartupType Manual; Start-Service wuauserv
Danach nochmal starten. Oder manuell: hwinfo.com/download
RemoteHWInfo Download fehlgeschlagen
GitHub nicht erreichbar oder Firewall blockiert. Manuell:
- RemoteHWInfo v0.5 ZIP herunterladen
- Entpacken nach
C:\Tools\RemoteHWInfo\
HTTP-Endpoint nicht erreichbar
Checkliste:
- HWiNFO64 im Sensors-only Modus?
- Shared Memory aktiv? → wird automatisch per Registry gesetzt
- RemoteHWInfo läuft? → Task-Manager → Details →
RemoteHWInfo.exe - Port 60000 frei? →
netstat -ano | findstr 60000 - Browser-Test:
http://localhost:60000/json.json
Sensor fehlt
Der SensorMatch-String passt nicht zu den tatsächlichen Labels.
- HWiNFO64 + RemoteHWInfo müssen laufen
- Browser →
http://localhost:60000/json.json - Strg+F → nach dem Sensor suchen (z.B. "GPU Temperature")
labelOriginalim JSON mitSensorMatchim Script vergleichen- Bei Bedarf
$GPUProfilevonAUTOauf manuell setzen und SensorMatch anpassen
Toast-Benachrichtigungen kommen nicht
BurntToast installiert?
Get-Module -ListAvailable -Name BurntToast
Falls nicht:
Install-Module BurntToast -Force -Scope CurrentUser
Test:
New-BurntToastNotification -Text "Test", "Funktioniert!"
Falls Test funktioniert aber ThermalGuard-Toasts nicht: Windows Fokus-Assistent prüfen → Aus stellen (Einstellungen → System → Benachrichtigungen).
GPU wird nicht erkannt
Auto-Detection zeigt "Keine unterstützte GPU erkannt":
- Prüfe ob die GPU im Geräte-Manager sichtbar ist
- Sind GPU-Treiber installiert?
- Workaround: manuell setzen statt AUTO:
$GPUProfile = "NVIDIA" # oder "AMD"
Script startet nicht / beendet sich sofort
Log prüfen:
%USERPROFILE%\HWiNFO-ThermalGuard\thermalguard.log
Häufige Ursachen:
- "PowerShell 5.1 oder höher erforderlich" → Windows PowerShell aktualisieren
- "Software-Check fehlgeschlagen" → HWiNFO oder RemoteHWInfo nicht installierbar (Logs lesen)
- ExecutionPolicy blockiert →
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
RemoteHWInfo crasht beim Start
Shared Memory nicht aktiv. Prüfen:
- HWiNFO64 muss vorher laufen
- Settings → Shared Memory Support → Haken
- HWiNFO komplett beenden und neu starten
Manueller Test:
cd C:\Tools\RemoteHWInfo
RemoteHWInfo.exe -hwinfo=1 -gpuz=0 -afterburner=0
Dienste beenden
| Prozess | Methode |
|---|---|
| ThermalGuard | Task-Manager → Details → powershell.exe/pwsh.exe mit ThermalGuard → Task beenden |
| RemoteHWInfo | Task-Manager → Details → RemoteHWInfo.exe → Task beenden |
| HWiNFO64 | Tray-Icon → Rechtsklick → Exit |
PowerShell-Kompatibilität
| Feature | PS 5.1 | PS 7+ |
|---|---|---|
| Script | ✅ | ✅ |
| BurntToast | ✅ | ✅ |
| Auto-Scan | ✅ | ✅ |
| Auto-Download | ✅ | ✅ |
| winget | ✅ | ✅ |
Die .bat erkennt automatisch ob pwsh.exe (PS7) verfügbar ist und bevorzugt es.
Troubleshooting
HWiNFO64 could not be installed
winget requires the Windows Update Service:
Get-Service wuauserv | Select-Object Status, StartType
If disabled:
Set-Service wuauserv -StartupType Manual; Start-Service wuauserv
Or install manually: hwinfo.com/download
RemoteHWInfo download failed
GitHub unreachable or firewall blocking. Manual install:
- Download RemoteHWInfo v0.5 ZIP
- Extract to
C:\Tools\RemoteHWInfo\
HTTP endpoint not reachable
Checklist:
- HWiNFO64 in Sensors-only mode?
- Shared Memory active? → set automatically via Registry
- RemoteHWInfo running? → Task Manager → Details →
RemoteHWInfo.exe - Port 60000 free? →
netstat -ano | findstr 60000 - Browser test:
http://localhost:60000/json.json
Sensor missing
The SensorMatch string doesn't match the actual labels.
- HWiNFO64 + RemoteHWInfo must be running
- Browser →
http://localhost:60000/json.json - Ctrl+F → search for the sensor (e.g. "GPU Temperature")
- Compare
labelOriginalin JSON withSensorMatchin script
Toast notifications not appearing
BurntToast installed?
Get-Module -ListAvailable -Name BurntToast
If not:
Install-Module BurntToast -Force -Scope CurrentUser
Test:
New-BurntToastNotification -Text "Test", "Works!"
If test works but ThermalGuard toasts don't: disable Windows Focus Assist (Settings → System → Notifications).
GPU not detected
Set manually instead of AUTO:
$GPUProfile = "NVIDIA" # or "AMD"
Script won't start / exits immediately
Check log:
%USERPROFILE%\HWiNFO-ThermalGuard\thermalguard.log
Common causes:
- "PowerShell 5.1 or higher required" → update Windows PowerShell
- "Software check failed" → HWiNFO or RemoteHWInfo not installable
- ExecutionPolicy blocks script →
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Stopping services
| Process | Method |
|---|---|
| ThermalGuard | Task Manager → Details → powershell.exe/pwsh.exe with ThermalGuard → End task |
| RemoteHWInfo | Task Manager → Details → RemoteHWInfo.exe → End task |
| HWiNFO64 | Tray icon → Right-click → Exit |
PowerShell compatibility
| Feature | PS 5.1 | PS 7+ |
|---|---|---|
| Script | ✅ | ✅ |
| BurntToast | ✅ | ✅ |
| Auto-Scan | ✅ | ✅ |
| Auto-Download | ✅ | ✅ |
| winget | ✅ | ✅ |
The .bat auto-detects pwsh.exe (PS7) and prefers it over powershell.exe (PS5.1).