How to Get Computer Information Using PowerShell

To get computer information using PowerShell, run Get-ComputerInfo. It returns more than 180 properties about Windows, the hardware and the BIOS. Pick the ones you need with -Property:

$info = Get-ComputerInfo -Property WindowsProductName, OsBuildNumber, OsArchitecture,
    CsNumberOfLogicalProcessors, CsTotalPhysicalMemory

"WindowsProductName: $($info.WindowsProductName)"
"OsBuildNumber:      $($info.OsBuildNumber)"
"OsArchitecture:     $($info.OsArchitecture)"
"Logical CPUs:       $($info.CsNumberOfLogicalProcessors)"
"Memory:             $([math]::Round($info.CsTotalPhysicalMemory / 1GB)) GB"

Output:

WindowsProductName: Windows 10 Enterprise
OsBuildNumber:      26200
OsArchitecture:     64-bit
Logical CPUs:       16
Memory:             16 GB
PowerShell Get-ComputerInfo with selected properties
Get-ComputerInfo returns the product name, build, architecture, CPUs and memory (PowerShell 7)

Notice WindowsProductName says Windows 10 on this Windows 11 PC. It’s a long-standing quirk, and below I show a more reliable way, plus a faster CIM report and remote queries. I tested everything in PowerShell 7.6 and 5.1.

Get reliable details with Get-CimInstance

The CIM classes return the real Windows name and give you full control over what you query. This builds a short system report:

$os   = Get-CimInstance -ClassName Win32_OperatingSystem
$cpu  = Get-CimInstance -ClassName Win32_Processor
$disk = Get-CimInstance -ClassName Win32_LogicalDisk -Filter "DeviceID = 'C:'"

"OS:          $($os.Caption) (build $($os.BuildNumber))"
"Last boot:   $($os.LastBootUpTime.ToString('yyyy-MM-dd'))"
"CPU:         $($cpu.NumberOfCores) cores, $($cpu.NumberOfLogicalProcessors) logical processors"
"Memory:      $([math]::Round($os.TotalVisibleMemorySize / 1MB)) GB"
"Drive C:     $([math]::Round($disk.Size / 1GB)) GB, $([math]::Round($disk.FreeSpace / 1GB)) GB free"

Output:

OS:          Microsoft Windows 11 Enterprise (build 26200)
Last boot:   2026-09-23
CPU:         12 cores, 16 logical processors
Memory:      16 GB
Drive C:     953 GB, 351 GB free
PowerShell computer information report with Get-CimInstance
OS, last boot, CPU, memory and drive C: from three CIM classes (Windows PowerShell 5.1)

Build 26200 and a Caption of Windows 11 are the dependable way to tell Windows 11 apart. Getting the Windows version covers more version checks.

For storage details such as Fibre Channel adapter identifiers, see how to find the WWN number in Windows using PowerShell.

Get-ComputerInfo is slow

Get-ComputerInfo collects everything, even when you ask for a few properties. A single CIM query is far faster:

$slow = Measure-Command { Get-ComputerInfo | Out-Null }
$fast = Measure-Command { Get-CimInstance -ClassName Win32_OperatingSystem | Out-Null }

"Get-ComputerInfo:             {0:N1} seconds" -f $slow.TotalSeconds
"Get-CimInstance (one class):  {0:N1} seconds" -f $fast.TotalSeconds

Output:

Get-ComputerInfo:             4.7 seconds
Get-CimInstance (one class):  0.5 seconds
PowerShell Get-ComputerInfo vs Get-CimInstance speed
Get-ComputerInfo takes several seconds, while one CIM query takes a fraction of that (PowerShell 7)

That difference adds up across hundreds of PCs. Use Get-ComputerInfo when you’re exploring, and CIM in scripts.

Useful Get-ComputerInfo properties

PropertyWhat it tells you
OsName, OsBuildNumberThe Windows name and build
OsLastBootUpTime, OsUptimeWhen Windows started and how long it has run
CsNumberOfLogicalProcessorsLogical CPU count
CsTotalPhysicalMemoryInstalled memory in bytes
BiosSMBIOSBIOSVersionBIOS version
CsDomain, CsPartOfDomainDomain membership

Run Get-ComputerInfo | Get-Member to see every property. The full output also includes the PC name, user name and serial number, so review it before sharing.

For firmware details, see gett