$cpu = Get-WmiObject Win32_Processor | Select-Object -First 1 $ram = Get-WmiObject Win32_ComputerSystem $gpu = Get-WmiObject Win32_VideoController | Where-Object { $_.AdapterRAM -gt 0 } $os = Get-WmiObject Win32_OperatingSystem Write-Output "=== CPU ===" Write-Output " $($cpu.Name)" Write-Output " Cores: $($cpu.NumberOfCores) physical / $($cpu.NumberOfLogicalProcessors) logical" Write-Output " Max MHz: $($cpu.MaxClockSpeed)" Write-Output "`n=== RAM ===" $ramGB = [math]::Round($ram.TotalPhysicalMemory / 1GB, 1) Write-Output " Total: $ramGB GB" Write-Output "`n=== GPU(s) ===" foreach ($g in $gpu) { $vramMB = [math]::Round($g.AdapterRAM / 1MB, 0) Write-Output " $($g.Name)" Write-Output " VRAM: $vramMB MB" Write-Output " Driver: $($g.DriverVersion)" } Write-Output "`n=== Storage (system drive) ===" $disk = Get-WmiObject Win32_LogicalDisk -Filter "DeviceID='C:'" $freeGB = [math]::Round($disk.FreeSpace / 1GB, 1) $totalGB = [math]::Round($disk.Size / 1GB, 1) Write-Output " C: $freeGB GB free / $totalGB GB total"