Freeware ParseCitrixLicense Tool

ParseCitrixLicense displays the data stored in Citrix license files in a format easily readable by humans.

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?

ParseCitrixLicense

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:

  • ODP=0
  • AP=ADMIN/LOGON/-84D:NONADMIN/LOGON/-28D, or

    AP=ADMIN/LOGON/-28D:NONADMIN/LOGON/ALW, or

    AP=ADMIN/LOGON/ALW:NONADMIN/LOGON/-7D

  • CCUDURMIN=90

    (1.5 hours?)

  • CCUDURMAX=525600

    (365 days?)

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.