Check whether a Windows laptop is genuine and healthy before you buy it. It works for new laptops, store demo/display units, and second-hand laptops.
Everything runs on the laptop itself, so you see the results with your own eyes instead of trusting the seller. The scripts only read information. Nothing on the laptop is changed.
| File | What it does |
|---|---|
check.ps1 |
One script that checks model and serial, CPU, RAM, GPU (with real VRAM), display (exact max refresh rate), SSD health, battery health, Windows activation, crash/hardware-error history and faulty devices. It ends with a colour-coded SCORECARD showing every Result next to its Expected value with a verdict, and saves a report. |
screen-keyboard-test.html |
Full-screen colour test (dead pixels, backlight bleed, image retention), key-by-key keyboard test, and a refresh-rate check. |
EXTRA-COMMANDS.md |
Individual commands to run by hand, plus the CPU stress test and live GPU monitor, each explained. |
Works on Windows 10 and 11 (any brand: Asus, MSI, Lenovo, HP, Dell, Acer…). It does not work on Windows 7/8 or Windows in S mode, which blocks PowerShell scripts.
The laptop only needs internet. Connect it to the store Wi-Fi or your phone’s hotspot.
Run it as Administrator. Without Admin the script still runs, but SSD wear/hours and some battery data will be missing.
Open any PowerShell window (Start → type powershell → Enter), paste this, then click Yes on the Windows popup:
Start-Process powershell -Verb RunAs -ArgumentList '-NoExit','-ExecutionPolicy','Bypass','-Command','irm https://raw.githubusercontent.com/Dev010904/laptop-genuineness/main/check.ps1 | iex'
A new Administrator window opens, runs the full check, and stays open so you can read the scorecard.
irm https://raw.githubusercontent.com/Dev010904/laptop-genuineness/main/check.ps1 | iex
irm (Invoke-RestMethod) downloads the script text from GitHub.iex (Invoke-Expression) runs it in memory. Nothing is installed.Other ways to get an Admin PowerShell: Start → type powershell → right-click → Run as administrator, or Win + R → type powershell → Ctrl + Shift + Enter.
Open this link in the laptop’s browser:
https://dev010904.github.io/laptop-genuineness/screen-keyboard-test.html
Delete the laptop-test-report folder from the Desktop. Take a photo of the summary first, or copy the folder to your phone or USB.
In an Admin PowerShell, run the command below, replacing E: with your USB letter:
powershell -ExecutionPolicy Bypass -File "E:\laptop-genuineness\check.ps1"
The report is saved next to the script, on the USB.
If Windows says the script is blocked (downloaded files get marked), run this once, then try again:
Unblock-File "E:\laptop-genuineness\check.ps1"
screen-keyboard-test.html to open it in the browser.To find your USB drive letter:
Get-Volume | Where-Object DriveType -eq Removable
Scroll to the SCORECARD at the bottom. Every check is shown like this:
[FAIL ] Max refresh rate
Result : 144 Hz
Expected: 240 Hz
Rows are sorted worst first:
| Verdict | Colour | Meaning |
|---|---|---|
| FAIL | Red | Serious problem or doesn’t match the spec. Don’t buy until it’s explained or fixed. |
| WARN | Yellow | Check it, and use it to negotiate the price. |
| CHECK | Cyan | The script can’t know the right answer. Compare it with the box, the bill and the spec sheet. |
| OK | Green | Matches what’s expected. |
| INFO | Grey | Worth knowing, not a fault. |
The last lines give TOTAL counts and an overall VERDICT.
If the laptop matches a built-in model profile, the script compares CPU, RAM, GPU + VRAM, resolution, refresh rate, SSD size and battery capacity against that model’s exact specs, and marks each row OK or FAIL.
Currently included:
Other models get CHECK rows for those items, so you compare them with the spec sheet yourself. To add a model, copy the entry in $profiles at the top of check.ps1.
| Check | Expected | Verdict rules |
|---|---|---|
| Run as Administrator | Yes | No = WARN (SSD data missing) |
| Model | Exact model code on box + bill | CHECK (OK when a profile matches) |
| Serial number | Same as sticker, box, bill | Missing/generic (“To be filled by O.E.M.”) = FAIL, board replaced |
| CPU | Spec sheet processor + thread count | Profile mismatch = FAIL |
| RAM | Spec sheet size + speed | Profile mismatch = FAIL. Running below rated speed = WARN |
| RAM channels | 2 modules (dual channel) | 1 module = WARN |
| Dedicated GPU | Spec sheet GPU + VRAM (e.g. RTX 5060 = 8 GB) | Profile mismatch = FAIL |
| Graphics drivers | All OK | “Microsoft Basic Display” or error = FAIL |
| NVIDIA driver | nvidia-smi works | Missing = WARN |
| Screen resolution | Spec sheet (e.g. 2560 x 1600) | Profile mismatch = FAIL |
| Max refresh rate | Spec sheet (e.g. 240 Hz) | Profile mismatch = FAIL |
| Current refresh rate | Same as max | Lower = INFO (change it in Settings, or plug in charger) |
| SSD size | Spec sheet (1 TB shows ~931–954 GB) | Profile mismatch = FAIL |
| SSD health | Healthy | Anything else = FAIL |
| SSD wear | 0–2 % | 3–10 % = WARN, over 10 % = FAIL |
| SSD power-on hours | New: under ~50 h | INFO (high is normal on a demo unit) |
| SSD temperature | Under 70 °C idle | 70–80 = WARN, 80+ = FAIL |
| SSD read/write errors | 0 | Any = FAIL |
| Battery health | 90 %+ | 85–90 % = WARN (negotiate), under 85 % = FAIL |
| Battery design capacity | Profile value (e.g. 90 Wh) | Off by more than 5 % = WARN (non-original battery?) |
| Battery cycles | Under 50 for new/demo | 50–300 = WARN, 300+ = FAIL |
| Windows activated | Yes | No = WARN |
| User accounts | 1 | More = CHECK (someone used it) |
| Hardware errors (WHEA) | 0 | Any = FAIL |
| Blue screens | 0 | Driver codes (e.g. 0x9F) = WARN. Hardware codes (0x124, 0x7A, 0x1A) = FAIL. The code and its meaning are shown |
| Unexpected shutdowns | 0–5 | More = WARN |
| Internal disk errors | 0 | Any = FAIL. Errors from USB drives are listed separately and ignored |
| Devices with problems | None | Any = WARN |
| Wi-Fi, Bluetooth, webcam, speakers, mic | Present | Missing = FAIL |
DESIGN CAPACITY with FULL CHARGE CAPACITY, and check the CYCLE COUNT.Click Start keyboard test and press every key. Each one turns green when it registers.
Keys like Fn, the Copilot key and some media keys can’t be seen by a browser. Test those by using them, for example brightness and volume.
The menu shows Browser refresh rate ≈ … Hz. Plugged in, it should match the advertised refresh rate (for example 144, 165 or 240).
If it shows 60, check Settings → System → Display → Advanced display → Choose a refresh rate.
See EXTRA-COMMANDS.md. It runs every CPU thread at 100 % for 5 minutes while you watch the temperatures and listen to the fans.
What a correct result looks like for this model:
| Check | Expected |
|---|---|
| Model | Crosshair 16 HX AI D2XWFKG… |
| CPU | Intel Core Ultra 9 275HX, 24 cores / 24 threads |
| RAM | 2 × 8 GB DDR5, 5600 |
| GPU | NVIDIA GeForce RTX 5060 Laptop GPU, 8 GB + Intel graphics |
| Display | 2560 × 1600, 240 Hz |
| Storage | 1 TB NVMe (about 931–954 GB shown) |
| Battery | About 90,000 mWh design capacity |
Read-only checks. Use at your own risk. Always confirm the warranty directly with the manufacturer.