Software Metering – Know what Software your Users actually use!

software usage metering

Dear JDisc friends,

we have extended our Measurement Add-On with the new capability of Software Metering or Software Usage Tracking. The goal is to identify software installed on client computers but rarely or never used. Just imagine users install costly software like Microsoft Visio, but never use it! The information on which user uses what software and how often is essential to optimize your license cost!

So how can JDisc Discovery obtain that information? Of course, you cannot get this information remotely via standard protocols such as WMI or SNMP. In any case, you will need a so-called agent – a piece of software that runs continuously on the target computer and tracks the applications which users start. Luckily, JDisc Discovery has the capability to deploy its zero-footprint agent on target computers. So far, the discovery process deploys the agent only for the duration of the scan (usually 3-10 minutes) and then uninstalls the agent again. So why not modify the agent in a way that it can be deployed permanently (or for a defined period like 6 months)?

So we modified our agent to be able to stay for a defined duration on the target computer to track usage. The agent then starts a process that is monitoring the processes on a computer and keeps track of when new processes are being started or existing processes are stopped.

But of course, you don’t want to track all kinds of processes (e.g. internal Windows processes or processes of freeware). We have implemented a template editor in order to define what you are actually looking for. A template defines what software/processes you are actually looking for. For instance, let’s create a template for Microsoft Office software including Microsoft Word, Microsoft Excel, Powerpoint, Outlook, and Visio.

Check out our Video

Check out our video to see the add-on in action.

Define your Template

A template defines a set of rules of what applications to monitor. A template can have rules for multiple applications. For instance – a Microsoft Office template might contain rules for Excel, Word, Powerpoint, Outlook, and Visio. Templates can then be applied to computers on the network. Once the template is applied, the monitoring of the configured processes starts on the target computers and then the data will be collected the next time the device gets scanned. It is possible to deploy multiple templates to devices (e.g. deploy a Microsoft Office Template and an Adobe template on a set of laptops).

First, we need to know the binary names for the executables for Microsoft Word, Excel, Powerpoint, Outlook, and Visio. So after a little investigation, we find out what the executable names are:

  • Microsoft Word: winword.exe
  • Microsoft Excel: excel.exe
  • Microsoft Powerpoint: powerpnt.exe
  • Microsoft Outlook: outlook.exe
  • Microsoft Visio: visio.exe

So far so good. But what happens when some other vendor has a tool which is using the same binary name like winword.exe? We would detect the binary name and count it as an actual Microsoft Word usage. For this reason, you can use more properties to check that you are looking at the right process. Each .exe can have a set of additional properties like description, name, version, etc.

Windows Word File Properties
Windows file properties for winwordexe

You can use the following properties to define your template:

  • process binary name
  • product name (from the file properties)
  • manufacturer (from the file properties – is for some strange reason not shown when you open the properties dialog for a binary)
  • version (from the file properties)
  • description (from the file properties)
  • process command line parameters
  • binary path (e.g. c:windowssystem32)
  • username (the user who executes a process)
  • user SID (the user’s SID who executes the process)
  • session ID
  • binary file size in bytes

But let’s start now with our first template. In this example, we define a template for Microsoft Office applications. Open the menu Measurement > Software Usage Metering > Manage Software Templates to define a new template, and modify or delete existing templates. Then click the Add button to add a new template.

Add a software metering template to the configuration.
Add a template

First, enter a meaningful name and a description. Once you have entered a name and description, you need to add the filter rules for the desired applications. Click on the Add button within the filter section to add new filters. Enter a filter name. In the screenshot below, we use Excel as an example.

Add Software Metering Filter in Excel
Excel Filter

Finally, we need to add the actual conditions for this filter. Remember, that we can use several criteria for detecting the relevant processes. In this case, we start by adding the first filter condition stating that the binary is excel.exe.

Microsoft Excel process condition.
Excel binary name condition

After adding an additional condition, we have defined the first filter for Microsoft Excel which checks for processes where the binary name contains excel.exe and where the product name contains Microsoft Excel.

First filter for Microsoft Excel
Êxcel Filter Conditions

It is important to understand, that you can define multiple filters for one specific application by using the same filter name. The filter name will be used in the reporting and identifies the application. This is important because some software vendors name their applications differently on 32 or 64-bit operating systems. So you might have two filter rules for the same application where the first rule covers the 32-bit version and the second one the 64-bit version.

Assign Templates to Devices

You can deploy the templates to your devices once all desired templates are defined. Assign templates from any device report by selecting the target computers and using the context menu Software Metering > Assign Templates

Assign software metering templates to devices
Assign templates

Configure the expiration date (the date when the measurement stops and the agent uninstalls itself without any user or discovery server interaction), and the polling interval (how often do we poll the process list to track software – default is 5 minutes). Finally, select the desired templates to deploy. When the assigned devices get scanned the next time JDisc Discovery deploys the agent automatically and configures the templates on the target computers. With every subsequent scan, JDisc Discovery picks up the measurement data collected so far.

Review collected Data

Review the software usage data for a particular device from the device details dialog. The Software Metering Events tab displays the list of all process started and stopped events together with its duration, CPU time for kernel and user, the process parameter, and the path.

The Software Metering Events tab and specific device software information
All Started and Stop events

The Software Metering Overview tab provides an aggregated view of the individual events. Check in the overview what application has been called how often and ran for how long on average. Use the All combo box to switch between an overall statistics and a daily statistics.

Software Metering Overview tab
Aggregated view on the usage

There are also some global reports that provide information on what application has been used on how many devices. Another report lists the devices together with a status and configuration of the templates for each device.

We hope you like this new feature. Stay tuned.


About The Author

Thomas Trenz
I own and manage JDisc and its network inventory and discovery products. Before I started JDisc, I worked quite a long time for Hewlett-Packard developing software for network assessments and inventory projects. Feel free to contact me on Linked-In or Xing.

Leave A Comment

Der Zeitraum für die reCAPTCHA-Überprüfung ist abgelaufen. Bitte laden Sie die Seite neu.