In a previous tip you learned how systeminfo.exe can compose a rich system profile. systeminfo.exe has built-in remoting capabilities, so provided you have the proper permissions, you can also get system information from remote systems.
Here is a simple function:
function Get-SystemInfo { param($ComputerName = $env:ComputerName) $header = 'Hostname','OSName','OSVersion','OSManufacturer','OSConfig','Buildtype','RegisteredOwner','RegisteredOrganization','ProductID','InstallDate','StartTime','Manufacturer','Model','Type','Processor','BIOSVersion','WindowsFolder','SystemFolder','StartDevice','Culture','UICulture','TimeZone','PhysicalMemory','AvailablePhysicalMemory','MaxVirtualMemory','AvailableVirtualMemory','UsedVirtualMemory','PagingFile','Domain','LogonServer','Hotfix','NetworkAdapter' systeminfo.exe /FO CSV /S $ComputerName | Select-Object -Skip 1 | ConvertFrom-CSV -Header $header }
And here is a sample call: