How to limit software version updates to users with valid maintenance agreements

By Mike Wozniak  |  Software Licensing Tips

Posted:  November 8

Regularly updating an application is almost always an inescapable requirement in the life cycle of a successful software product.  Accordingly, if your application is dynamic in nature and you anticipate offering your customers new features on a periodic basis, a software maintenance subscription lets you market new releases of your software product on a transaction fee or subscription basis.

Stopping Customers from Installing if Their Maintenance Agreement has Expired

So how do you make it easy for your paying customers to install the regular updates, while making it difficult for customers with expired maintenance plans to install the updates if they both have some access to the new installer?  The answer is easy: simply track the software maintenance expiration date in the application’s license file along with the other license parameters and fingerprint data.

Because the license file will often contain the machine fingerprint of the activated computer, it will be unique for every installation of your software. When this license is created in the license server, simply include the expiration date of the software maintenance and be sure the activation process includes this date. The local license file can then contain the expiration date of the maintenance.

Compare the Software Build Date to the Maintenance Expiration Date

The next step is to modify your software build process to include a hard-coded release date somewhere in the source code or resource.  Once the local license file contains the maintenance expiration date and the software contains the build or release date, all you have to do is compare the two dates to see if the build was released after the customer’s maintenance expired.


Let’s say that today is November 1st and the customer’s maintenance expired on October 1st.   When you create a new build of your software today, it will contain November 1st as the build / release date.   Since the customer’s software maintenance expired before the release date, they are technically not eligible to run this version of the software.

The date comparison can take place inside of the installer before the user is even allowed to install the software, or it can be done when the software is first executed.


By simply adding the customer’s software maintenance expiration date in their local license file during activation along with adding a build date in the software binary, a simple date comparison can catch customers who are trying to install a newer build of your software on a computer for which it is not licensed.

Be sure that the software has the ability to “refresh” the license periodically so that when the central licensing server is updated after the customer purchases a subscription renewal, the local license file can be kept synchronized. This will allow for the continued enjoyment of your software updates by a paying customer.

The SoftwareKey System has features to allow you to restrict customers with expired maintenance plans from installing new versions of your software. Feel free to contact us if you are interested in how we can help you with this process.

About the Author

Mike Wozniak is the founder of and responsible for marketing, content and product strategy. When he isn't plotting new ways to help customers solve licensing and business automation challenges, he likes to travel and entertain guests who come to visit the Orlando area.

Mike Wozniak


Related Posts

3 Steps to Validate Software Licensing, Protect Profits, and Keep Customers Happy

3 Steps to Validate Software Licensing, Protect Profits, and Keep Customers Happy
{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}