I am working with a vendor who is supplying a server-based application which requires licensing for activation. There are two options, software-based licensing and hardware (USB-dongle) based activation. What are the pros and cons to using hardware or software license keys in an environment where the application software is running on a VMware based server? The USB hardware license key will be plugged into one of these: https://www.digi.com/products/usb/anywhereusb

There are two applications which are being licensed: Vendor: Iconics Software:GENESIS32 SCADA platform Vendor: Rockwell Automation Software: FactoryTalk (RSLinx)

This is the reasoning the vendor gave for their preference for hardware keys:

We have found that hardware keys are more stable than software keys, especially in a VM environment. Software keys are usually attached to the hard drive or NIC id of a computer. Any time this number changes (hard drive failure, VM reconfiguration, etc) the license is lost and needs to be reloaded with the help of the manufacturer. Today’s licensing is done over the internet, and most servers do not have internet access, so dealing with licensing issues has become a major headache. Hardware keys work well for the VMs because they don’t reside on the VM. If you have an image failure or other server failure, you can copy in a new image, point to the license key, and you are up and running.

  • Who is the software vendor?
    – ewwhite
    Feb 18 '13 at 16:03
  • @ewwhite Updated with vendor/software information. Feb 19 '13 at 13:36

The hardware keys add an extra point of failure. I've seen them break. When they do break, you can't log into your card swipe system and give new people access to the building. sigh

Always go software key if you have the choice. FlexLM (one of the more common license servers) for example is a real pain in the ass, but once it's up and running, you don't have to worry about it. With a hardware key, you have to worry about the key failing, the USBAnywhere failing, the USBAnywhere software failing, etc.

I've used those USBAnywhere devices and they've been pretty solid, but I'd still prefer software keys 10 out of 10 times.


See: Cross platform support for network attached USB hubs?

All-else equal, you want the flexibility of a software key. Going through this effort using a USB dongle reduces your system portability and doesn't offer much upside.

Many software manufacturers have wisened up to the fact that people are going fully-virtual and want to leverage their vMotion-like capabilities. If given the option for a software-based licensing scheme, use it!


Software keys are usually attached to the hard drive or NIC id of a computer. Any time this number changes (hard drive failure, VM reconfiguration, etc) the license is lost and needs to be reloaded with the help of the manufacturer.

The NIC id of a computer (Also known as the MAC address) should not change in a VM environment. In addition, you can often assign the MAC address to match the MAC address within the license file. The MAC address can usually be fudged in the Operating system (I do it on Linux).

A license server which relies on a the hardcoded ID of a harddrive is asking for trouble-- Drive failures are inevitable, RAID arrays are common, and it's normal to replace drives time to time.

It would seem that a USB dongle would be more prone to failure then just about anything else.

We manage about 20 license servers, and all of them rely on the MAC address or a simpler mechanism.

  • 1
    Not quite true. The NIC can change in a VM environment, at least under certain circumstances. I have a live migration server (Hyper V) which causes issues after failover. In our case, we're looking into specifying MAC in our config files to try and solve the issue. Should work, but I have other issues to worry about for now.
    – Insomnia
    Feb 18 '13 at 18:13
  • Well, I said "should not". not "will not" :) It certainly can happen, but a VM image should the same MAC even if it's moved to a different VM. Feb 19 '13 at 2:26

I realize your question is in a VMware environment but I think the general question is relevant to other virtualization platforms including Hyper-V.

I recently virtualized an aging server that ran a service dependent upon hardware USB-based licensing keys and found that they do not work natively in a Hyper-V environment. The Hyper-V Deployment Guide has this to say:

No access to a physical COM port is available from a virtual machine.

You can connect your virtual machine's COM port to named pipes but apparently not to actual serial ports. Apparently this is primarily a debugging feature. You can provide access for a virtual machine to a serial port using a COM port re-director such as KernelPro's USB over Ethernet.

Additionally the software and drivers for the licensing key need to support being installed on Window Server and in our case on Server Core if you want the licensing key to be installed on the host server.

I ended up installing the licensing key and software on a workstation and then using it as that site's "licensing server". This adds about ten different things that can now break this software. A software-based licensing key would of saved me much trouble and I suspect be a more reliable solution.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.