JABSysCheck · v1.0 · Setup Guide
System diagnostics,
step by step.
JABSysCheck runs two things on your machine: a PowerShell collector that snapshots
hardware and health every 30 seconds, and a Node.js server that exposes that data
to the editorial dashboard — accessible from any browser on your network.
JABSysCheck.ps1
PowerShell · 30s cadence
→
C:\JABSysCheck\data.json
atomic write
→
server.js
Express · port 3847
→
Dashboard
browser · live fetch
Prerequisites
Node.js — if you don't have it, download from
nodejs.org.
PowerShell 5.1 ships with Windows 10/11 — no install needed.
1.
Download JABSysCheck
Download the zip from the toolkit page. Extract it anywhere — a folder like
D:\Tools\jabsyscheck works well.
↓ Download jabsyscheck-v1.zip
2.
Install dependencies
Open a terminal in the extracted folder and run:
npm install
This installs Express — the only dependency. Takes a few seconds.
3.
Start the collector
Right-click JABSysCheck.ps1 and choose
Run with PowerShell as administrator — or run it from an elevated terminal:
powershell -ExecutionPolicy Bypass -File JABSysCheck.ps1
The collector self-elevates if it detects it's not running as administrator.
It writes C:\JABSysCheck\data.json every 30 seconds.
Leave this window open — closing it stops collection.
First run: Windows may ask you to allow the script to run.
Confirm the UAC prompt, then the collector window will confirm it's running
with output like [16:42:08] snapshot ok.
4.
Start the API server
In a second terminal in the jabsyscheck folder:
npm start
You'll see:
JABSysCheck
dashboard → http://localhost:3847
api → http://localhost:3847/api/data
The server reads data.json on each request —
no restart needed when the collector updates the file.
5.
Open the dashboard
Two ways to view your data:
http://localhost:3847
— or open jabsystems.io/jabsyscheck in any browser.
When the local server is running, the hosted dashboard connects automatically
and refreshes every 30 seconds.
Remote access: to monitor from another device on your network,
edit server.js and change
'127.0.0.1' to '0.0.0.0',
then open http://<your-local-ip>:3847 from the other device.
What it tracks
I. Hardware
- CPU name · cores · clock · load
- RAM slots · capacity · speed · vendor
- GPU · VRAM · driver · resolution
- Physical disk health & volumes
II. System
- Network adapters · link speed
- WiFi SSID & signal strength
- Active power plan
- Last boot · uptime in days
III. Health
- Top 10 processes by memory
- Top 10 processes by CPU time
- Flagged conflict-prone services
- Defender real-time status
Flagged services
The collector watches for services that are commonly "noisy" or conflict-prone on
enthusiast machines. If any are running, they appear under section VII Health:
Killer Network Service · Killer Wireless · GameFirst
ASUS · Armoury Crate · ArmouryCrate
McAfee · Norton · NortonSecurity
Data shape — data.json
The collector writes a single JSON object. Top-level keys:
{
"generated_at": "2026-05-25T16:42:08.000Z",
"system": { "hostname", "username", "os_caption", "os_version", "os_build", "manufacturer", "model" },
"cpu": { "name", "cores", "threads", "max_clock_mhz", "current_load", "socket" },
"ram": { "total_gb", "used_gb", "free_gb", "usage_percent", "slots": [...] },
"gpu": [ { "name", "vram_gb", "driver_version", "driver_date", "resolution", "refresh_hz" } ],
"storage": { "physical": [...], "volumes": [...] },
"network": { "adapters": [...], "wifi": { "ssid", "signal_percent", "connected" } },
"power_plan":{ "name", "is_ultimate" },
"processes": { "by_memory": [...], "by_cpu": [...] },
"services": { "flagged": [...] },
"defender": { "real_time_protection", "antivirus_enabled", "signature_age_days", "engine_version" },
"uptime": { "last_boot", "uptime_days", "uptime_hours" }
}