Deploy KMS server with vlmsd

IT, Others

KMS activates computers on a local network, eliminating the need for individual computers to connect to Microsoft. To do this, KMS uses a client-server topology. KMS client computers can locate KMS host computers by DNS or static configration. when server qualify for KMS activation, it can provide the activation service.

With this principle many people developed KMS activetools, but some of them works not very well. It is even worth to see Malicious code in these tools. vlmcsd provide a KMS server simulator write with C language, which under the GNU license. It is also multi platform, so it can runing in Windows, linux, MacOS.

Deploy KMS service

Take Linux (CentOS 6.5) as an example:

1.choose compatible binary according to system version and CPU type. For example, my OS is CentOS 6.5 and the hardware platform is KVM visual machine(intel CPU), I should choose vlmcsd-x64-musl-static in \binaries\Linux\intel\static.

2.create a new folder kms in /use/local.

mkdir -p /usr/local/kms

3.if binary is uploaded from local machine, it should have execute permission.

chmod u+x /usr/local/kms/vlmcsd-x64-musl-static the program


5.if you use iptables, you should open a port for this program

iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 1688 -j ACCEPT


you can use vlmcs to test

vlmcs-Windows-x64.exe -v address of kms server

if server is correctly setuped, you can see such informations


Start a Command Prompt as an Administrator, then type following command:

slmgr /skms address of kms serverslmgr /ipk xxxxx-xxxxx-xxxxx-xxxxx-xxxxxslmgr /atoslmgr /xpr

the kms client install key can be fond in Official Documents.


if you want to enable autostart, you can import following script:

#!/bin/sh# chkconfig: 2345 90 10# description: Start or stop the kms server#### BEGIN INIT INFO# Provides: vlmcsd# Required-Start: $network $syslog# Required-Stop: $network# Default-Start: 2 3 4 5# Default-Stop: 0 1 6# Description: Start or stop the kms server### END INIT INFO name=kms-servicepath=/usr/local/kms/bin=vlmcsd-x64-musl-static start(){$path$binRETVAL=$?if [ "$RETVAL" = "0" ]; thenecho "$name start success"elseecho "$name start failed"fi} stop(){pid=`ps -ef | grep -v grep | grep -v ps | grep -i "${bin}" | awk '{print $2}'`if [ ! -z $pid ]; thenkill -9 $pidRETVAL=$?if [ "$RETVAL" = "0" ]; thenecho "$name stop success"elseecho "$name stop failed"fielseecho "$name is not running"RETVAL=1fi} status(){pid=`ps -ef | grep -v grep | grep -v ps | grep -i "${bin}" | awk '{print $2}'`if [ -z $pid ]; thenecho "$name is not running"RETVAL=1elseecho "$name is running with PID $pid"RETVAL=0fi} case "$1" in'start')start;;'stop')stop;;'status')status;;'restart')stopstartRETVAL=$?;;*)echo "Usage: $0 { start | stop | restart | status }"RETVAL=1;;esacexit $RETVAL


, ,
Previous Post
Next Post
About ripping Alice to Zouroku

Leave a Reply

Your email address will not be published.

Fill out this field
Fill out this field
Please enter a valid email address.

This site uses Akismet to reduce spam. Learn how your comment data is processed.