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:
- Right-click the Start button on the Windows 11 taskbar (or press Windows Key + X).
- Select Terminal (Admin) or PowerShell (Admin) from the Power User menu.
- 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.