This script allows you to get the list of Delivery Groups by “SessionSupport” type and reports back “MultiSession” as “CitrixApp” and SingleSession as “VDI.”
# Script to get MultiSession and SingleSession counts from Delivery Groups with a non-zero user count. This sorts by MultiSession, then SingleSession. This was ran on a machine with Citrix Studio SDK
# installed. This was tested with CVAD 1912 LTSR.
asnp Citrix*
$adminAddress = "deliverycontroller.fqdn"
$getDG = Get-BrokerDesktopGroup -AdminAddress $adminAddress -MaxRecordCount 100000 | Select-Object Name, SessionSupport | Get-Unique -AsString
$report = @()
foreach($dg in $getDG) {
$line = "" | Select DeliveryGroupName, UserCount, SessionSupport
$userCount = (Get-BrokerSession -AdminAddress $adminAddress -DesktopGroupName $dg.name -MaxRecordCount 100000 | Select-Object BrokeringUserName).count
if ($userCount -ne '0' -and $userCount -ne $null){
$line.DeliveryGroupName = $dg.name
$line.UserCount = $userCount
if($dg.SessionSupport -eq "SingleSession") {
$line.SessionSupport = 'VDI'
}
else{
$line.SessionSupport = 'CitrixApp'
}
$report += $line
}
}
$citrixAppTotal = (($report | Where-Object SessionSupport -eq "CitrixApp"| Select-Object UserCount).UserCount| Measure-Object -Sum).Sum
$citrixVDITotal = (($report | Where-Object SessionSupport -eq "VDI"| Select-Object UserCount).UserCount| Measure-Object -Sum).Sum
$appTotal = write-output "`r`nTotal Citrix App users: $citrixAppTotal"
$vdiTotal = write-output "Total VDI Users: $citrixVDITotal"
$report += $apptotal
$report += $vdiTotal
$report | sort SessionSupport, @{Expression="UserCount";Descending=$true}|Format-Table