Why You Shouldn't Have to Check the Sticker
Every OEM machine stores its serial number, model, and asset tag in the motherboard's SMBIOS/DMI firmware tables, which Windows exposes through WMI. That means you can pull the exact same serial number printed on the physical case sticker — useful for warranty lookups, asset inventory, or remote support — straight from the command line, which is faster than crawling under a desk or removing a laptop battery to read a worn-off label, and it's the only practical option for remote machines over SSH/RDP or PowerShell remoting.
The Fastest Method: WMIC
Open Command Prompt (admin not required for this) and run:
wmic bios get serialnumber
This returns just the serial number, for example:
SerialNumber
5CD1234ABC
wmic command from newer Windows 11 builds by default (it was deprecated starting with Windows 10, version 21H1 documentation, and dropped from default installs in later Windows 11 releases). If wmic isn't recognized on your system, use the PowerShell method below instead — it's the actively supported path going forward.The Modern Method: PowerShell
Open PowerShell (regular user is fine) and run:
Get-WmiObject Win32_BIOS | Select-Object SerialNumber
Or, using the newer CIM cmdlets that replace the older WMI ones going forward:
Get-CimInstance Win32_BIOS | Select-Object SerialNumber
Both return the same value pulled from the same underlying SMBIOS data.
Getting More Than Just the Serial Number
If you also need the model, manufacturer, and asset tag for inventory purposes, query the system enclosure and computer system classes as well:
Get-CimInstance Win32_BIOS | Select-Object SerialNumber, Manufacturer, Version
Get-CimInstance Win32_ComputerSystem | Select-Object Manufacturer, Model
Get-CimInstance Win32_SystemEnclosure | Select-Object SMBIOSAssetTag
Win32_SystemEnclosure's SMBIOSAssetTag is separate from the serial number — many consumer machines leave it blank since asset tags are typically set by IT departments for corporate fleets, not by the OEM at manufacture time.
Checking a Remote Machine
If you manage multiple machines and have appropriate permissions and network access, you can query a remote computer's serial number without physically touching it:
Get-CimInstance -ComputerName "REMOTE-PC01" -ClassName Win32_BIOS | Select-Object SerialNumber
This requires WinRM/PowerShell remoting to be enabled on the target and appropriate credentials — it's a common building block in inventory scripts that loop through a list of hostnames pulled from Active Directory or a CSV file.
A Quick Bulk Script for Multiple Machines
If you're auditing several PCs by hostname, this loops through a list and outputs a CSV:
$computers = "PC01", "PC02", "PC03"
$results = foreach ($pc in $computers) {
Get-CimInstance -ComputerName $pc -ClassName Win32_BIOS |
Select-Object @{N='Computer';E={$pc}}, SerialNumber
}
$results | Export-Csv -Path "C:\SerialNumbers.csv" -NoTypeInformation
Why the Result Might Say "Default string" or "System Serial Number"
On custom-built desktops (not from an OEM like Dell, HP, or Lenovo), the motherboard manufacturer often leaves the SMBIOS serial number field populated with a generic placeholder like Default string, System Serial Number, or To be filled by O.E.M. instead of a real value, since no OEM ever programmed a unique one in. This isn't a bug in the command — it means the board genuinely has no serial number encoded in firmware, and your only option is the physical sticker on the motherboard itself or the box it came in. Prebuilt and laptop OEM machines (Dell, HP, Lenovo, Apple, etc.) virtually always report a real value here since the factory writes it during assembly.
Discussion & Insights