Update: Version 1.1 supports XenDesktop Licenses in Addition to XenApp Licenses
Most Citrix products rely heavily on license files. While the basic format of a license file is somewhat documented, most fields used in license files are not. This makes understanding their contents difficult. It does not help that the license files can hardly be called readable with most of the relevant data in one long line.
As an administrator of Citrix products it is sometimes necessary to analyze the contents of one’s license file(s). This requires manual parsing, a very tedious process. To illustrate this point here is the relevant portion of a typical license file (digital signature obliterated for obvious reasons):
SERVER this_host HOSTNAME=srv1 VENDOR CITRIX USE_SERVER INCREMENT MPS_ENT_CCU CITRIX 2008.0206 06-feb-2009 5 \ VENDOR_STRING=;LT=NFR;GP=720;CL=ENT,ADV,STD,AST;SA=0;ODP=0;AP=ADMIN/LOGON/-28D:NONADMIN/LOGON/ALW \ DUP_GROUP=V ISSUED=07-Mar-2007 NOTICE="sepago GmbH" \ SN=OR146610:845390 START=6-feb-2007 SIGN="XXXX XXXX XXXX XXXX \ XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \ XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \ XXXX XXXX"
See what I mean?
To simplify license file analysis, I have written the tool ParseCitrixLicense. It takes a license file like the one above and displays the contents in a human-readable form:
ParseCitrixLicense.exe by Helge Klein ======================================== License server hostname: srv1 License server port: 27000 [default] Vendor daemon: CITRIX ======================================== Vendor: CITRIX Expiration date: 06-feb-2009 No. of licenses: 5 Licensed feature: Citrix Presentation Server Enterprise|Concurrent User Software assurance expiry: 2008-02-06 Company name: sepago GmbH Vendor string: [empty] License sharing for the same client device: allowed Serial number: OR146610:845390 Date issued: 07-Mar-2007 Validity start date: 6-feb-2007 License type: NFR [Not for resale] Grace period: 30 days [default for all license files generated after August 19th, 2004] Licensed components: Enterprise, Advanced, Standard, Application Streaming Subscription advantage: no ---------- Unknown entries: ODP=0;AP=ADMIN/LOGON/-28D:NONADMIN/LOGON/ALW
As you can see, each field from the license file is shown with a short description and, where appropriate, a remark.
What is Missing
I have not (yet) been able to decipher all entries. I encourage anyone to point me into the right direction by commenting on this article. As soon as I figure out the meaning of the remaining fields I will post an updated version of ParseCitrixLicense.
These are the fields ParseCitrixLicense does not understand yet:
- AP=ADMIN/LOGON/-84D:NONADMIN/LOGON/-28D, or
Download and Requirements
ParseCitrixLicense requires the .NET framework 2.0. It is a command line tool that expects the path to a license file as the first (and only) argument. If called without parameters the following help screen will be shown:
ParseCitrixLicense.exe by Helge Klein ERROR: Please specify the name of the license file to be parsed on the command line! Example: ParseCitrixLicense.exe MyLicFile.lic
I have tested ParseCitrixLicense with various license files for Presentation Server 3.0, 4.0, 4.5 and XenApp 5.0. In case of problems please comment on this article.