I'm trying to retrieve Overall CPU and memory for each sessions using HistoricalPerformanceData. But my PowerShell session is getting hanged while trying to retrieve the data.
Below is the code i was trying.
$localSessionQueryDefn = New-Object VMware.Hv.QueryDefinition
$localSessionQueryDefn.queryEntityType = 'SessionLocalSummaryView'
$localSessionQueryResults = $queryService.QueryService_Create($hvServices, $localSessionQueryDefn)
while($localSessionQueryResults.Results -ne $null) {
foreach($result in $localSessionQueryResults.Results) {
[VMware.Hv.SessionLocalSummaryView]$sessionLocalSummary = $result
[VMware.Hv.HistoricalPerformanceData[]]$historicalPerfData = $hvServices.Performance.Performance_GetHistoricalPerformanceData($sessionLocalSummary.Id)
$newPerfData = @()
foreach($hpd in $historicalPerfData) {
$newPerfData = $newPerfData += $hpd
}
$overallCPU = $newPerfData | Measure-Object -Property OverallCpu -Average
$overallMemory = $newPerfData | Measure-Object -Property OverallMemory -Average
Write-Host "OverallCpu : "([math]::Round($overallCPU.Average, 2))
Write-Host "OverallMemory : "([math]::Round($overallMemory.Average, 2))
}
#Fetch next page
if ($localSessionQueryResults.id -eq $null) {
break;
}
$localSessionQueryResults = $queryService.QueryService_GetNext($hvServices, $localSessionQueryResults.id)
}
if($localSessionQueryResults.id -ne $null) {
$queryService.QueryService_Delete($hvServices, $localSessionQueryResults.id)
}
Let me know if i'm doing something wrong here.