Скрипт Powershell для суммирования всех vCPU и сравнения с хост-процессором. Пока у меня есть следующее
$hostGroups = Get-SCVMMServer -ComputerName "NAME" | Get-SCVMHostGroup | Where-Object { $_.Name -Like "*SOMETHING*"}
$hostGroups = $hostGroups.AllChildHosts
Foreach ($hostGroup in $hostGroups)
{
$SCVMs += @(Get-SCVirtualMachine -VMHost $HostGroup.Name)
}
Foreach ($SCVM in $SCVMs)
{
$CPUCount = $null
$HostLogicalProcessorCount = Get-SCVMHost -ComputerName $SCVM.HostName | Select-Object LogicalProcessorCount
$answer = $SCVMs |
Select-Object CPUCount, HostName |
Group-Object HostName |
Select-Object @{n='HostName';e={$_.Group | Select -Expand HostName -First 1}},
@{n='CPUCount';e={($_.Group | Measure-Object CPUCount -Sum).Sum}},
@{n="HostLogicalProcessorCount";e={$HostLogicalProcessorCount}}
}
$answer | Format-Table -AutoSize
$answer > answer.txt
Это намерение, но, конечно, часть $ HostLogicalProcessorCount неверна. У меня правильные 2 первых столбца
Как мне сопоставить имя хоста? Позже может быть добавим соотношение к ответу? Соотношение $ = CPUCount / HostLogicalProcessorCount
Ожидаемый результат
HostName CPUCount HostLogicalProcessorCount
-------- -------- -------------------------
BLA02SAM4N.DOMAIN.local 128 128
BLA02SAM9N.DOMAIN.local 101 64
BLA02SAM7N.DOMAIN.local 103 64
BLA02SAM1N.DOMAIN.local 105 64
BLA02SAM3N.DOMAIN.lAocal 126 48
BLA02SAM2N.DOMAIN.local 86 64
BLA02SAM8N.DOMAIN.local 115 32
BLA02SAM6N.DOMAIN.local 124 64
BLA02SAM5N.DOMAIN.local 101 128
ALB02SAM7N.DOMAIN.local 199 64
ALB02SAM4N.DOMAIN.local 205 256
ALB02SAM3N.DOMAIN.local 162 64
ALB02SAM5N.DOMAIN.local 171 64
ALB02SAM8N.DOMAIN.local 172 64
ALB02SAM2N.DOMAIN.local 213 64
ALB02SAM9N.DOMAIN.local 172 128
ALB02SAM1N.DOMAIN.local 186 64
ALB02SAM6N.DOMAIN.local 171 128