It uses CIM (Common Information Model) that is available since Powershell version 3 so as long as you have version 3 and up, you should be able to run this script against any server that you have access to.
And if you are running powershell version lower than 3, you could simply replace "Get-CimInstance -ClassName" with "Get-WmiObject" in this script and it should work without a hitch.
# Specify the server name here
$server = "Server1" # pull all the information $hardware = Get-CimInstance -ClassName Win32_ComputerSystem -ComputerName $server $OS = Get-CimInstance -ClassName Win32_OperatingSystem -ComputerName $server $CPU = Get-CimInstance -ClassName Win32_Processor -ComputerName $server $PhysicalMemory = Get-CimInstance -ClassName CIM_PhysicalMemory -ComputerName $server $Bios = Get-CimInstance -ClassName Win32_BIOS -ComputerName $server # build custom array to get some key properties in a single row $server_summary = New-Object PSObject Add-Member -inputObject $server_summary -memberType NoteProperty -Name Manufacturer -value $hardware.Manufacturer Add-Member -inputObject $server_summary -memberType NoteProperty -Name Model -value $hardware.Model Add-Member -inputObject $server_summary -memberType NoteProperty -Name HypervisorPresent -value $hardware.HypervisorPresent Add-Member -inputObject $server_summary -memberType NoteProperty -Name Bios -value $Bios.Name Add-Member -inputObject $server_summary -memberType NoteProperty -Name OS -value $OS.Caption Add-Member -inputObject $server_summary -memberType NoteProperty -Name OSArchitecture -value $OS.OSArchitecture Add-Member -inputObject $server_summary -memberType NoteProperty -Name CPUs -value $CPU.count Add-Member -inputObject $server_summary -memberType NoteProperty -Name PhySicalMemory_GB -value $total_memory_gb Add-Member -inputObject $server_summary -memberType NoteProperty -Name OSVersionNumber -value $OS.Version Add-Member -inputObject $server_summary -memberType NoteProperty -Name ServicePackMajorVersion -value $OS.ServicePackMajorVersion Add-Member -inputObject $server_summary -memberType NoteProperty -Name ServicePackMinor -value $OS.ServicePackMinorVersion Add-Member -inputObject $server_summary -memberType NoteProperty -Name LastBootUpTime -value $OS.LastBootUpTime # Display the values # First, lets up the buffer size first so we can see the complete output on the screen $Host.UI.RawUI.BufferSize = New-Object Management.Automation.Host.Size (500, 3000) "summary" "=======" $server_summary | ft -AutoSize "" "Detailed Properties" "===================" "Hardware:" $hardware | ft -Property * "Bios:" $Bios | ft -Property * "Operating System:" $OS | ft -Property * "CPUs:" $CPU | ft -Property * "Physical Memory:" $PhysicalMemory | ft -property *
No comments:
Post a Comment