Top PowerShell Commands for Windows Hardware & Drive Health Diagnostics

Windows PowerShell is not just for script automation; it is the most direct conduit into your PC's hardware firmware. By leveraging the Common Information Model (CIM) and Windows Management Instrumentation (WMI), you can audit NVMe SSD wear levels, inspect exact RAM module clock speeds, and generate battery health degradation charts with single-line commands.

How to Launch PowerShell as Administrator

Press Win + X and select Terminal (Admin) or Windows PowerShell (Admin).

1. Check NVMe & SATA SSD SMART Operational Health

Before a hard drive or SSD dies permanently, its internal controller sets warning flags. To check the health status of all storage drives attached to your computer:

PowerShell (Admin)
Get-PhysicalDisk | Select-Object DeviceId, FriendlyName, MediaType, OperationalStatus, HealthStatus
Interpretation
• HealthStatus: Must report Healthy. If it reads Warning or Unhealthy, immediately back up your data—the drive has exhausted spare NAND blocks.
• OperationalStatus: Must read OK.

2. Generate Laptop Battery Wear & Cycle Count Report

Wondering why your laptop battery only lasts 45 minutes? Windows contains a hidden, comprehensive HTML battery telemetry profiler:

PowerShell / Command Prompt
powercfg /batteryreport /output "$HOME\Desktop\battery_report.html"

Double-click battery_report.html on your desktop. Compare "Design Capacity" against "Full Charge Capacity" to see exact percentage loss, plus total battery recharge cycles!

3. Audit RAM Clock Speeds, Timings & Part Numbers

Verify whether your RAM is running at advertised speeds (XMP/EXPO) or downgraded to base JEDEC clock rates:

PowerShell
Get-CimInstance Win32_PhysicalMemory | Select-Object DeviceLocator, Manufacturer, PartNumber, Speed, ConfiguredClockSpeed, Capacity

If ConfiguredClockSpeed shows 2133 or 4800 on high-performance kits, restart your PC and enable XMP/EXPO in your motherboard BIOS.

4. Check Motherboard Model & Current BIOS Firmware

Before updating CPU microcode to fix system instability, check your motherboard manufacturer and exact installed BIOS revision:

PowerShell
Get-CimInstance Win32_BIOS | Select-Object Manufacturer, SMBIOSBIOSVersion, ReleaseDate

5. Generate Full 60-Second System Diagnostics Health Report

Windows has a built-in automated performance assessment tool:

PowerShell / Run
perfmon /report

This compiles hardware telemetry for 60 seconds and outputs an interactive audit of disk latency, memory allocation, and OS device faults.