py-kms is a port of node-kms created by cyrozap, which is a port of either the C#, C++, or .NET implementations of KMS Emulator. The original version was written by CODYQX4 and is derived from the reverse-engineered code of Microsoft's official KMS.
argparse
module installed.tzlocal
module is installed, the "Request Time" in the verbose output will be converted into local time. Otherwise, it will be in UTC.sqlite3
module so you can use the database function, storing activation data so it can be recalled again. sudo apt-get update
sudo apt-get install python3-tk python3-pip
sudo pip3 install tzlocal pysqlite3
sudo apt-get install python-tk python-pip
sudo pip install tzlocal pysqlite
NOTE: Pay attention to how invoke scripts, if you want to run with python2 use python...
while for python3 use python3...
, also depending on the Python versions that resides in your PC.
To start the server, execute python pykms_Server.py [IPADDRESS] [PORT]
, the default IPADDRESS is "0.0.0.0" ( all interfaces ) and the default PORT is "1688".
To run the client (only for testing purposes), use python pykms_Client.py [IPADDRESS] [PORT]
, with the same defaults of pykms_Server.py
.
To show the help pages type: python pykms_Server.py -h
and python pykms_Client.py -h
.
To generate a random HWID use -w
option: python pykms_Server.py -w RANDOM
.
To get the HWID from any server use the client, for example type: python pykms_Client.py 0.0.0.0 1688 -m Windows8.1 -V INFO
.
To change your logfile path use -F
option, for example: python pykms_Server.py -F /path/to/your/logfile.log -V DEBUG
.
To view a minimal set of logging information use -V MINI
option, for example: python pykms_Server.py -F /path/to/your/logfile.log -V MINI
.
To redirect logging on stdout use -F STDOUT
option, for example: python pykms_Server.py -F STDOUT -V DEBUG
.
You can create logfile and view logging information on stdout at the same time with -F FILESTDOUT
option, for example: python pykms_Server.py -F FILESTDOUT /path/to/your/logfile.log -V DEBUG
.
With -F STDOUTOFF
you disable all stdout messages (but a logfile will be created), for example: python pykms_Server.py -F STDOUTOFF /path/to/your/logfile.log -V DEBUG
.
With -F FILEOFF
you disable logfile creation.
Select timeout (seconds) for py-kms with -t0
option, for example python pykms_Server.py -t0 10
.
Option -y
enables printing asynchronously of messages (pretty / logging).
For launching py-kms GUI make executable pykms_Server.py
file with chmod +x /path/to/folder/py-kms/pykms_Server.py
, then simply run pykms_Server.py
double-clicking.
You can run py-kms daemonized (via Etrigan) using a command like: python pykms_Server.py etrigan start
and stop it with: python pykms_Server.py etrigan stop
.
With Etrigan you have another way to launch py-kms GUI (specially suitable if you're using a virtualenv), so: python pykms_Server.py etrigan start -g
and stop the GUI with python pykms_Server.py etrigan stop
(or interact with the EXIT button).
This project has docker image support. You can find all available image configurations inside the docker folder. There are three tags of the images available:
latest
, currently the same like minimal...minimal
, wich is based on the python3 minimal configuration of py-kms. This image does NOT include SQLLite support!python2
, which is fully configurable and equiped with SQLLite support and web interface.python3
, which is like the python2
tag - just with Python 3...If you just want to use the image and don't want to build them yourself, you can use the official image at the docker hub (pykmsorg/py-kms
).
To ensure that the image is always up-to-date you should check watchtower out!
Consult the Wiki for more information about activation with py-kms and to get GVLK keys.