How to Audit Hardware, BIOS, and Motherboard Specifications in Windows 11 Using PowerShell Get-CimInstance

Auditing system specifications, firmware revisions, and physical hardware components is a fundamental responsibility for system administrators, IT engineers, and power users. For decades, the legacy Windows Management Instrumentation Command-line (WMIC) was the de facto tool for quick hardware reconnaissance. However, Microsoft has officially deprecated WMIC in Windows 11 and removed it from default installations in favour of Common Information Model (CIM) cmdlets. Leveraging Get-CimInstance in Windows 11 delivers superior performance, robust object pipelines, and consistent cross-platform standards. Learning how to query CIM classes allows you to inspect BIOS revisions, motherboard models, RAM configurations, and CPU topologies directly from the PowerShell console.

Why Use Get-CimInstance Instead of Get-WmiObject or WMIC?

While both Get-WmiObject and wmic.exe were long-standing staples of Windows administration, they rely on legacy DCOM/RPC protocols that lack encryption and present security vulnerabilities. In contrast, Get-CimInstance operates using modern WS-Management (WS-Man) standards over WinRM, complies with open industry standards, and is fully integrated into both Windows PowerShell 5.1 and modern PowerShell 7+. It returns rich, strongly typed .NET objects that can be queried, filtered, and formatted with zero parsing overhead.

How to Open an Elevated PowerShell Session in Windows 11

Querying certain deep hardware tables and motherboard serial numbers requires local administrative privileges:

  1. Right-click the Start button on the Windows 11 taskbar (or press Windows Key + X).
  2. Select Terminal (Admin) or PowerShell (Admin) from the Power User menu.
  3. When prompted by the User Account Control (UAC) dialogue, click Yes to confirm elevated access.

Querying BIOS and UEFI Firmware Details

To inspect your machine’s firmware version, release date, and motherboard manufacturer for driver updates or security patching:

Get-CimInstance -ClassName Win32_BIOS | Select-Object Manufacturer, Name, Version, ReleaseDate, SMBIOSBIOSVersion, SerialNumber | Format-List

This command queries the Win32_BIOS class and outputs clear, structured fields identifying whether your firmware is up to date and verifying the computer’s unique chassis serial number.

Querying Motherboard and Baseboard Information

When planning hardware upgrades or diagnosing hardware compatibility, finding the exact motherboard model without opening the PC chassis is essential:

Get-CimInstance -ClassName Win32_BaseBoard | Select-Object Manufacturer, Product, Version, SerialNumber | Format-Table -AutoSize

The Product attribute reveals the commercial model name of the motherboard, while the Manufacturer clarifies the original hardware vendor.

Querying CPU Architecture and Processor Cores

To inspect detailed physical and logical CPU topologies, clock speeds, and socket architectures:

Get-CimInstance -ClassName Win32_Processor | Select-Object Name, Manufacturer, NumberOfCores, NumberOfLogicalProcessors, MaxClockSpeed, L3CacheSize | Format-List

This command details the exact commercial model name of your processor, distinct physical core counts versus virtual hyperthreaded logical processors, and cache allocations.

Querying Installed RAM and Physical Memory Modules

Rather than simply checking total RAM capacity, querying the Win32_PhysicalMemory class exposes slot-by-slot module configurations, memory speeds, and part numbers:

Get-CimInstance -ClassName Win32_PhysicalMemory | Select-Object BankLabel, DeviceLocator, @{Name="Capacity (GB)"; Expression={$_.Capacity / 1GB}}, Speed, Manufacturer, PartNumber | Format-Table -AutoSize

Notice how PowerShell calculates the raw byte values into human-readable gigabytes on the fly. This query displays which specific memory slots on your motherboard are populated, the precise clock speed of each stick, and the manufacturer’s part number needed to order matching dual-channel memory.

Exporting Hardware Audit Reports to CSV or JSON

Because CIM cmdlets return structured objects, exporting complete hardware inventories to CSV for enterprise ticketing or record-keeping is straightforward:

$HardwareAudit = [PSCustomObject]@{
    ComputerName = $env:COMPUTERNAME
    BIOSVersion  = (Get-CimInstance Win32_BIOS).SMBIOSBIOSVersion
    Motherboard  = (Get-CimInstance Win32_BaseBoard).Product
    Processor    = (Get-CimInstance Win32_Processor).Name
    TotalRAM_GB  = ((Get-CimInstance Win32_PhysicalMemory | Measure-Object -Property Capacity -Sum).Sum / 1GB)
}
$HardwareAudit | Export-Csv -Path "$HOME\Documents\HardwareAudit.csv" -NoTypeInformation

Adopting Get-CimInstance in Windows 11 equips you with a modern, high-speed command set that completely supersedes obsolete WMIC commands. By integrating these standard CIM classes into your system auditing toolkit, you can inspect and document hardware configurations with unmatched precision.

Get the best tech tips delivered straight to your inbox.

Join thousands of readers mastering Apple, Google, Microsoft, and Linux.