I am trying to create a list of all CPU/Memory combination and count each server type. That part works but when i am viewing my result i only get last server on all rows. I can’t figure out how to not write over each row. Any one that can point me in correct direction?
$var = get-vm sv* | select numcpu, memorygb | Group-Object numcpu,memorygb
$vmobjects = @()
$object = New-Object PSObject
Add-Member -InputObject $object -MemberType NoteProperty -Name Count -Value “”
Add-Member -InputObject $object -MemberType NoteProperty -Name CPU -Value “”
Add-Member -InputObject $object -MemberType NoteProperty -Name MemoryGB -Value “”
foreach ($row in $var)
{
$cpu,$mem = $row.name -split ‘,’, 2
$object.count = $row.count
$object.cpu = $cpu
$object.memorGB = $mem.trim()
$vmobjects += $object
}
$vmobjects
C:\Users\abc\Documents> $var
Count Name Group
----- ---- -----
1 4, 12 {@{NumCpu=4; MemoryGB=12}}
2 4, 8 {@{NumCpu=4; MemoryGB=8}, @{NumCpu=4; MemoryGB=8}}
1 4, 32 {@{NumCpu=4; MemoryGB=32}}
2 1, 4 {@{NumCpu=1; MemoryGB=4}, @{NumCpu=1; MemoryGB=4}}
1 4, 16 {@{NumCpu=4; MemoryGB=16}}
1 2, 4 {@{NumCpu=2; MemoryGB=4}}
1 4, 4 {@{NumCpu=4; MemoryGB=4}}
1 8, 24 {@{NumCpu=8; MemoryGB=24}}
1 2, 2 {@{NumCpu=2; MemoryGB=2}}
2 1, 2 {@{NumCpu=1; MemoryGB=2}, @{NumCpu=1; MemoryGB=2}}
1 4, 8,359375 {@{NumCpu=4; MemoryGB=8,359375}}
C:\Users\abc\Documents> $vmobjects
Count CPU MemoryGB
----- — --------
1 4 8,359375
1 4 8,359375
1 4 8,359375
1 4 8,359375
1 4 8,359375
1 4 8,359375
1 4 8,359375
1 4 8,359375
1 4 8,359375
1 4 8,359375
1 4 8,359375