Free Tool to Help You Better Understand What is Inside a Citrix License File

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?

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

Download ParseCitrixLicense, version 1.0, x86

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.

Comments

Related Posts

Batch Delete Issued Citrix User/Device Licenses with Udadmin

Udamin.exe is a handy tool for managing Citrix user/device licenses. To get a list of currently issued licenses run it like this: C:\Program Files\Citrix\Licensing\LS>udadmin.exe -list Usage data is 15 minutes old. Next update in 1 minutes. Users: username1 XDT_PLT_UD 2013.0815 username2 XDT_PLT_UD 2013.0815 Devices: computername1 XDT_PLT_UD 2013.0815 computername2 XDT_PLT_UD 2013.0815 You can delete individual license assignments like this:
Citrix/Terminal Services/Remote Desktop Services

Free Tool: Refresh the Desktop Programmatically

I recently had the requirement to refresh the Windows desktop after certain changes had been made to Explorer’s registry entries. This seems simple at first: klick on any item on the desktop and then press F5. It wasn’t, though. The registry changes would be made upon logon by a software installation agent. It was expected by the customer that the end user see the the effects of the change immediately without any user intervention. That sent me hunting for a solution on the internet. I came across many forum posts that showed that many others already had exactly the same requirement. Interestingly, none of the proposed solutions actually worked. Except for one, which I found at last.
Helge's Tools

Latest Posts