Some addition to the server Inventory, now a machine inventory
This scripts collects processor,operatingsystem and computersystem information from 1 of more machines.
Commandline : <script.ps1> -servers <machine1>,<machine2>,…..
[CmdletBinding()] Param( [Parameter(Mandatory=$True,Position=1)] [array]$Servers ) $totalInvent = @() foreach ($Server in $Servers){ $cpu = gwmi win32_processor -ComputerName $Server $OS = gwmi win32_operatingsystem -ComputerName $Server $system = gwmi win32_computersystem -ComputerName $Server $obj = New-Object System.Object $obj | Add-Member -MemberType NoteProperty -Name "System" -Value $OS.CSName $obj | Add-Member -MemberType NoteProperty -Name "Domain" -Value $system.domain $obj | Add-Member -MemberType NoteProperty -Name "OS" -Value $OS.Caption $obj | Add-Member -MemberType NoteProperty -Name "Windir" -Value $OS.WindowsDirectory $obj | Add-Member -MemberType NoteProperty -Name "CPU #" -Value $system.NumberOfProcessors $obj | Add-Member -MemberType NoteProperty -Name "CPU Cores" -Value $CPU.NumberOfCores $obj | Add-Member -MemberType NoteProperty -Name "CPU Model" -Value $CPU.Name $obj | Add-Member -MemberType NoteProperty -Name "SystemType" -Value $System.SystemType $obj | Add-Member -MemberType NoteProperty -Name "Memory GB" -Value ([Math]::Round(($System.TotalPhysicalMemory[0] /1GB),4)) $obj | Add-Member -MemberType NoteProperty -Name "InstallDate" -Value (([WMI] "").ConvertToDateTime(($OS).InstallDate)).ToShortDateString() $obj | Add-Member -MemberType NoteProperty -Name "Description" -Value $OS.Description $totalInvent += $obj } $totalInvent | Out-GridView -Title "Server Inventory" -OutputMode multiple
Console Output :
More Stories
Running PowerShell Hyper-V and VMWare Modules
Extend the Evaluation Period on Windows Server
Now using Ansible, Chocolatey, Powershell