Skip to content

About

Scan every last detail of your Windows PC into one beautiful self-contained HTML dashboard - search, sorting, themes, redaction. Single-file PowerShell, no dependencies.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

8 Commits

Folders and files

Repository files navigation

SpecsScanner

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.html to see a real (redacted) report generated by SpecsScanner.

Quick start

Double-click friendly:

specsscanner.cmd

From a terminal:

powershell -ExecutionPolicy Bypass -File .\SpecsScanner.ps1

The scan takes a few seconds, writes SpecsScanner-<hostname>-<timestamp>.html next to where you ran it, and opens it in your default browser.

Usage

# 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

The report

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; Esc clears 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-motion and forced-colors mode.

What gets collected

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

Admin vs standard user

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.

JSON output

-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": [ ] },
  "...": { }
}

Privacy

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.

Requirements

  • Windows 10 or Windows 11
  • Windows PowerShell 5.1 (preinstalled) or PowerShell 7+
  • No modules, no admin required (recommended for full detail)

Project layout

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

Code quality

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.

Design system

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-info colors. Every text/background pair was verified programmatically for WCAG AA contrast in both themes.
  • Accent - --brand drives the logo, links, focus rings and active states; -Accent picks 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.

Theme

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.

License

MIT - free forever. Contributions, issues and forks are welcome.

About

Scan every last detail of your Windows PC into one beautiful self-contained HTML dashboard - search, sorting, themes, redaction. Single-file PowerShell, no dependencies.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages