Programs Window

The Programs window lists all of the programs known to your KeyServer and includes various details gathered from the actual executable program files that have been used or installed on computers at your site. Rather than list every distinct version separately, each record in the Programs window is a program variant that typically serves as the representative for several versions of the same program. Items are automatically added to the window as KeyAccess takes note of program launches and performs audits for installed software on client computers. In order to observe or manage usage of a discovered program, however, it must first be associated with a Product. Only then will the program be included in standard audit reports and be eligible for management by a Policy that observes or manages the product and its underlying programs.


There are several ways that programs can be added to the Programs window. When KeyAccess reports a launch of a previously unknown program, this program is added to the list and will appear with a pink filter icon in the Folder column to show that it has been newly discovered. Likewise, programs found during a software audit are added to the list and marked with this icon. With a well defined set of rules, discovered programs can be automatically filed into an appropriate folder whenever the filter conditions of the rule are matched. The pink filter icon still indicates that no explicit administrative attention has been given to this program – the assignment to any particular folder was automated. You can use the context menu (right-click) to select "acknowledge" and freeze the folder location of a program item and then the pink filter icon will disappear – rules will no longer apply to this item which has been "acknowledged".

On the computer running KeyConfigure, you can manually add an item to the Programs window by selecting an executable file on any mounted volume and then dragging it into the window. If the program is already known by the KeyServer, the window will scroll to reveal the program's entry, otherwise a new entry will be added. In this case the program will not receive the pink discovered icon since the record has been created explicitly. In a similar manner, when using "Key a program..." from the KeyConfigure file menu, a new record for the keyed program will be added to the programs list unless the record is already there.

Program records will also be added as necessary to support any newly added Products. Products can be automatically added by the Product Recognition Service. Usually, Products will be added because you already have some Programs that are part of the Products. However, it's possible that you have some Programs in a Product but not others, so adding the Product will add the additional Programs.

Program Families, Variants, & Versions

KeyServer collects detailed information about each distinct version of every program discovered on every client computer. For simplicity in managing programs, the items you see listed in the programs window are not the fully distinguished specific versions – instead each line represents a 'Program Variant'. A program variant groups together multiple specific versions of a program so the full detail of which precise version is installed or used is masked out while revealing just the major digits of version information in the the Variant field.

• Program Family

A “program family” consists of all versions of a program. All program files that have the same “program Identifier” are considered to be in the same family. On Windows, the program identifier is based on the file property called “Original File Name”. On Macintosh, the identifier is the four character application signature plus the four character file type (usually “APPL”). For KeyServer purposes, Windows and Macintosh programs are always considered to be in different families (e.g., all versions of Excel on Windows are in one family, while all versions of Excel on Macintosh are in a different family). Platform icons indicate the operating system – Windows, Macintosh, or Linux – for each program listed in the Programs window.

The name displayed in a program record is taken from the particular program file that was discovered first in the family. On Windows the name comes from the “Product Description” field that can be seen as a file property under the Version tab. If this field is empty, the file name is used (displayed in italic font). On Mac, the file name comes from the Info.plist located within the application bundle. In either case, KeyConfigure attempts to strip off any version suffix (numeral characters) that came from the particular sample file so that the family name can be used generically for any family member. Note: sometimes the program name determined by this method will be misleading, so it is often wise to cross-check by taking note of the path where a program has been discovered and then customize the program name field as necessary.

• Program Variant

Newly discovered programs usually appear in the Programs window initially as a family 'Variant'– i.e. as a single record representing the entire family. This undistinguished family variant first appears in the Programs window with nothing shown in the Variant column. As soon as more than one version has been discovered, the Variant column will display the text “all...” in a light grey font as an indication that the family is still undistinguished but 2 or more distinct versions belonging to the family have been discovered.

For the bulk of all discovered executable program files, there is no reason to list distinct versions separately in the programs window and the undistinguished program variants can be safely ignored by most reports and management policies. But for an explicitly purchased product, the software license almost never covers an entire undifferentiated program family! – the product licensing rights will be restricted to some specified version(s) of the the underlying application program(s). The required variants must be distinguished within the family before accurate purchase data can be recorded and before appropriate management policies can be configured.

KeyConfigure gives you a way to split the undifferentiated family variant so that each major version of the program appears as a distinct variant in the Programs window. Generally, only the leading digits that precede the first decimal point in a version number will suffice to separate a family into variants while subsequent digit are masked out – but the inclusion of digits to the second decimal point or even further is occasionally required.

This separation of a program family into multiple variants happens automatically whenever you get product definitions from Sassafras via the Product Recognition Service. Also, when using the 'New Product ...' wizard to create your own product definitions, if an undifferentiated family variant is specified as a component of a product, then the wizard will split the family at the first decimal point and suggest one of the resulting variants instead.

• Program Version

The "program version" of each executable file recorded in the programs database is taken directly from the Version resource as assigned by the developer of the program. If the developer does not assign a version, KeyServer will record it as version For the vast majority of programs, the family identifier together with the complete version number will fully identify distinct executables. There are some cases, however, where distinct executable files identify themselves with the same version number! In these cases, the size of the executable file can be recorded in order to distinguish among them. In the Programs window, as in most views of the program database, KeyConfigure aggregates several minor versions of a program and displays them as a single item –  but a raw list enumerating every program version that has ever been discovered in each family can be displayed in various detail windows and audit reports configured with custom options.


The Status column indicates whether a program is referenced as a component of any product listed in the Products window.

application Application - associated with one or more Products as an Application component. Programs with status 'Application' will appear in standard audit reports, and furthermore may be observed or managed, depending on how Policies are configured for an associated Product.

utility Utility - associated with one or more Products, but only as a Utility component. Programs with status 'Utility' will not appear in standard audit reports, nor will usage be observed or managed even if there are Policies configured for an associated Product. The only purpose of having Utilities is to keep track of an association between a mostly uninteresting Program, and a more interesting Product. Besides this association, Utility programs are treated just like Ignored programs, described below.

ignored Ignored - not associated with any Products. Standard audit reports "ignore" these programs even though audit data is collected (including the last usage time) for all programs on all clients. The Audit report only reports on Applications by default, but this can be changed using options. Also, the "installs" button, available from each Program details window, will display all programs. Usage of programs with status 'Utility' or 'Ignored' is not logged on client computers – so these programs will not be mentioned in any usage reports.

It is possible to change the Ignored status of a program by adding it to a "catch-all" product that references a miscellany of programs in order to include them in various reports. But you should only define products that reference programs that you are truly interested in. System Utilities, Screen savers, and Control Panels are probably not very interesting, and can be Ignored. Minimizing the number of Product definitions will help make audit reports more meaningful.


Newly discovered programs will remain unacknowledged (with a pink filter icon in the Folder column) until they are acknowledged by an Administrator. This gives you a way of noticing new arrivals that may need management attention. There are two ways to acknowledge a program. The simplest is to right-click the program and select “Acknowledge”. This will not change the folder which the program is in - it will merely change the program from unacknowledged to acknowledged. The program will also be acknowledged if you make a product for the program, or move it to a different folder. Any explicit configuration decision about the program implies acknowledgement.

Organizing / Filtering the Programs List

The Display column on the left of the Programs window is used to restrict the program list on the right to a selected subset. The default view hides Ignored items but shows all other programs. If check marks appear in more than one of the left side selection panes, any displayed item must simultaneously satisfy the selected display criteria within all such panes. Clicking on the double-check icon that appears between the Display pane and the Program list pane will toggle between the current selection, and this default state.

Context Menu Actions

Right-clicking on a selected Program in the Programs window allows you to to access information related to the selection.

Drag and Drop Actions

Generally, whenever an icon for an object appears in the user interface it means that the item can be dragged onto any target willing to accept it. The platform icon appears in front of each program variant listed in the Programs window and these items can be dragged and dropped onto many appropriate targets: