Scan every last detail of your Windows PC and get one beautiful, self-contained HTML report.
SpecsScanner is a free, open-source PowerShell CLI that digs through CIM/WMI, the registry and native tools to collect your complete system specifications, then renders everything into a single offline HTML file: a modern dashboard themed with Catppuccin Mocha (dark), Latte (light) or Auto, with 14 never-skip-a-detail sections.
- No installs. No dependencies. No internet. Nothing ever leaves your machine.
- Pure Windows PowerShell 5.1 (built into Windows) and PowerShell 7+ compatible.
- Works without administrator rights - an elevated run unlocks a bit of extra detail.
- Dashboard report: plain-language summary, health strip, search (
/), sortable tables, click-to-copy, light/dark themes. - Share safely with
-Redact: hostname, user, serials, MACs and IPs become placeholders.
Open
examples/sample-report.htmlto see a real (redacted) report generated by SpecsScanner.
Double-click friendly:
specsscanner.cmd
From a terminal:
powershell -ExecutionPolicy Bypass -File .\SpecsScanner.ps1The scan takes a few seconds, writes SpecsScanner-<hostname>-<timestamp>.html next to where you ran it, and opens it in your default browser.
# Default: scan everything, write HTML, open it
.\SpecsScanner.ps1
# Pick an output location (extension is optional)
.\SpecsScanner.ps1 -OutputPath C:\temp\my-pc-specs.html
# HTML + machine-readable JSON
.\SpecsScanner.ps1 -Format Both
# Only some sections (aliases: Hardware, All)
.\SpecsScanner.ps1 -Sections System,CPU,Storage
.\SpecsScanner.ps1 -Sections Hardware,Network
# Don't auto-open, follow the system theme, brand the report blue
.\SpecsScanner.ps1 -NoOpen -Theme Auto -Accent Blue
# Redacted copy for sharing / bug reports (placeholders replace identifiers)
.\SpecsScanner.ps1 -Redact| Parameter | Description | Default |
|---|---|---|
-OutputPath |
Output file. .html/.json extension optional, folders are created |
SpecsScanner-<host>-<timestamp>.html (next to the script) |
-Format |
Html, Json or Both |
Html |
-Sections |
Comma list of sections, or aliases Hardware / All |
All |
-NoOpen |
Do not open the report in the browser | (opens) |
-Theme |
Initial theme: Mocha (dark), Latte (light) or Auto (follow system) |
Mocha |
-Accent |
Dashboard accent: 14 Catppuccin hues (Mauve, Blue, Teal, ...) |
Mauve |
-Redact |
Replace hostname, user, serials, MACs, IPs and SSIDs with placeholders | off |
Every report is a single self-contained HTML file - styles, icons and JavaScript inlined, zero network requests. What you get:
- Overview dashboard - hostname, device type, Windows install date, an auto-written plain-language summary, KPI tiles (CPU, memory ring, GPU, storage bar) and a system-health strip.
- Search everything - press
/(or click the search box) to filter tables live;Escclears it. - Sortable tables - click any column header; numeric, version and date columns sort correctly. Keyboard accessible.
- Click to copy - serial numbers, MACs, IPs and identifiers copy to the clipboard with one click.
- Collapse / expand all, scroll progress bar, section spy navigation, back-to-top.
- Theme control - Auto / Latte / Mocha segmented switch; the Auto mode follows your OS in real time. The accent color of the whole dashboard is selectable via
-Accent. - Print-friendly - printing expands every section and switches to light colors.
- Accessible: WCAG AA contrast verified for both themes, keyboard navigation, respects
prefers-reduced-motionand forced-colors mode.
| Section | Contents |
|---|---|
| System & BIOS | Manufacturer, model, serial, UUID, chassis type, domain/workgroup, VM detection, BIOS vendor/version/date, motherboard |
| Processor | Model, architecture, cores/threads, clocks, L2/L3 cache, socket, virtualization + SLAT, hypervisor |
| Memory | Total/in use/free, commit charge, page file, slots used, per-module slot/size/speed/type/part number/serial/voltage |
| Graphics | All adapters, true VRAM (registry - beats the 4 GB WMI cap), driver version/date, current resolution & refresh rate |
| Displays | EDID monitors: name, manufacturer, product code, serial, diagonal size, brightness, manufacture date |
| Storage | Physical disks (type, bus, health, SMART temperature, wear, power-on hours, firmware, serial), volumes with free space, partitions |
| Network | Adapters, status, link speed, MAC, IPv4/subnet/gateway/DNS/DHCP, Wi-Fi SSID/signal/radio rates |
| Audio | Sound devices and audio endpoints |
| Battery | Charge, status, chemistry, design vs full-charge capacity, health %, cycle count (laptops - section auto-hides on desktops) |
| Security | TPM presence/spec/state, firmware mode, Secure Boot, Defender + tamper protection, firewall profiles, registered AV products, BitLocker volumes |
| Windows | Edition, version + UBR build, feature update, install date, last update installed, uptime, activation, timezone, locale, .NET, recent update history |
| Peripherals | Device counts by class, keyboards/mice/USB/cameras/Bluetooth, USB controllers, printers |
| Installed Software | Every registry uninstall entry: name, version, publisher, install date (deduplicated) |
| Services | Running Windows services with start mode and account |
Run from a normal terminal and you still get 90% of everything. A few items are gated behind elevation and are clearly annotated in the report instead of failing:
- SMART wear/temperature/power-on hours
- BitLocker volume status
- Some TPM and battery fields
For 100% coverage: right-click PowerShell -> Run as administrator, then scan again.
-Format Json (or Both) writes the same data as structured JSON:
{
"scanner": { "name": "SpecsScanner", "version": "2.1.5", "started": "2026-10-18 17:33:37", "generated": "2026-10-18 17:33:52", "durationSeconds": 14.7, "elevated": true },
"CPU": { "title": "Processor", "values": { "Name": "AMD Ryzen 5 5600G", "Cores": 6, "...": "..." }, "tables": [ ] },
"...": { }
}Everything is local. SpecsScanner performs no network requests and uploads nothing. The report can contain sensitive identifiers (serial numbers, MAC addresses, installed software) - review before sharing it publicly.
Sharing the report anyway? Run with -Redact: SpecsScanner swaps identifying values for placeholders (DESKTOP-EXAMPLE, EX-SERIAL-001, 02:00:00:00:00:01, 192.0.2.x, EXAMPLE-NETWORK) and the report is clearly marked as a redacted copy.
- Windows 10 or Windows 11
- Windows PowerShell 5.1 (preinstalled) or PowerShell 7+
- No modules, no admin required (recommended for full detail)
SpecsScanner/
|- SpecsScanner.ps1 # the entire tool - one file, pure PowerShell
|- specsscanner.cmd # double-click wrapper
|- examples/
| \- sample-report.html # real report generated on a Ryzen desktop (redacted)
|- CHANGELOG.md
|- LICENSE # MIT
\- README.md
SpecsScanner follows Microsoft's
PowerShell development guidelines:
approved verbs, singular nouns, named parameters, no empty catch blocks. The
script passes PSScriptAnalyzer
1.25.0 with its default rule set and zero findings - the only suppression
is one deliberate, documented exception for colored Write-Host CLI output.
The report ships its complete design system inline - no external assets, nothing to maintain separately:
- Tokens - every color comes from CSS variables. Both official Catppuccin palettes (Mocha, Latte) are defined side by side; components only reference theme-aware
--fg-*names plus semantic--fg-ok/--fg-warn/--fg-bad/--fg-infocolors. Every text/background pair was verified programmatically for WCAG AA contrast in both themes. - Accent -
--branddrives the logo, links, focus rings and active states;-Accentpicks any of the 14 Catppuccin hues. Section icons get their own structural accent from a per-section registry. - Components - hero bento tiles, KPI tiles, stat tiles, progress rings, bars, pills, chips, disk/volume/connection/module/monitor cards, checklists, timelines, tables, notes, banners, toasts.
- Status color is meaning-only - green/yellow/red appear only for actual health states; chrome stays quiet.
- No entrance animations - only hover micro-transitions, open/close and the theme cross-fade (all disabled under
prefers-reduced-motion).
Adding a new section means registering an icon + accent and feeding the renderer - the layout system handles the rest.
Both official Catppuccin palettes ship in every report with a three-way switch: Auto (follows the OS), Mocha (dark) and Latte (light). -Theme sets which one the report starts in; the visitor's choice is remembered per browser. Status values reuse Catppuccin green/yellow/red, contrast-checked in both themes.
MIT - free forever. Contributions, issues and forks are welcome.