I am after a magical piece of software that will meet the following impossible requirements:
- Not require Micro$oft $erver.
- Automatically track licenses and license keys of all commercial software installed on computer (especially Micro$oft).
- Open source obviously preferred, but if a good non-free solution exists, that would be OK.
- Required so that we can be sure we are not exceeding the maximum number of licenses allowed for various software on 40+ Windows computers.
- In particular, Microsoft products (e.g. Office) are our biggest immediate concern.
- Convert all our Windows users to Linux. Err... Ok, maybe not.
Complications
Our requirements made complicated by several findings:
- We need to track individual licenses, not the total count of installations, because we have different volume liceses for the same product.
- When purchasing several laptops at the same time from a single vendor (e.g. Dell), they often have the same installation of Windows, including the same OEM license key - so the license of the installed Windows does not match the sticker on the computer.
- Mistakes we have made in the past in installing software using the wrong software key, because we haven't kept track of our licenses.
Networked Solutions
ocsi-ng
- Seems to have a habit of breaking in weird and wonderful ways.
- It doesn't keep track of licenses only installed software.
- The authors don't appear enthusiastic in changing this, or even assisting others to change this.
- Gets confused with dual boot windows/linux machines, and treats them as duplicate machines sharing the same ethernet & IP addresses.
glpi
- Data must be entered manually, and the interface is very clumsy.
- Suppose to support import automatically from ocsi, but as far as I can tell it only synchronises the computer name (and also gets confused with dual boot machines).
- Database schema almost but doesn't quite meet our requirements.
10-Strike
http://www.10-strike.com/networkinventoryexplorer/
- Stand alone windows program.
- Easy to use.
- Stracks hardware and software.
- Obtains sofware list from Windows registry.
- Doesn't obtain license information.
- Doesn't keep track of maximum number of licenses available.
- Uses remote WMI calls.
SNMP
- Data might be available via SNMP, but this may not include product keys.
Manage Engine
http://manageengine.adventnet.com/products/service-desk/software-license-tracking.html
Is Java based and as such works with Linux
Linux has reduced functionality (domain searches don't work).
It was a struggle to get agent deployment working from the Windows server, and I gave up trying to get it going from Linux. From Linux it kept trying to connect to port 11000 (or 1100?) and getting Connection Refused.
I suspect since it was written, default Windows settings have changed (probably to make it more secure?) and as such they have to be changed back again on every client to allow this to work via WMI (or whatever it is called). Other packages that used WMI didn't have this problem.
Can audit Linux machines via telnet. No ssh support.
Doesn't track individual licenses, only total counts (as above).
WMI
You can collect computer information remotely (and locally) using WMI. Here is a link to an example script. Change strComputer from "." to the name of the computer you wish to connect to. http://msdn2.microsoft.com/en-us/library/aa394588.aspx
Microsoft has a tool (Scriptomatic) for generating the code for WMI scripts. http://www.microsoft.com/downloads/details.aspx?FamilyID=09dfc342-648b-4119-b7eb-783b0f7d1178&DisplayLang=en
Other
Various solutions at http://www.bsa.org/
The ones I tried:
- Require Windows for the server (not Windows Server though). I think I could live with this, but not really ideal.
- Work by determining count(office installations) > count(office licenses) this won't work when we have different sets of Office licenses, each with different requirements.
Standalone solutions
Solutions that work on individual computers, and don't support networked operation "out of the box".
Produkey
ProduKey v1.06 Copyright (c) 2005 - 2006 Nir Sofer Web Site: http://www.nirsoft.net/
- Good at extracting license keys (although in some cases it reports old software that has been replaced with newer software).
- Needs to be run manually on every computer.
- Results need to be analysed manually.
- Manual process doesn't work, we can't keep up with the rate of change.
- Requires kicking each user off their machine for several minutes to run manually.
- Might be possible to have ocsi automatically run it, but automatically retrieving results might be difficult (I don't know of anyway of mapping a network share from a DOS batch file without potentially interfering with any network shares that are already mapped).
- Reports old software that has been replaced (e.g. Office 2003 after upgrade to Office XP).
Magic Jelly Beans
http://www.magicaljellybean.com/keyfinder.shtml
- Similar to Produkey.
- Supports changing Windows license key.
Belarc
http://www.belarc.com/free_download.html
- Strict license in free version, only allows running on one computer.
Other
Changing Windows license key is possible:
Solutions to similar problems
wpkg
- Very insecure - would be easy for an attacker to get SYSTEM access to every computer (unless using active directory or some other means to authenticate remote server).
wsus
- Requires active directory, if not Microsoft Server 2003.
- Haven't looked any further. Yet.
Goodbye windows
- http://goodbye-windows.com/
- This would solve all our problems, but unfortunately many people wont accept this is a solution :-(.
Unattended/Diegostart
- For installing new windows systems,
- I haven't investigated these yet, would be curious how they cope with installing difference license keys on different computers.
- Quick glance would suggest both assume that the local network is completely trusted, similar to wpkg.
References
- Brian May, "tracking windows licenses from Linux" luv, 2007-07-05