Citrix License Usage Monitoring using PowerShell

The below PowerShell script could be used to deliver automated emails on the Citrix License usage for Citrix Admins.

Where do you run this script from?

Citrix License Server

How do you run this?

The script could be saved as a file with an extension of .ps1

Also ensure that you have a folder called report_do_not_delete created in the C: drive on the license server. Also, make the relevant changes in the script marked in Red. Run the script as a scheduled task at a specific time to receive the license usage reports in your mailbox or run it manually from a PowerShell window in Admin mode

#Region Settings
#Your License Server
$CitrixLicenseServer = “yourlicenseservername”

#Do you want to report on licenses with 0 users?
$ShowUnusedLicenses = $true

#Toggle an alert above this percentage of licenses used
$UsageAlertThreshold = 0

#EndRegion Settings

#Region CollectData
#retrieve license information from the license server
$LicenseData = Get-WmiObject -class “Citrix_GT_License_Pool” -namespace “ROOT\CitrixLicensing” -ComputerName $CitrixLicenseServer

$usageReport = @()
$LicenseData | select-object pld -unique | foreach {
$CurrentLicenseInfo = “” | Select-Object License, Count, Usage, pctUsed, Alert
$CurrentLicenseInfo.License = $_.pld
$CurrentLicenseInfo.Count = ($LicenseData | where-object {$_.PLD -eq $CurrentLicenseInfo.License } | measure-object -property Count -sum).sum
$CurrentLicenseInfo.Usage = ($LicenseData | where-object {$_.PLD -eq $CurrentLicenseInfo.License } | measure-object -property InUseCount -sum).sum
$CurrentLicenseInfo.pctUsed = [Math]::Round($CurrentLicenseInfo.Usage / $CurrentLicenseInfo.Count * 100,2)
$CurrentLicenseInfo.Alert = ($CurrentLicenseInfo.pctUsed -gt $UsageAlertThreshold)
if ($ShowUnusedLicenses -and $CurrentLicenseInfo.Usage -eq 0) {
$usageReport += $CurrentLicenseInfo
} elseif ($CurrentLicenseInfo.Usage -ne 0) {
$usageReport += $CurrentLicenseInfo
#EndRegion CollectData
$usageReport |Select-Object @{name=’Date-time’;Expression={Get-Date} },License,Count,Usage,PctUsed,Alert|ft -AutoSize|Out-File -Append C:\report_do_not_delete\$(get-date -uformat “%Y-%m-%d”).txt
#$usageReport | Format-Table -AutoSize | out-file “C:\reports\usagereport.txt”

Send-MailMessage -From “[email protected]” -To “[email protected]” -Subject “Citrix XenApp license usage – Daily Report” -Body “Citrix XenApp license usage – Daily Report” -SmtpServer “” -Attachments “C:\report_do_not_delete\$(get-date -uformat “%Y-%m-%d”).txt”

14 thoughts on “Citrix License Usage Monitoring using PowerShell

  1. Pingback: Delivery Controller 7.7 – Carl Stalhood

  2. Pingback: Delivery Controller 7.6.7000 / LTSR CU7 – Carl Stalhood

  3. Pingback: Delivery Controller 7.15.1000 LTSR and Licensing – Carl Stalhood

  4. Pingback: Delivery Controller 7.16 and Licensing – Carl Stalhood

  5. Pingback: Delivery Controller 7.15 LTSR and Licensing – Carl Stalhood

  6. Pingback: Delivery Controller 7.14 and Licensing – Carl Stalhood

  7. Pingback: Delivery Controller 7.13 and Licensing – Carl Stalhood

  8. Pingback: Delivery Controller 7.12 and Licensing – Carl Stalhood

  9. Pingback: Delivery Controller 7.11 and Licensing – Carl Stalhood

  10. Pingback: Delivery Controller 7.9 and Licensing – Carl Stalhood

  11. Pingback: Delivery Controller 7.6.1000 / LTSR CU1 – Carl Stalhood

  12. Pingback: Delivery Controller 7.8 – Carl Stalhood

  13. Pingback: Delivery Controller 7.7 | Cloud Evangelist

  14. Pingback: Delivery Controller | Carl Stalhood

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.