Citrix XenApp/XenDesktop 7.8+ Documentation Script Update Version 2.05

June 26, 2017


WHEW! So much community input is in this script.

I didn’t think I was ever going to get this “minor” update completed. By the time I finished updating the script with:

  • the changes Jim Moyle made to the Script Template
  • and then Brandon Mitchel’s updates for 1.x script
  • and then the changes for 7.14 (I mean 7.14.1)
  • and then Samuel Legrand pointed out a new regkey for 7.14
  • which led me to ask for a list of regkeys for 7.8+ and I found out there are 315 regkeys
  • and then several people kept telling me about a missing version check regkey on the computer running the script
  • and I also found little “things” that annoyed me about the two XA/XD scripts when using them at customer sites
  • and I finally had to stop adding and fixing things.

This script is now over 31,000 lines of PowerShell!!! There are 13,000 lines of PowerShell just to handle Citrix Policies.

#Version 2.05 26-Jun-2017

  • Added additional error checking for Site version information
    • If “SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Citrix Desktop Delivery Controller”
    • is not found on the computer running the script, then look on the computer specified for -AdminAddress
    • If still not found on that computer, abort the script
  • Added back the WorkerGroup policy filter for XenApp 6.x
  • Added Broker registry keys that can be set on Broker servers
    • Added Function GetControllerRegistryKeys
    • Added Function Get-RegistryValue2
    • Added Function Get-RegKeyToObject
    • Added Function OutputControllerRegistryKeys
    • Added new parameter BrokerRegistryKeys
    • There are 315 registry keys and values that are checked and listed
    • Updated Function OutputControllers
  • Added Controller version information to the Controllers section
  • Added “Database Size” to the Datastores output
  • Added folder name to Function OutputApplication (Thanks to Brandon Mitchell)
  • Added four new Cover Page properties
    • Company Address
    • Company Email
    • Company Fax
    • Company Phone
  • Added loading the SQL Server assembly so the database size calculations work consistently (thanks to Michael B. Smith)
  • Added missing function validObject
  • Added new parameter MaxDetails:
    • This is the same as using the following parameters:
      • Administrators
      • AppDisks
      • Applications
      • BrokerRegistryKeys
      • DeliveryGroups
      • HardWare
      • Hosting
      • Logging
      • MachineCatalogs
      • Policies
      • StoreFront
  • Added sort applications by AdminFolderName and ApplicationName to Function ProcessApplications (Thanks to Brandon Mitchell)
  • Added support for version 7.14
  • Added the following new Computer policy settings:
    • Application Launch Wait Timeout
    • Enable monitoring of application failures
    • Enable monitoring of application failures on Desktop OS VDAs
    • List of applications excluded from failure monitoring
    • Logoff Checker Startup Delay (seconds)
    • Profile Streaming Exclusion list – directories
  • Added to Delivery Group, LicenseModel and ProductCode
  • Added Version information to Controllers
  • Fixed bug when retrieving Filters for a Policy that “applies to all objects in the Site”
  • Fixed Function Check-LoadedModule
  • Fixed function OutputPolicySetting
  • Fixed functions ProcessAppV and OutputAppv to handle multiple AppV servers (Thanks to Brandon Mitchell)
  • Fixed numerous issues in the Policies section
  • Fixed the “CPU Usage”, “Disk Usage”, and “Memory Usage” policy settings
    • When those settings are Disabled, they are stored as Enabled with a Value of -1
  • Fixed two calls to Get-BrokerApplication that were retrieving the default of 250 records (Thanks to Brandon Mitchell)
  • Removed code (240 lines) that made sure all Parameters were set to default values if for some reason they did exist or values were $Null
  • Reordered the parameters in the help text and parameter list so they match and are grouped better
  • Replaced _SetDocumentProperty function with Jim Moyle’s Set-DocumentProperty function
  • Updated Function OutputDatastores to:
    • Add database size
    • Fix output for mirrored databases
    • Check if SQL Server assembly is loaded before calculating database size
  • Updated Function ProcessScriptEnd for the new Cover Page properties and Parameters
  • Updated Function ShowScriptOptions for the new Cover Page properties and Parameters
  • Updated Function UpdateDocumentProperties for the new Cover Page properties and Parameters
  • Updated help text
  • When -NoPolicies is specified, the Citrix.GroupPolicy.Commands module is no longer searched for

You can always find the most current script by going to



About Carl Webster

Webster is a Sr. Solutions Architect for Choice Solutions, LLC and specializes in Citrix, Active Directory and Technical Documentation. Webster has been working with Citrix products for many years starting with Multi-User OS/2 in 1990.

View all posts by Carl Webster

No comments yet.

Leave a Reply