Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

System Health Center

A portable Windows health dashboard that scans the local PC and reports a 0-100 score for the system overall and for each of seven components — with the measured evidence behind every number.

One executable. No installer, no runtime prerequisite, no account, no cloud, no telemetry.

Download

Grab SystemHealthCenter.exe from the latest release, drop it anywhere (C:\Tools\ works nicely) and double-click it. Nothing is installed and nothing is written next to the executable, so it also runs from a USB stick.

Requires Windows 10 (1607+) or Windows 11, x64. Administrator rights are not required.

Dashboard

What makes it different

Real measurements only. Every score is computed from data actually read from the machine. Anything Windows or the hardware will not report is shown as Not available — never as 0, never estimated, never invented. The IPv4 address in the screenshot above reads "redacted" because it was masked before publishing, not because the app hides it.

Every score explains itself. No number is shown without the findings behind it. Each finding states what was measured, how many points it cost, and what to do about it:

Health Center

Health and performance are separate. Storage carries two independent scores per drive. A drive can sit at 99% rated endurance and still be slow (nearly full, TRIM off, saturated queue), and a fast drive can be days from failure. Collapsing the two would hide exactly the case that matters.

Missing hardware is not a penalty. Component weights are normalised across whichever components were actually measurable. A desktop with no battery has the remaining 95 points of weight rescaled back to 100 — it is never marked down for hardware it does not have, and neither is a machine where a sensor refused to answer.

Offline by default. Nothing leaves the machine. Internet reachability and DNS testing are opt-in in Settings, and even then only an ICMP echo and one DNS query are sent — never any system information.

Unelevated by design. The manifest requests asInvoker. The few diagnostics Windows reserves for administrators (raw SMART tables, TPM version, BitLocker state) are collected on demand by a short-lived elevated child process, and only when you click Unlock full hardware data.

Features

Page What it gives you
Dashboard Animated overall gauge, seven component cards with key metrics, top problems, recommendations, 7-day trend
Health Center Every finding in priority order (CRITICAL / WARNING / INFO); selecting one jumps straight to its component
Components Per-component detail — metrics, findings, what could not be measured, full inventory; per-drive SMART tables and the storage benchmark
System Information Computer, CPU, RAM modules, motherboard, firmware, GPUs, drives, adapters, OS, security, battery, displays
Live Monitor 1/2/5/10-second sampling of CPU, RAM, GPU, disk and network with live traces
Health History Local 24-hour, 7-day and 30-day score trends per component, with change deltas
Reports HTML (printable), JSON, CSV and plain-text export with a live preview
Settings Accent colour, score bands, component weights, monitoring interval, start-up and tray behaviour, network testing, report folder, history retention, benchmark size

Components

Scored components

Component Default weight Driven by
CPU 15% Sustained load across a sampling window, temperature, OS-reported clock clamping, processor queue
RAM 15% Absolute free memory, commit charge headroom, hard-fault rate, module configuration
Storage 20% Per-drive endurance and defect counters, free space, response time, TRIM state
Network 10% Adapter state, addressing, gateway reachability, packet loss, latency, Wi-Fi signal, interface errors
Windows 15% Pending updates, restart state, update-stack services, activation, stability history, servicing status
Security 20% Antivirus and real-time protection, definition age, firewall profiles, Secure Boot, TPM, BitLocker, UAC, RDP, SMB1
Battery 5% Full-charge capacity against design capacity, cycle count, temperature

Score bands default to Excellent 90-100, Good 75-89, Fair 60-74, Poor 40-59, Critical 0-39, and are configurable. Utilisation on its own is treated gently on purpose: a CPU at 100% is doing its job, and Windows fills spare RAM with cache by design. Points come off for durable, hardware-reported problems.

Live Monitor

Where the data comes from

Collection prefers cheap, reliable APIs over WMI wherever both exist — the live monitor samples every second, and WMI is the least dependable source on consumer hardware.

Area Primary source Fallbacks
CPU load GetSystemTimes
CPU clock, throttling CallNtPowerInformation(ProcessorInformation)
CPU temperature MSAcpi_ThermalZoneTemperature Not available — most desktop boards only publish die temperature through a vendor driver
Memory GlobalMemoryStatusEx, GetPhysicallyInstalledSystemMemory, performance counters Win32_PhysicalMemory for per-module detail
Drive identity, TRIM, media type IOCTL_STORAGE_QUERY_PROPERTY (device descriptor, TRIM, seek penalty) Win32_DiskDrive, MSFT_PhysicalDisk
NVMe health IOCTL_STORAGE_QUERY_PROPERTY protocol-specific, SMART/Health log page 0x02
ATA / SATA SMART SMART_RCV_DRIVE_DATA attribute and threshold tables MSFT_StorageReliabilityCounter, MSStorageDriver_FailurePredictStatus, Windows disk health status
Volume to disk mapping IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS Win32_DiskDriveToDiskPartition associations
Storage benchmark FILE_FLAG_NO_BUFFERING with a page-aligned VirtualAlloc buffer
GPU utilisation GPU Engine performance counters
Network System.Net.NetworkInformation, netsh wlan show interfaces for signal quality
Windows servicing Registry, ServiceController, Windows Update agent (offline cached catalogue) Win32_QuickFixEngineering
Security root\SecurityCenter2, Defender WMI provider, registry (firewall, Secure Boot, UAC, RDP, SMB1) Elevated probe for TPM and BitLocker
Battery GetSystemPowerStatus, Win32_Battery, root\WMI battery classes powercfg /batteryreport /xml

Command line

SystemHealthCenter.exe                       Launch the dashboard
SystemHealthCenter.exe --report [folder]     Scan and write every report format, then exit
SystemHealthCenter.exe --minimized           Start hidden in the notification area

--report is handy for scheduled collection: it runs the same scan headlessly and writes HTML, JSON, CSV and text to the given folder (or the configured report folder).

What it never touches

This is a diagnostic tool. It never enables or disables Microsoft Defender, the firewall, BitLocker, Secure Boot or UAC, and it never changes a security setting on your behalf. Findings in those areas are reported as recommendations for you to act on.

Where your data lives

Everything the application writes stays under %LOCALAPPDATA%\SystemHealthCenter:

  • settings.json — configuration
  • history.jsonl — one JSON record per scan, for the trend charts
  • logs\systemhealthcenter.log — the technical detail behind any Not available

Reports default to Documents\System Health Center. Delete the folder and the application starts fresh.

Health History

Running from source

Requires the .NET 8 SDK.

git clone https://github.com/unupunct/System-Health-Center.git
cd System-Health-Center
dotnet build src/SystemHealthCenter/SystemHealthCenter.csproj -c Release

To produce the single portable executable:

pwsh build/publish.ps1

That writes publish/SystemHealthCenter.exe — self-contained, x64, single file. The script fails loudly if any loose dependency ends up beside it.

Layout

src/SystemHealthCenter/
├── Controls/          Custom-drawn gauge, sparkline and trend chart
├── Health/            Scoring engine, seven calculators, thresholds and weights
├── Infrastructure/    Win32 interop, defensive WMI wrapper, formatting, converters
├── Models/            Data models — raw facts, no judgement
├── Persistence/       Settings and local JSON-lines history
├── Recommendations/   Findings to prioritised actions
├── Reporting/         HTML / JSON / CSV / text report generation
├── Services/          Per-subsystem collection, benchmark, live metrics, elevated probe
├── ViewModels/        MVVM view models
└── Views/             Shell and pages

Collection and scoring are deliberately separate: services return raw facts, and the health engine interprets them. The same engine therefore re-scores an existing snapshot without touching the machine again — which is what happens the moment you change a weight or a band in Settings.

Every domain limit the calculators use — temperature ceilings, free-space floors, endurance thresholds, latency budgets — lives in one file, Health/ScoringLimits.cs. Score bands live in Health/HealthThresholds.cs.

Limitations

Honest about what has and has not been exercised on real hardware:

  • Verified on a Windows 11 desktop with a SATA SSD behind Intel RST plus a USB-enclosed SSD: scans are deterministic, 1.8 s with warm WMI, and complete with zero module failures while running as a standard user.
  • Written but unexercised: laptop chassis, NVMe drives, mechanical hard disks and Windows 10. The NVMe log-page parser and the battery module in particular have had no real hardware behind them yet.
  • PDF export is not bundled. The HTML report carries a print stylesheet, so "print to Microsoft Print to PDF" produces a properly paginated document. Adding a PDF library would have grown the executable for something Windows already does.
  • CPU temperature is only available where the platform publishes an ACPI thermal zone. Reading die temperature otherwise requires a kernel driver, which this application deliberately does not install.
  • Windows end-of-support reporting is conservative on purpose. Only the Windows 10 date (14 October 2025) is asserted; per-version Windows 11 servicing dates are not hardcoded, because a stale date presented as fact is worse than a pointer to Microsoft's lifecycle pages.

Licence

MIT — see LICENSE.

About

Portable Windows PC health dashboard - 0-100 scores for CPU, RAM, storage, network, Windows, security and battery, with the measured evidence behind every number. Single self-contained exe, no admin required, fully offline.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages