mirror of
https://github.com/Wind4/vlmcsd.git
synced 2025-06-22 01:23:40 +02:00
Add .gitignore
This commit is contained in:
@ -1,335 +0,0 @@
|
||||
VLMCS(1) KMS Activation Manual VLMCS(1)
|
||||
|
||||
|
||||
|
||||
NAME
|
||||
vlmcs - a client for testing and/or charging KMS servers
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
vlmcs [ options ] [ target ] [ options ]
|
||||
|
||||
target can be one of the following:
|
||||
|
||||
hostname|ipaddress[:tcp-port] to query a specific KMS server
|
||||
(example: vlmcs kms.example.com:1688).
|
||||
.domain to automatically detect KMS servers via DNS for domain
|
||||
(example: vlmcs .example.com). Please note the dot before
|
||||
domain.
|
||||
- (a single dash) to detect KMS servers in your own domain.
|
||||
|
||||
If you use ipaddress:port as the target, the ipaddress must be enclosed
|
||||
in brackets if it contains colons, e.g. [2001:db8:dead:beef::1]:1688.
|
||||
If you use a link-local IPv6 address on Unix systems, you must append a
|
||||
percent sign and the interface identifier of the source interface, for
|
||||
example fe80::dead:beef%eth0.
|
||||
|
||||
If you omit the target, 127.0.0.1:1688 will be used except if you use
|
||||
-i6. In this case the default target is [::1]:1688.
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
vlmcs is a program that can be used to test a KMS server that provides
|
||||
activation for several Microsoft products. The KMS server may also be
|
||||
an emulator. It supports KMS protocol versions 4, 5 and 6.
|
||||
|
||||
vlmcs generates one or more activation requests for a Microsoft KMS
|
||||
product and sends it to a KMS server. It then analyzes and displays the
|
||||
responses of the KMS server.
|
||||
|
||||
vlcms checks both the DCE-RPC protocol and the activation message for
|
||||
correctness and reports any errors that it finds.
|
||||
|
||||
vlmcs can also be used to "charge" a KMS server. A Microsoft KMS server
|
||||
sends correct activation messages only if it detects a certain minimum
|
||||
of clients (25 for Windows client OSses, 5 otherwise) on the network.
|
||||
This is Microsoft's futile attempt to prevent running a KMS server in a
|
||||
home environment.
|
||||
|
||||
|
||||
OPTIONS
|
||||
-h or -?
|
||||
Show help.
|
||||
|
||||
|
||||
-V Displays extended version information. This includes the com-
|
||||
piler used to build vlmcs, the intended platform and flags (com-
|
||||
pile time options) to build vlmcs. If you have the source code
|
||||
of vlmcsd, you can type make help (or gmake help on systems that
|
||||
do not use the GNU version of make(1) by default) to see the
|
||||
meaning of those flags.
|
||||
|
||||
|
||||
-x Show valid applications that can be used with -l.
|
||||
|
||||
|
||||
-e Show some examples how to use vlmcs correctly.
|
||||
|
||||
|
||||
-v Be verbose. Instead of just displaying the returned ePID and the
|
||||
HwId (protocol v6 only) vlmcsd shows all details of the query
|
||||
and the response.
|
||||
|
||||
|
||||
-l application
|
||||
Request activation for a specific application. Valid applica-
|
||||
tions can be displayed by using -x. The default application is
|
||||
Windows Vista Business. The list of available applications is
|
||||
not complete. You may supply GUIDs with -a, -k and -s to specify
|
||||
applications that are not listed with -x. The -l option is used
|
||||
as a shortcut for the most common applications.
|
||||
|
||||
|
||||
-K protocol-version
|
||||
Force a specific version of the KMS protocol. Valid versions are
|
||||
4.0, 5.0 and 6.0. The default is to select a suitable version
|
||||
according to the application selected. You may use -K to send an
|
||||
incorrect protocol version to the KMS server and see how it
|
||||
behaves. Genuine KMS servers return HRESULT 0x8007000D if the
|
||||
KMS protocol is not 4.0, 5.0 or 6.0. Emulators should do the
|
||||
same. When sending a request with an incorrect protocol number,
|
||||
vlmcs ignores the minor protocol number (e.g. sends a v4 request
|
||||
for version 4.1). If the major version number is less then 4, it
|
||||
sends a v4 request. If the major version is greater then 6, it
|
||||
sends a v6 request. In any case the protocol-version as speci-
|
||||
fied by -K is put in the version fields of the request.
|
||||
|
||||
|
||||
-4, -5 and -6
|
||||
Force version 4, 5 or 6 of the KMS protocol. These options are
|
||||
actually shortcuts of -K 4.0, -K 5.0 and -K 6.0.
|
||||
|
||||
|
||||
-j filename
|
||||
Use KMS data file filename. By default vlmcs contains product
|
||||
data that is recent when vlmcs was compiled. You may use a more
|
||||
recent KMS data file that contains additional products.
|
||||
|
||||
If vlmcsd has been compiled to use a default KMS data file, you
|
||||
may use -j- to ignore the default configuration file.
|
||||
|
||||
|
||||
-m Let the client pretend to be a virtual machine. Early versions
|
||||
of Microsoft's KMS server did not increase the client count if
|
||||
the request came from a virtual machine. Newer versions ignore
|
||||
this flag.
|
||||
|
||||
|
||||
-d Use NetBIOS names instead of DNS names. By default vlmcsd gener-
|
||||
ates some random DNS names for each request. If you prefer Net-
|
||||
BIOS names, you may use -d. A real Microsoft activation client
|
||||
uses DNS names or NetBIOS depending on the client name configu-
|
||||
ration. KMS servers treat the workstation name as a comment that
|
||||
affects logging only. Clients will be identified by a GUID that
|
||||
can be specified using -c. -d has no effect if you also specify
|
||||
-w.
|
||||
|
||||
|
||||
-a application-guid
|
||||
Send requests with a specific application-guid. There are cur-
|
||||
rently only three known valid application-guids:
|
||||
|
||||
|
||||
55c92734-d682-4d71-983e-d6ec3f16059f (Windows)
|
||||
59a52881-a989-479d-af46-f275c6370663 (Office 2010)
|
||||
0ff1ce15-a989-479d-af46-f275c6370663 (Office 2013)
|
||||
|
||||
|
||||
A Microsoft KMS server uses these GUIDs to have seperate coun-
|
||||
ters for the already activated clients. A client that does not
|
||||
contact the KMS server within 30 days will be deleted from the
|
||||
database. Emulated KMS servers are always fully charged.
|
||||
|
||||
|
||||
-k kms-guid
|
||||
Send requests with a specific kms-guid. A Microsoft KMS server
|
||||
uses these GUIDs as a product id to decide whether to grant
|
||||
activation or not. A list of current kms-guids can be found in
|
||||
kms.c (table KmsIdList). Emulated KMS servers grant activation
|
||||
unconditionally and do not check the kms-guid.
|
||||
|
||||
|
||||
-s activation-guid
|
||||
The activation-guid defines the actual product, e.g. "Windows
|
||||
8.1 Professional WMC KMSCLIENT edition". A activation-guid maps
|
||||
1:1 to a product key. However, neither a Microsoft KMS server
|
||||
nor emulated servers check this id. The activation-guid is use-
|
||||
ful in logging to get a specific product description like "Win-
|
||||
dows 8.1 Professional WMC". A list of current activation-guids
|
||||
can be found in kms.c (table ExtendedProductList).
|
||||
|
||||
|
||||
-n requests
|
||||
Send requests requests to the server. The default is to send at
|
||||
least one request and enough subsequent requests that the server
|
||||
is fully charged afterwards for the application-guid you
|
||||
selected (explicitly with -a or implicitly by using -l).
|
||||
|
||||
|
||||
-T Causes to use a new TCP connection for each request if multiple
|
||||
requests are sent with vlmcsd. This is useful when you want to
|
||||
test an emulated KMS server whether it suffers from memory
|
||||
leaks. To test for memory leaks use -n with a large number of
|
||||
requests (> 100000) and then test twice (with and without -T).
|
||||
This option may become neccessary for future versions of Micro-
|
||||
soft's KMS server because multiple requests with different
|
||||
clients-guids for the same kms-id-guid are impossible in a real
|
||||
KMS szenario over the same TCP connection.
|
||||
|
||||
|
||||
-c client-machine-guid
|
||||
Normally vlmcs generates a random client-machine-guid for each
|
||||
request. By using this option you can specify a fixed client-
|
||||
machine-guid This causes a Microsoft KMS not to increment its
|
||||
client count because it receives multiple requests for the same
|
||||
client. Thus do not use -c if you want to charge a real KMS
|
||||
server.
|
||||
|
||||
|
||||
-o previous-client-machine-guid
|
||||
If the client-machine-guid changes for some reason, the real KMS
|
||||
client stores a previous-client-machine-guid which is sent to
|
||||
the KMS server. This happens rarely and usually
|
||||
00000000-0000-0000-0000-000000000000 is used. You can use -o to
|
||||
specify a different previous-client-machine-guid.
|
||||
|
||||
|
||||
-G filename
|
||||
Grabs ePIDs and HWIDs from a KMS server and writes the informa-
|
||||
tion to filename in format suitable to be used as a configura-
|
||||
tion file (aka ini file) for vlmcsd(8). This is especially use-
|
||||
ful if you have access to a genuine KMS server and want to use
|
||||
the same data with vlmcsd(8).
|
||||
|
||||
If filename does not exist, it will be created. If you specify
|
||||
an existing filename, it will be updated to use the information
|
||||
received from the remote KMS server and a backup filename~ will
|
||||
be created.
|
||||
|
||||
-G cannot be used with -l, -4, -5, -6, -a, -s, -k, -r and -n
|
||||
|
||||
|
||||
-w workstation-name
|
||||
Send requests with a specific workstation-name. This disables
|
||||
the random generator for the workstation name. Since it is a
|
||||
comment only, this option does not have much effect.
|
||||
|
||||
|
||||
-r required-client-count
|
||||
Also known as the "N count policy". Tells the KMS server that
|
||||
successful activation requires required-client-count clients.
|
||||
The default is the required-client-count that the product would
|
||||
need if the request was a real activation. A Microsoft KMS
|
||||
server counts clients up to the double amount what was specified
|
||||
with -r. This option can be used to "overcharge" a Microsoft KMS
|
||||
server.
|
||||
|
||||
|
||||
-t status
|
||||
Reports a specific license status to the KMS server. status is a
|
||||
number that can be from 0 to 6. 0=unlicensed, 1=licensed, 2=OOB
|
||||
grace, 3=OOT grace, 4=Non-genuinue grace, 5=notification,
|
||||
6=extended grace. Refer to TechNet <http://
|
||||
technet.microsoft.com/en-us/library/ff686879.aspx#_Toc257201371>
|
||||
for more information. A Microsoft KMS server collects this
|
||||
information for statistics only.
|
||||
|
||||
|
||||
-g binding-expiration
|
||||
This tells the KMS server how long a client will stay in its
|
||||
current license status. This can be the remaining OOB time (the
|
||||
grace peroid that is granted between installation of a product
|
||||
and when activation is actuall required) or the remaining time
|
||||
when KMS activation must be renewed. binding-expiration is
|
||||
specified in minutes. A Microsoft KMS server apparantly does not
|
||||
use this information.
|
||||
|
||||
|
||||
-i protocol-version
|
||||
Force the use of Internet protocol protocol-version. Allowed
|
||||
values are 4 (IPv4) and 6 (IPv6). This option is useful only if
|
||||
you specfiy a hostname and not an ip-address on the command
|
||||
line.
|
||||
|
||||
|
||||
-p Do not set the RPC_PF_MULTIPLEX flag in the RPC bind request.
|
||||
This can be used to test if the KMS server uses the same setting
|
||||
of this flag in the RPC bind respone. Some KMS emulators don't
|
||||
set this correctly.
|
||||
|
||||
|
||||
-N0 and -N1
|
||||
Disables (-N0) or enables (-N1) the NDR64 transfer syntax in the
|
||||
RPC protocol. Disable NDR64 only in case of problems. If NDR64
|
||||
is not used, vlmcs cannot detect many RPC protocol errors in KMS
|
||||
emulators. If you want to test whether a KMS emulator fully sup-
|
||||
ports NDR64, you must use the -n option to send at least two
|
||||
requests. This is because Microsoft's client always sends the
|
||||
first request using NDR32 syntax and subsequent requests using
|
||||
NDR64 syntax.
|
||||
|
||||
|
||||
-B0 and -B1
|
||||
Disables (-B0) or enables (-B1) bind time feature negotiation
|
||||
(BTFN) in the RPC protocol. Disable BTFN only in case of prob-
|
||||
lems. If BTFN is not used, vlmcs cannot detect many RPC protocol
|
||||
errors in KMS emulators.
|
||||
|
||||
|
||||
Options that do not require an argument can be specified together with
|
||||
a single dash, e.g. vlmcs -6mvT. If you specify an option more than
|
||||
once, the last occurence will be in effect.
|
||||
|
||||
|
||||
FILES
|
||||
vlmcsd.ini(5)
|
||||
|
||||
|
||||
EXAMPLES
|
||||
vlmcs kms.example.com
|
||||
Request activation for Windows Vista using v4 protocol from
|
||||
kms.example.com. Repeat activation requests until server is
|
||||
charged for all Windows products.
|
||||
|
||||
|
||||
vlmcs -
|
||||
Request activation for Windows Vista using v4 protocol from a
|
||||
KMS server that is published via DNS for the current domain.
|
||||
|
||||
|
||||
vlmcs .example.com
|
||||
Request activation for Windows Vista using v4 protocol from a
|
||||
KMS server that is published via DNS for domain example.com.
|
||||
|
||||
|
||||
vlmcs -6 -l Office2013 -v -n 1
|
||||
Request exactly one activation for Office2013 using v6 protocol
|
||||
from localhost. Display verbose results.
|
||||
|
||||
|
||||
vlmcs kms.bigcompany.com -G /etc/vlmcsd.ini
|
||||
Get ePIDs and HWIDs from kms.bigcompany.com and create/update
|
||||
/etc/vlmcsd.ini accordingly.
|
||||
|
||||
|
||||
BUGS
|
||||
Some platforms (e.g. Solaris) may have a man(7) system that does not
|
||||
handle URLs. URLs may be omitted in the documentation on those plat-
|
||||
forms. Cygwin, Linux, FreeBSD and Mac OS X are known to work correctly.
|
||||
|
||||
|
||||
AUTHOR
|
||||
Written by Hotbird64
|
||||
|
||||
|
||||
CREDITS
|
||||
Thanks to CODYQX4, crony12, deagles, DougQaid, eIcn, mikmik38, nos-
|
||||
ferati87, qad, Ratiborus, vityan666, ...
|
||||
|
||||
|
||||
SEE ALSO
|
||||
vlmcsd(7), vlmcsd(8), vlmcsdmulti(1)
|
||||
|
||||
|
||||
|
||||
Hotbird64 November 2016 VLMCS(1)
|
559
man/vlmcs.1.html
559
man/vlmcs.1.html
@ -1,559 +0,0 @@
|
||||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Sat Oct 20 09:49:39 2018 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title>VLMCS</title>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1 align="center">VLMCS</h1>
|
||||
|
||||
<a href="#NAME">NAME</a><br>
|
||||
<a href="#SYNOPSIS">SYNOPSIS</a><br>
|
||||
<a href="#DESCRIPTION">DESCRIPTION</a><br>
|
||||
<a href="#OPTIONS">OPTIONS</a><br>
|
||||
<a href="#FILES">FILES</a><br>
|
||||
<a href="#EXAMPLES">EXAMPLES</a><br>
|
||||
<a href="#BUGS">BUGS</a><br>
|
||||
<a href="#AUTHOR">AUTHOR</a><br>
|
||||
<a href="#CREDITS">CREDITS</a><br>
|
||||
<a href="#SEE ALSO">SEE ALSO</a><br>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<h2>NAME
|
||||
<a name="NAME"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">vlmcs - a
|
||||
client for testing and/or charging KMS servers</p>
|
||||
|
||||
<h2>SYNOPSIS
|
||||
<a name="SYNOPSIS"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>vlmcs</b> [
|
||||
<i>options</i> ] [ <i>target</i> ] [ <i>options</i> ]</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><i>target</i>
|
||||
can be one of the following:</p>
|
||||
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em"><i>hostname</i>|<i>ipaddress</i>[:<i>tcp-port</i>]
|
||||
to query a specific KMS server (example: vlmcs
|
||||
kms.example.com:1688). <br>
|
||||
.<i>domain</i> to automatically detect KMS servers via DNS
|
||||
for <i>domain</i> (example: vlmcs .example.com). Please note
|
||||
the dot before <i>domain</i>. <i><br>
|
||||
-</i> (a single dash) to detect KMS servers in your own
|
||||
domain.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">If you use
|
||||
<i>ipaddress</i>:<i>port</i> as the <i>target</i>, the
|
||||
<i>ipaddress</i> must be enclosed in brackets if it contains
|
||||
colons, e.g. [2001:db8:dead:beef::1]:1688. If you use a
|
||||
link-local IPv6 address on Unix systems, you must append a
|
||||
percent sign and the interface identifier of the source
|
||||
interface, for example fe80::dead:beef%eth0.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">If you omit the
|
||||
<i>target</i>, 127.0.0.1:1688 will be used except if you use
|
||||
<b>-i6</b>. In this case the default target is
|
||||
[::1]:1688.</p>
|
||||
|
||||
<h2>DESCRIPTION
|
||||
<a name="DESCRIPTION"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>vlmcs</b> is
|
||||
a program that can be used to test a KMS server that
|
||||
provides activation for several Microsoft products. The KMS
|
||||
server may also be an emulator. It supports KMS protocol
|
||||
versions 4, 5 and 6.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>vlmcs</b>
|
||||
generates one or more activation requests for a Microsoft
|
||||
KMS product and sends it to a KMS server. It then analyzes
|
||||
and displays the responses of the KMS server.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>vlcms</b>
|
||||
checks both the DCE-RPC protocol and the activation message
|
||||
for correctness and reports any errors that it finds.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>vlmcs</b>
|
||||
can also be used to "charge" a KMS server. A
|
||||
Microsoft KMS server sends correct activation messages only
|
||||
if it detects a certain minimum of clients (25 for Windows
|
||||
client OSses, 5 otherwise) on the network. This is
|
||||
Microsoft’s futile attempt to prevent running a KMS
|
||||
server in a home environment.</p>
|
||||
|
||||
<h2>OPTIONS
|
||||
<a name="OPTIONS"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>-h</b> or
|
||||
<b>-?</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Show help.</p>
|
||||
|
||||
<table width="100%" border="0" rules="none" frame="void"
|
||||
cellspacing="0" cellpadding="0">
|
||||
<tr valign="top" align="left">
|
||||
<td width="11%"></td>
|
||||
<td width="3%">
|
||||
|
||||
|
||||
<p><b>-V</b></p></td>
|
||||
<td width="8%"></td>
|
||||
<td width="78%">
|
||||
|
||||
|
||||
<p>Displays extended version information. This includes the
|
||||
compiler used to build vlmcs, the intended platform and
|
||||
flags (compile time options) to build vlmcs. If you have the
|
||||
source code of vlmcsd, you can type <b>make help</b> (or
|
||||
<b>gmake help</b> on systems that do not use the GNU version
|
||||
of <b>make</b>(1) by default) to see the meaning of those
|
||||
flags.</p> </td></tr>
|
||||
<tr valign="top" align="left">
|
||||
<td width="11%"></td>
|
||||
<td width="3%">
|
||||
|
||||
|
||||
<p><b>-x</b></p></td>
|
||||
<td width="8%"></td>
|
||||
<td width="78%">
|
||||
|
||||
|
||||
<p>Show valid <i>application</i>s that can be used with
|
||||
<b>-l</b>.</p> </td></tr>
|
||||
<tr valign="top" align="left">
|
||||
<td width="11%"></td>
|
||||
<td width="3%">
|
||||
|
||||
|
||||
<p><b>-e</b></p></td>
|
||||
<td width="8%"></td>
|
||||
<td width="78%">
|
||||
|
||||
|
||||
<p>Show some examples how to use vlmcs correctly.</p></td></tr>
|
||||
<tr valign="top" align="left">
|
||||
<td width="11%"></td>
|
||||
<td width="3%">
|
||||
|
||||
|
||||
<p><b>-v</b></p></td>
|
||||
<td width="8%"></td>
|
||||
<td width="78%">
|
||||
|
||||
|
||||
<p>Be verbose. Instead of just displaying the returned ePID
|
||||
and the HwId (protocol v6 only) vlmcsd shows all details of
|
||||
the query and the response.</p></td></tr>
|
||||
</table>
|
||||
|
||||
<p style="margin-left:11%;"><b>-l</b>
|
||||
<i>application</i></p>
|
||||
|
||||
<p style="margin-left:22%;">Request activation for a
|
||||
specific <i>application</i>. Valid applications can be
|
||||
displayed by using <b>-x</b>. The default <i>application</i>
|
||||
is <i>Windows Vista Business</i>. The list of available
|
||||
applications is not complete. You may supply GUIDs with
|
||||
<b>-a</b>, <b>-k</b> and <b>-s</b> to specify applications
|
||||
that are not listed with <b>-x</b>. The <b>-l</b> option is
|
||||
used as a shortcut for the most common applications.</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>-K</b>
|
||||
<i>protocol-version</i></p>
|
||||
|
||||
<p style="margin-left:22%;">Force a specific version of the
|
||||
KMS protocol. Valid versions are 4.0, 5.0 and 6.0. The
|
||||
default is to select a suitable version according to the
|
||||
<i>application</i> selected. You may use <b>-K</b> to send
|
||||
an incorrect protocol version to the KMS server and see how
|
||||
it behaves. Genuine KMS servers return HRESULT 0x8007000D if
|
||||
the KMS protocol is not 4.0, 5.0 or 6.0. Emulators should do
|
||||
the same. When sending a request with an incorrect protocol
|
||||
number, vlmcs ignores the minor protocol number (e.g. sends
|
||||
a v4 request for version 4.1). If the major version number
|
||||
is less then 4, it sends a v4 request. If the major version
|
||||
is greater then 6, it sends a v6 request. In any case the
|
||||
<i>protocol-version</i> as specified by <b>-K</b> is put in
|
||||
the version fields of the request.</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>-4</b>, <b>-5</b> and
|
||||
<b>-6</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Force version 4, 5 or 6 of the
|
||||
KMS protocol. These options are actually shortcuts of <b>-K
|
||||
4.0</b>, <b>-K 5.0</b> and <b>-K 6.0</b>.</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>-j</b> <i>filename</i></p>
|
||||
|
||||
<p style="margin-left:22%;">Use KMS data file
|
||||
<i>filename</i>. By default vlmcs contains product data that
|
||||
is recent when vlmcs was compiled. You may use a more recent
|
||||
KMS data file that contains additional products.</p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">If vlmcsd has
|
||||
been compiled to use a default KMS data file, you may use
|
||||
<b>-j-</b> to ignore the default configuration file.</p>
|
||||
|
||||
<table width="100%" border="0" rules="none" frame="void"
|
||||
cellspacing="0" cellpadding="0">
|
||||
<tr valign="top" align="left">
|
||||
<td width="11%"></td>
|
||||
<td width="3%">
|
||||
|
||||
|
||||
<p><b>-m</b></p></td>
|
||||
<td width="8%"></td>
|
||||
<td width="78%">
|
||||
|
||||
|
||||
<p>Let the client pretend to be a virtual machine. Early
|
||||
versions of Microsoft’s KMS server did not increase
|
||||
the client count if the request came from a virtual machine.
|
||||
Newer versions ignore this flag.</p></td></tr>
|
||||
<tr valign="top" align="left">
|
||||
<td width="11%"></td>
|
||||
<td width="3%">
|
||||
|
||||
|
||||
<p><b>-d</b></p></td>
|
||||
<td width="8%"></td>
|
||||
<td width="78%">
|
||||
|
||||
|
||||
<p>Use NetBIOS names instead of DNS names. By default
|
||||
vlmcsd generates some random DNS names for each request. If
|
||||
you prefer NetBIOS names, you may use <b>-d</b>. A real
|
||||
Microsoft activation client uses DNS names or NetBIOS
|
||||
depending on the client name configuration. KMS servers
|
||||
treat the workstation name as a comment that affects logging
|
||||
only. Clients will be identified by a GUID that can be
|
||||
specified using <b>-c</b>. <b>-d</b> has no effect if you
|
||||
also specify <b>-w</b>.</p></td></tr>
|
||||
</table>
|
||||
|
||||
<p style="margin-left:11%;"><b>-a</b>
|
||||
<i>application-guid</i></p>
|
||||
|
||||
<p style="margin-left:22%;">Send requests with a specific
|
||||
<i>application-guid</i>. There are currently only three
|
||||
known valid <i>application-guid</i>s:</p>
|
||||
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">55c92734-d682-4d71-983e-d6ec3f16059f
|
||||
(Windows) <br>
|
||||
59a52881-a989-479d-af46-f275c6370663 (Office 2010) <br>
|
||||
0ff1ce15-a989-479d-af46-f275c6370663 (Office 2013)</p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">A Microsoft KMS
|
||||
server uses these GUIDs to have seperate counters for the
|
||||
already activated clients. A client that does not contact
|
||||
the KMS server within 30 days will be deleted from the
|
||||
database. Emulated KMS servers are always fully charged.</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>-k</b> <i>kms-guid</i></p>
|
||||
|
||||
<p style="margin-left:22%;">Send requests with a specific
|
||||
<i>kms-guid</i>. A Microsoft KMS server uses these GUIDs as
|
||||
a product id to decide whether to grant activation or not. A
|
||||
list of current <i>kms-guid</i>s can be found in kms.c
|
||||
(table KmsIdList). Emulated KMS servers grant activation
|
||||
unconditionally and do not check the <i>kms-guid</i>.</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>-s</b>
|
||||
<i>activation-guid</i></p>
|
||||
|
||||
<p style="margin-left:22%;">The <i>activation-guid</i>
|
||||
defines the actual product, e.g. "Windows 8.1
|
||||
Professional WMC KMSCLIENT edition". A
|
||||
<i>activation-guid</i> maps 1:1 to a product key. However,
|
||||
neither a Microsoft KMS server nor emulated servers check
|
||||
this id. The <i>activation-guid</i> is useful in logging to
|
||||
get a specific product description like "Windows 8.1
|
||||
Professional WMC". A list of current
|
||||
<i>activation-guid</i>s can be found in kms.c (table
|
||||
ExtendedProductList).</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>-n</b> <i>requests</i></p>
|
||||
|
||||
<p style="margin-left:22%;">Send <i>requests</i> requests
|
||||
to the server. The default is to send at least one request
|
||||
and enough subsequent requests that the server is fully
|
||||
charged afterwards for the <i>application-guid</i> you
|
||||
selected (explicitly with <b>-a</b> or implicitly by using
|
||||
<b>-l</b>).</p>
|
||||
|
||||
<table width="100%" border="0" rules="none" frame="void"
|
||||
cellspacing="0" cellpadding="0">
|
||||
<tr valign="top" align="left">
|
||||
<td width="11%"></td>
|
||||
<td width="3%">
|
||||
|
||||
|
||||
<p><b>-T</b></p></td>
|
||||
<td width="8%"></td>
|
||||
<td width="78%">
|
||||
|
||||
|
||||
<p>Causes to use a new TCP connection for each request if
|
||||
multiple requests are sent with vlmcsd. This is useful when
|
||||
you want to test an emulated KMS server whether it suffers
|
||||
from memory leaks. To test for memory leaks use <b>-n</b>
|
||||
with a large number of requests (> 100000) and then test
|
||||
twice (with and without <b>-T</b>). This option may become
|
||||
neccessary for future versions of Microsoft’s KMS
|
||||
server because multiple requests with different
|
||||
<i>clients-guid</i>s for the same <i>kms-id-guid</i> are
|
||||
impossible in a real KMS szenario over the same TCP
|
||||
connection.</p> </td></tr>
|
||||
</table>
|
||||
|
||||
<p style="margin-left:11%;"><b>-c</b>
|
||||
<i>client-machine-guid</i></p>
|
||||
|
||||
<p style="margin-left:22%;">Normally vlmcs generates a
|
||||
random <i>client-machine-guid</i> for each request. By using
|
||||
this option you can specify a fixed
|
||||
<i>client-machine-guid</i> This causes a Microsoft KMS not
|
||||
to increment its client count because it receives multiple
|
||||
requests for the same client. Thus do not use <b>-c</b> if
|
||||
you want to charge a real KMS server.</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>-o</b>
|
||||
<i>previous-client-machine-guid</i></p>
|
||||
|
||||
<p style="margin-left:22%;">If the
|
||||
<i>client-machine-guid</i> changes for some reason, the real
|
||||
KMS client stores a <i>previous-client-machine-guid</i>
|
||||
which is sent to the KMS server. This happens rarely and
|
||||
usually 00000000-0000-0000-0000-000000000000 is used. You
|
||||
can use <b>-o</b> to specify a different
|
||||
<i>previous-client-machine-guid</i>.</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>-G</b> <i>filename</i></p>
|
||||
|
||||
<p style="margin-left:22%;">Grabs ePIDs and HWIDs from a
|
||||
KMS server and writes the information to <i>filename</i> in
|
||||
format suitable to be used as a configuration file (aka ini
|
||||
file) for <b>vlmcsd</b>(8). This is especially useful if you
|
||||
have access to a genuine KMS server and want to use the same
|
||||
data with <b>vlmcsd</b>(8).</p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">If
|
||||
<i>filename</i> does not exist, it will be created. If you
|
||||
specify an existing <i>filename</i>, it will be updated to
|
||||
use the information received from the remote KMS server and
|
||||
a backup <i>filename</i>~ will be created.</p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em"><b>-G</b>
|
||||
cannot be used with <b>-l</b>, <b>-4</b>, <b>-5</b>,
|
||||
<b>-6</b>, <b>-a</b>, <b>-s</b>, <b>-k</b>, <b>-r</b> and
|
||||
<b>-n</b></p>
|
||||
|
||||
<p style="margin-left:11%;"><b>-w</b>
|
||||
<i>workstation-name</i></p>
|
||||
|
||||
<p style="margin-left:22%;">Send requests with a specific
|
||||
<i>workstation-name</i>. This disables the random generator
|
||||
for the workstation name. Since it is a comment only, this
|
||||
option does not have much effect.</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>-r</b>
|
||||
<i>required-client-count</i></p>
|
||||
|
||||
<p style="margin-left:22%;">Also known as the "N count
|
||||
policy". Tells the KMS server that successful
|
||||
activation requires <i>required-client-count</i> clients.
|
||||
The default is the <i>required-client-count</i> that the
|
||||
product would need if the request was a real activation. A
|
||||
Microsoft KMS server counts clients up to the double amount
|
||||
what was specified with <b>-r</b>. This option can be used
|
||||
to "overcharge" a Microsoft KMS server.</p>
|
||||
|
||||
|
||||
<p style="margin-left:11%;"><b>-t </b><i>status</i></p>
|
||||
|
||||
<p style="margin-left:22%;">Reports a specific license
|
||||
status to the KMS server. <i>status</i> is a number that can
|
||||
be from 0 to 6. 0=unlicensed, 1=licensed, 2=OOB grace, 3=OOT
|
||||
grace, 4=Non-genuinue grace, 5=notification, 6=extended
|
||||
grace. Refer to
|
||||
<a href="http://technet.microsoft.com/en-us/library/ff686879.aspx#_Toc257201371">TechNet</a>
|
||||
for more information. A Microsoft KMS server collects this
|
||||
information for statistics only.</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>-g</b>
|
||||
<i>binding-expiration</i></p>
|
||||
|
||||
<p style="margin-left:22%;">This tells the KMS server how
|
||||
long a client will stay in its current license status. This
|
||||
can be the remaining OOB time (the grace peroid that is
|
||||
granted between installation of a product and when
|
||||
activation is actuall required) or the remaining time when
|
||||
KMS activation must be renewed. <i>binding-expiration</i> is
|
||||
specified in minutes. A Microsoft KMS server apparantly does
|
||||
not use this information.</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>-i</b>
|
||||
<i>protocol-version</i></p>
|
||||
|
||||
<p style="margin-left:22%;">Force the use of Internet
|
||||
protocol <i>protocol-version</i>. Allowed values are 4
|
||||
(IPv4) and 6 (IPv6). This option is useful only if you
|
||||
specfiy a <i>hostname</i> and not an <i>ip-address</i> on
|
||||
the command line.</p>
|
||||
|
||||
<table width="100%" border="0" rules="none" frame="void"
|
||||
cellspacing="0" cellpadding="0">
|
||||
<tr valign="top" align="left">
|
||||
<td width="11%"></td>
|
||||
<td width="3%">
|
||||
|
||||
|
||||
<p><b>-p</b></p></td>
|
||||
<td width="8%"></td>
|
||||
<td width="78%">
|
||||
|
||||
|
||||
<p>Do not set the RPC_PF_MULTIPLEX flag in the RPC bind
|
||||
request. This can be used to test if the KMS server uses the
|
||||
same setting of this flag in the RPC bind respone. Some KMS
|
||||
emulators don’t set this correctly.</p></td></tr>
|
||||
</table>
|
||||
|
||||
<p style="margin-left:11%;"><b>-N0</b> and <b>-N1</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Disables (<b>-N0</b>) or
|
||||
enables (<b>-N1</b>) the NDR64 transfer syntax in the RPC
|
||||
protocol. Disable NDR64 only in case of problems. If NDR64
|
||||
is not used, vlmcs cannot detect many RPC protocol errors in
|
||||
KMS emulators. If you want to test whether a KMS emulator
|
||||
fully supports NDR64, you must use the <b>-n</b> option to
|
||||
send at least two requests. This is because
|
||||
Microsoft’s client always sends the first request
|
||||
using NDR32 syntax and subsequent requests using NDR64
|
||||
syntax.</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>-B0</b> and <b>-B1</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Disables (<b>-B0</b>) or
|
||||
enables (<b>-B1</b>) bind time feature negotiation (BTFN) in
|
||||
the RPC protocol. Disable BTFN only in case of problems. If
|
||||
BTFN is not used, vlmcs cannot detect many RPC protocol
|
||||
errors in KMS emulators.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">Options that do
|
||||
not require an argument can be specified together with a
|
||||
single dash, e.g. vlmcs -6mvT. If you specify an option more
|
||||
than once, the last occurence will be in effect.</p>
|
||||
|
||||
<h2>FILES
|
||||
<a name="FILES"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>vlmcsd.ini</b>(5)</p>
|
||||
|
||||
<h2>EXAMPLES
|
||||
<a name="EXAMPLES"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>vlmcs
|
||||
kms.example.com</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Request activation for Windows
|
||||
Vista using v4 protocol from kms.example.com. Repeat
|
||||
activation requests until server is charged for all Windows
|
||||
products.</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>vlmcs -</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Request activation for Windows
|
||||
Vista using v4 protocol from a KMS server that is published
|
||||
via DNS for the current domain.</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>vlmcs .example.com</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Request activation for Windows
|
||||
Vista using v4 protocol from a KMS server that is published
|
||||
via DNS for domain example.com.</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>vlmcs -6 -l Office2013 -v -n
|
||||
1</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Request exactly one activation
|
||||
for Office2013 using v6 protocol from localhost. Display
|
||||
verbose results.</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>vlmcs kms.bigcompany.com -G
|
||||
/etc/vlmcsd.ini</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Get ePIDs and HWIDs from
|
||||
kms.bigcompany.com and create/update /etc/vlmcsd.ini
|
||||
accordingly.</p>
|
||||
|
||||
<h2>BUGS
|
||||
<a name="BUGS"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">Some platforms
|
||||
(e.g. Solaris) may have a <b>man</b>(7) system that does not
|
||||
handle URLs. URLs may be omitted in the documentation on
|
||||
those platforms. Cygwin, Linux, FreeBSD and Mac OS X are
|
||||
known to work correctly.</p>
|
||||
|
||||
<h2>AUTHOR
|
||||
<a name="AUTHOR"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">Written by
|
||||
Hotbird64</p>
|
||||
|
||||
<h2>CREDITS
|
||||
<a name="CREDITS"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">Thanks to
|
||||
CODYQX4, crony12, deagles, DougQaid, eIcn, mikmik38,
|
||||
nosferati87, qad, Ratiborus, vityan666, ...</p>
|
||||
|
||||
<h2>SEE ALSO
|
||||
<a name="SEE ALSO"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>vlmcsd</b>(7),
|
||||
<b>vlmcsd</b>(8), <b>vlmcsdmulti</b>(1)</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
BIN
man/vlmcs.1.pdf
BIN
man/vlmcs.1.pdf
Binary file not shown.
@ -1,335 +0,0 @@
|
||||
VLMCS(1) KMS Activation Manual VLMCS(1)
|
||||
|
||||
|
||||
|
||||
NAME
|
||||
vlmcs - a client for testing and/or charging KMS servers
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
vlmcs [ options ] [ target ] [ options ]
|
||||
|
||||
target can be one of the following:
|
||||
|
||||
hostname|ipaddress[:tcp-port] to query a specific KMS server
|
||||
(example: vlmcs kms.example.com:1688).
|
||||
.domain to automatically detect KMS servers via DNS for domain
|
||||
(example: vlmcs .example.com). Please note the dot before
|
||||
domain.
|
||||
- (a single dash) to detect KMS servers in your own domain.
|
||||
|
||||
If you use ipaddress:port as the target, the ipaddress must be enclosed
|
||||
in brackets if it contains colons, e.g. [2001:db8:dead:beef::1]:1688.
|
||||
If you use a link-local IPv6 address on Unix systems, you must append a
|
||||
percent sign and the interface identifier of the source interface, for
|
||||
example fe80::dead:beef%eth0.
|
||||
|
||||
If you omit the target, 127.0.0.1:1688 will be used except if you use
|
||||
-i6. In this case the default target is [::1]:1688.
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
vlmcs is a program that can be used to test a KMS server that provides
|
||||
activation for several Microsoft products. The KMS server may also be
|
||||
an emulator. It supports KMS protocol versions 4, 5 and 6.
|
||||
|
||||
vlmcs generates one or more activation requests for a Microsoft KMS
|
||||
product and sends it to a KMS server. It then analyzes and displays the
|
||||
responses of the KMS server.
|
||||
|
||||
vlcms checks both the DCE-RPC protocol and the activation message for
|
||||
correctness and reports any errors that it finds.
|
||||
|
||||
vlmcs can also be used to "charge" a KMS server. A Microsoft KMS server
|
||||
sends correct activation messages only if it detects a certain minimum
|
||||
of clients (25 for Windows client OSses, 5 otherwise) on the network.
|
||||
This is Microsoft's futile attempt to prevent running a KMS server in a
|
||||
home environment.
|
||||
|
||||
|
||||
OPTIONS
|
||||
-h or -?
|
||||
Show help.
|
||||
|
||||
|
||||
-V Displays extended version information. This includes the com-
|
||||
piler used to build vlmcs, the intended platform and flags (com-
|
||||
pile time options) to build vlmcs. If you have the source code
|
||||
of vlmcsd, you can type make help (or gmake help on systems that
|
||||
do not use the GNU version of make(1) by default) to see the
|
||||
meaning of those flags.
|
||||
|
||||
|
||||
-x Show valid applications that can be used with -l.
|
||||
|
||||
|
||||
-e Show some examples how to use vlmcs correctly.
|
||||
|
||||
|
||||
-v Be verbose. Instead of just displaying the returned ePID and the
|
||||
HwId (protocol v6 only) vlmcsd shows all details of the query
|
||||
and the response.
|
||||
|
||||
|
||||
-l application
|
||||
Request activation for a specific application. Valid applica-
|
||||
tions can be displayed by using -x. The default application is
|
||||
Windows Vista Business. The list of available applications is
|
||||
not complete. You may supply GUIDs with -a, -k and -s to specify
|
||||
applications that are not listed with -x. The -l option is used
|
||||
as a shortcut for the most common applications.
|
||||
|
||||
|
||||
-K protocol-version
|
||||
Force a specific version of the KMS protocol. Valid versions are
|
||||
4.0, 5.0 and 6.0. The default is to select a suitable version
|
||||
according to the application selected. You may use -K to send an
|
||||
incorrect protocol version to the KMS server and see how it
|
||||
behaves. Genuine KMS servers return HRESULT 0x8007000D if the
|
||||
KMS protocol is not 4.0, 5.0 or 6.0. Emulators should do the
|
||||
same. When sending a request with an incorrect protocol number,
|
||||
vlmcs ignores the minor protocol number (e.g. sends a v4 request
|
||||
for version 4.1). If the major version number is less then 4, it
|
||||
sends a v4 request. If the major version is greater then 6, it
|
||||
sends a v6 request. In any case the protocol-version as speci-
|
||||
fied by -K is put in the version fields of the request.
|
||||
|
||||
|
||||
-4, -5 and -6
|
||||
Force version 4, 5 or 6 of the KMS protocol. These options are
|
||||
actually shortcuts of -K 4.0, -K 5.0 and -K 6.0.
|
||||
|
||||
|
||||
-j filename
|
||||
Use KMS data file filename. By default vlmcs contains product
|
||||
data that is recent when vlmcs was compiled. You may use a more
|
||||
recent KMS data file that contains additional products.
|
||||
|
||||
If vlmcsd has been compiled to use a default KMS data file, you
|
||||
may use -j- to ignore the default configuration file.
|
||||
|
||||
|
||||
-m Let the client pretend to be a virtual machine. Early versions
|
||||
of Microsoft's KMS server did not increase the client count if
|
||||
the request came from a virtual machine. Newer versions ignore
|
||||
this flag.
|
||||
|
||||
|
||||
-d Use NetBIOS names instead of DNS names. By default vlmcsd gener-
|
||||
ates some random DNS names for each request. If you prefer Net-
|
||||
BIOS names, you may use -d. A real Microsoft activation client
|
||||
uses DNS names or NetBIOS depending on the client name configu-
|
||||
ration. KMS servers treat the workstation name as a comment that
|
||||
affects logging only. Clients will be identified by a GUID that
|
||||
can be specified using -c. -d has no effect if you also specify
|
||||
-w.
|
||||
|
||||
|
||||
-a application-guid
|
||||
Send requests with a specific application-guid. There are cur-
|
||||
rently only three known valid application-guids:
|
||||
|
||||
|
||||
55c92734-d682-4d71-983e-d6ec3f16059f (Windows)
|
||||
59a52881-a989-479d-af46-f275c6370663 (Office 2010)
|
||||
0ff1ce15-a989-479d-af46-f275c6370663 (Office 2013)
|
||||
|
||||
|
||||
A Microsoft KMS server uses these GUIDs to have seperate coun-
|
||||
ters for the already activated clients. A client that does not
|
||||
contact the KMS server within 30 days will be deleted from the
|
||||
database. Emulated KMS servers are always fully charged.
|
||||
|
||||
|
||||
-k kms-guid
|
||||
Send requests with a specific kms-guid. A Microsoft KMS server
|
||||
uses these GUIDs as a product id to decide whether to grant
|
||||
activation or not. A list of current kms-guids can be found in
|
||||
kms.c (table KmsIdList). Emulated KMS servers grant activation
|
||||
unconditionally and do not check the kms-guid.
|
||||
|
||||
|
||||
-s activation-guid
|
||||
The activation-guid defines the actual product, e.g. "Windows
|
||||
8.1 Professional WMC KMSCLIENT edition". A activation-guid maps
|
||||
1:1 to a product key. However, neither a Microsoft KMS server
|
||||
nor emulated servers check this id. The activation-guid is use-
|
||||
ful in logging to get a specific product description like "Win-
|
||||
dows 8.1 Professional WMC". A list of current activation-guids
|
||||
can be found in kms.c (table ExtendedProductList).
|
||||
|
||||
|
||||
-n requests
|
||||
Send requests requests to the server. The default is to send at
|
||||
least one request and enough subsequent requests that the server
|
||||
is fully charged afterwards for the application-guid you
|
||||
selected (explicitly with -a or implicitly by using -l).
|
||||
|
||||
|
||||
-T Causes to use a new TCP connection for each request if multiple
|
||||
requests are sent with vlmcsd. This is useful when you want to
|
||||
test an emulated KMS server whether it suffers from memory
|
||||
leaks. To test for memory leaks use -n with a large number of
|
||||
requests (> 100000) and then test twice (with and without -T).
|
||||
This option may become neccessary for future versions of Micro-
|
||||
soft's KMS server because multiple requests with different
|
||||
clients-guids for the same kms-id-guid are impossible in a real
|
||||
KMS szenario over the same TCP connection.
|
||||
|
||||
|
||||
-c client-machine-guid
|
||||
Normally vlmcs generates a random client-machine-guid for each
|
||||
request. By using this option you can specify a fixed client-
|
||||
machine-guid This causes a Microsoft KMS not to increment its
|
||||
client count because it receives multiple requests for the same
|
||||
client. Thus do not use -c if you want to charge a real KMS
|
||||
server.
|
||||
|
||||
|
||||
-o previous-client-machine-guid
|
||||
If the client-machine-guid changes for some reason, the real KMS
|
||||
client stores a previous-client-machine-guid which is sent to
|
||||
the KMS server. This happens rarely and usually
|
||||
00000000-0000-0000-0000-000000000000 is used. You can use -o to
|
||||
specify a different previous-client-machine-guid.
|
||||
|
||||
|
||||
-G filename
|
||||
Grabs ePIDs and HWIDs from a KMS server and writes the informa-
|
||||
tion to filename in format suitable to be used as a configura-
|
||||
tion file (aka ini file) for vlmcsd(8). This is especially use-
|
||||
ful if you have access to a genuine KMS server and want to use
|
||||
the same data with vlmcsd(8).
|
||||
|
||||
If filename does not exist, it will be created. If you specify
|
||||
an existing filename, it will be updated to use the information
|
||||
received from the remote KMS server and a backup filename~ will
|
||||
be created.
|
||||
|
||||
-G cannot be used with -l, -4, -5, -6, -a, -s, -k, -r and -n
|
||||
|
||||
|
||||
-w workstation-name
|
||||
Send requests with a specific workstation-name. This disables
|
||||
the random generator for the workstation name. Since it is a
|
||||
comment only, this option does not have much effect.
|
||||
|
||||
|
||||
-r required-client-count
|
||||
Also known as the "N count policy". Tells the KMS server that
|
||||
successful activation requires required-client-count clients.
|
||||
The default is the required-client-count that the product would
|
||||
need if the request was a real activation. A Microsoft KMS
|
||||
server counts clients up to the double amount what was specified
|
||||
with -r. This option can be used to "overcharge" a Microsoft KMS
|
||||
server.
|
||||
|
||||
|
||||
-t status
|
||||
Reports a specific license status to the KMS server. status is a
|
||||
number that can be from 0 to 6. 0=unlicensed, 1=licensed, 2=OOB
|
||||
grace, 3=OOT grace, 4=Non-genuinue grace, 5=notification,
|
||||
6=extended grace. Refer to TechNet <http://
|
||||
technet.microsoft.com/en-us/library/ff686879.aspx#_Toc257201371>
|
||||
for more information. A Microsoft KMS server collects this
|
||||
information for statistics only.
|
||||
|
||||
|
||||
-g binding-expiration
|
||||
This tells the KMS server how long a client will stay in its
|
||||
current license status. This can be the remaining OOB time (the
|
||||
grace peroid that is granted between installation of a product
|
||||
and when activation is actuall required) or the remaining time
|
||||
when KMS activation must be renewed. binding-expiration is
|
||||
specified in minutes. A Microsoft KMS server apparantly does not
|
||||
use this information.
|
||||
|
||||
|
||||
-i protocol-version
|
||||
Force the use of Internet protocol protocol-version. Allowed
|
||||
values are 4 (IPv4) and 6 (IPv6). This option is useful only if
|
||||
you specfiy a hostname and not an ip-address on the command
|
||||
line.
|
||||
|
||||
|
||||
-p Do not set the RPC_PF_MULTIPLEX flag in the RPC bind request.
|
||||
This can be used to test if the KMS server uses the same setting
|
||||
of this flag in the RPC bind respone. Some KMS emulators don't
|
||||
set this correctly.
|
||||
|
||||
|
||||
-N0 and -N1
|
||||
Disables (-N0) or enables (-N1) the NDR64 transfer syntax in the
|
||||
RPC protocol. Disable NDR64 only in case of problems. If NDR64
|
||||
is not used, vlmcs cannot detect many RPC protocol errors in KMS
|
||||
emulators. If you want to test whether a KMS emulator fully sup-
|
||||
ports NDR64, you must use the -n option to send at least two
|
||||
requests. This is because Microsoft's client always sends the
|
||||
first request using NDR32 syntax and subsequent requests using
|
||||
NDR64 syntax.
|
||||
|
||||
|
||||
-B0 and -B1
|
||||
Disables (-B0) or enables (-B1) bind time feature negotiation
|
||||
(BTFN) in the RPC protocol. Disable BTFN only in case of prob-
|
||||
lems. If BTFN is not used, vlmcs cannot detect many RPC protocol
|
||||
errors in KMS emulators.
|
||||
|
||||
|
||||
Options that do not require an argument can be specified together with
|
||||
a single dash, e.g. vlmcs -6mvT. If you specify an option more than
|
||||
once, the last occurence will be in effect.
|
||||
|
||||
|
||||
FILES
|
||||
vlmcsd.ini(5)
|
||||
|
||||
|
||||
EXAMPLES
|
||||
vlmcs kms.example.com
|
||||
Request activation for Windows Vista using v4 protocol from
|
||||
kms.example.com. Repeat activation requests until server is
|
||||
charged for all Windows products.
|
||||
|
||||
|
||||
vlmcs -
|
||||
Request activation for Windows Vista using v4 protocol from a
|
||||
KMS server that is published via DNS for the current domain.
|
||||
|
||||
|
||||
vlmcs .example.com
|
||||
Request activation for Windows Vista using v4 protocol from a
|
||||
KMS server that is published via DNS for domain example.com.
|
||||
|
||||
|
||||
vlmcs -6 -l Office2013 -v -n 1
|
||||
Request exactly one activation for Office2013 using v6 protocol
|
||||
from localhost. Display verbose results.
|
||||
|
||||
|
||||
vlmcs kms.bigcompany.com -G /etc/vlmcsd.ini
|
||||
Get ePIDs and HWIDs from kms.bigcompany.com and create/update
|
||||
/etc/vlmcsd.ini accordingly.
|
||||
|
||||
|
||||
BUGS
|
||||
Some platforms (e.g. Solaris) may have a man(7) system that does not
|
||||
handle URLs. URLs may be omitted in the documentation on those plat-
|
||||
forms. Cygwin, Linux, FreeBSD and Mac OS X are known to work correctly.
|
||||
|
||||
|
||||
AUTHOR
|
||||
Written by Hotbird64
|
||||
|
||||
|
||||
CREDITS
|
||||
Thanks to CODYQX4, crony12, deagles, DougQaid, eIcn, mikmik38, nos-
|
||||
ferati87, qad, Ratiborus, vityan666, ...
|
||||
|
||||
|
||||
SEE ALSO
|
||||
vlmcsd(7), vlmcsd(8), vlmcsdmulti(1)
|
||||
|
||||
|
||||
|
||||
Hotbird64 November 2016 VLMCS(1)
|
@ -1,548 +0,0 @@
|
||||
VLMCSD-FLOPPY(7) KMS Activation Manual VLMCSD-FLOPPY(7)
|
||||
|
||||
|
||||
|
||||
NAME
|
||||
floppy144.vfd - a bootable floppy disk with Linux and vlmcsd(8)
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
floppy144.vfd is an image of a bootable floppy that contains a minimal
|
||||
version of Linux and vlmcsd(8). It requires only 16 MB of RAM. Its pri-
|
||||
mary purpose is to run vlmcsd(8) in a small virtual machine which makes
|
||||
it easy to use vlmcsd(8) to activate the virtual machine's host com-
|
||||
puter which is not possible in Windows 8.1 and up. The floppy image is
|
||||
a standard 3,5" floppy with 1.44 MB storage. It is formatted with a
|
||||
FAT12 filesystem. The floppy can be mounted to apply several customiza-
|
||||
tions.
|
||||
|
||||
|
||||
SUPPORTED HYPERVISORS
|
||||
The floppy image has been tested with the following hypervisors:
|
||||
|
||||
VMWare, VirtualBox, Hyper-V and QEMU
|
||||
|
||||
Others are likely to work.
|
||||
|
||||
|
||||
SETUP
|
||||
Create a new virtual machine. Assign 16 MB of RAM. Add a floppy drive
|
||||
and attach floppy144.vfd to this drive. Do not create a virtual hard
|
||||
disk. Setup the virtual machine to boot from a floppy drive (VirtualBox
|
||||
has floppy boot disabled by default). If possible, setup a virtual
|
||||
machine with plain old BIOS (not UEFI). If you created an UEFI virtual
|
||||
machine, enable the compatibility support mode (CSM) to allow a BIOS
|
||||
compatible boot. Set number of CPUs to 1. The Linux kernel is not capa-
|
||||
ble of SMP. Remove IDE, SATA, SCSI and USB support if possible. The
|
||||
Linux kernel can't handle this and ignores any devices connected to
|
||||
these buses.
|
||||
|
||||
Setup an ethernet card. The following models are supported:
|
||||
|
||||
Intel PRO/1000
|
||||
AMD PCNET III
|
||||
AMD PCNET32
|
||||
VMWare vmxnet3 (paravirtualized driver used by VMWare)
|
||||
virtio (paravirtualized driver used by VirtualBox, QEMU, KVM and
|
||||
lguest)
|
||||
|
||||
Most hypervisors emulate an Intel PRO/1000 or AMD PCNET32 by default.
|
||||
Selecting a paravirtualized driver slightly improves performance. In
|
||||
VirtualBox you can simply select virtio in the network configuration
|
||||
dialog. VMWare requires that you add or change the VMX file. Use 'eth-
|
||||
ernet0.virtualDev = "vmxnet3"' in your VMWare config file.
|
||||
|
||||
If you are using QEMU, you must also setup a TAP adapter. Port redi-
|
||||
rection does not work to activate your own computer.
|
||||
|
||||
|
||||
CONFIGURATION
|
||||
floppy144.vfd can be customized to fit your needs. This is done by
|
||||
editing the file syslinux.cfg on the floppy image. The floppy image
|
||||
must be mounted. Under Linux you can simply attach floppy144.vfd to a
|
||||
loop device which is mountable like any other block device. For Windows
|
||||
you must use some software that allows mounting a floppy image, e.g.
|
||||
OSFMount <http://www.osforensics.com/tools/mount-disk-images.html>
|
||||
|
||||
OSFMount works under all Windows versions beginning with Windows XP up
|
||||
to Windows 10 (32- and 64-bit).
|
||||
|
||||
The default syslinux.cfg file looks like this:
|
||||
|
||||
prompt 0
|
||||
TIMEOUT 50
|
||||
default dhcp
|
||||
|
||||
LABEL dhcp
|
||||
KERNEL bzImage
|
||||
APPEND vga=773 quiet initrd=initrd KBD=us LIS-
|
||||
TEN=[::]:1688,0.0.0.0:1688 TZ=UTC0 IPV4_CONFIG=DHCP
|
||||
NTP_SERVER=pool.ntp.org HOST_NAME=vlmcsd ROOT_PASSWORD=vlmcsd
|
||||
USER_NAME=user USER_PASSWORD=vlmcsd GUEST_PASSWORD=vlmcsd
|
||||
INETD=Y WINDOWS=06401-00206-271-395032-03-1033-9600.0000-1652016
|
||||
OFFICE2010=06401-00096-199-204970-03-1033-9600.0000-1652016
|
||||
OFFICE2013=06401-00206-234-921934-03-1033-9600.0000-1652016
|
||||
HWID=36:4F:46:3A:88:63:D3:5F
|
||||
|
||||
LABEL static
|
||||
KERNEL bzImage
|
||||
APPEND vga=773 quiet initrd=initrd KBD=fr LIS-
|
||||
TEN=[::]:1688,0.0.0.0:1688 TZ=CET-1CEST,M3.5.0,M10.5.0/3
|
||||
IPV4_CONFIG=STATIC IPV4_ADDRESS=192.168.20.123/24 IPV4_GATE-
|
||||
WAY=192.168.20.2 IPV4_DNS1=192.168.20.2 IPV4_DNS2=NONE
|
||||
NTP_SERVER=pool.ntp.org HOST_NAME=vlmcsd ROOT_PASSWORD=vlmcsd
|
||||
USER_NAME=user USER_PASSWORD=vlmcsd GUEST_PASSWORD=vlmcsd
|
||||
INETD=Y
|
||||
|
||||
|
||||
There are two configurations in this files: dhcp (for configuring the
|
||||
IPv4 network via DHCP) and static (for a static IPv4 configuration).
|
||||
The kernel always boots the dhcp configuration without asking (lines
|
||||
'prompt 0' and 'default dhcp'). You can simply change the default con-
|
||||
figuration to static and then customize the APPEND line in the static
|
||||
configuration. For more details how to customize the syslinux.cfg file
|
||||
see syslinux(1).
|
||||
|
||||
Each APPPEND line contains one or more items seperated by spaces. All
|
||||
items are case-sensitive. The following parameters can be customized:
|
||||
|
||||
|
||||
vga=vesa-video-mode
|
||||
Sets the VESA display mode for the virtual machine. The parame-
|
||||
ter is not optional. If you ommit it, you will not see anything
|
||||
on the screen. 773 means 1024x768 with 256 colors. See Wikipedia
|
||||
<https://en.wikipedia.org/wiki/
|
||||
VESA_BIOS_Extensions#Linux_video_mode_numbers> for more video
|
||||
modes. Note that all 16 color (4-bit) modes will not work. Use
|
||||
8-bit (256 colors), 16-bit (65536 colors), 24-bit and 32-bit (>
|
||||
16 Million colors) only. All modes above 1280x1024 are non-VESA-
|
||||
standard and vary for all (virtual) graphic cards.
|
||||
|
||||
|
||||
quiet This causes the kernel not display the its log during boot. You
|
||||
may omit quiet but it doesn't make much sense. The boot log is
|
||||
actually very verbose and scrolls away from screen quickly. If
|
||||
any errors occur during boot, they will be displayed even if
|
||||
quiet is present in the APPEND line. You may evaluate the com-
|
||||
plete boot log later by using the dmesg command or the menu on
|
||||
/dev/tty8.
|
||||
|
||||
|
||||
initrd=initial-ram-disk-file
|
||||
This defines the initial ram disk that the kernel will read.
|
||||
There is only one initial ram disk on the floppy thus leave ini-
|
||||
trd=initrd as it is.
|
||||
|
||||
|
||||
KBD=keyboard-layout-name
|
||||
This allows you to select the keyboard layout. keyboard-layout-
|
||||
name is usually the ISO 3166-1 (top level domain) code for a
|
||||
country. A list of valid keyboard-layout-names can be accessed
|
||||
via the menu system on /dev/tty8 (press ALT-F8). Note, that this
|
||||
is a keyboard driver only. There is no Unicode font support in
|
||||
floppy144.vfd (due to the fact that the kernel uses a generic
|
||||
VESA framebuffer device only). Characters beyond ASCII work for
|
||||
Western European languages only but not Eastern European, Greek,
|
||||
Cyrillic, Arabic, Hebrew, CJK and other languages. There is no
|
||||
need in floppy144.vfd to enter any characters outside ASCII. The
|
||||
purpose of the keyboard maps are that you will find characters
|
||||
like dash, backslash, brackets, braces, etc. at the usual place
|
||||
on your keyboard.
|
||||
|
||||
|
||||
LISTEN=PRIVATE[:tcp-port] | ip-address[:tcp-port][,ip-address[:tcp-
|
||||
port]][,...]
|
||||
One or more combinations of IP addresses and optional TCP port
|
||||
seperated by commas that vlmcsd(8) should listen on or PRIVATE
|
||||
to listen on all private IP addresses only. The default port is
|
||||
1688. If you use an explicit port number, append it to the IP
|
||||
address seperated by a colon. If you use a port number and the
|
||||
IP address contains colons, you must enclose the IP address in
|
||||
brackets. For example 192.168.0.2,[fd00::dead:beef]:5678 causes
|
||||
vlmcsd(8) to listen on 192.168.0.2 port 1688 and fd00::dead:beef
|
||||
port 5678.
|
||||
|
||||
|
||||
WINDOWS=epid
|
||||
Defines the ePID that is used for Windows activations. If you
|
||||
ommit this parameter, vlmcsd generates a random ePID when it is
|
||||
started.
|
||||
|
||||
|
||||
OFFICE2010=epid
|
||||
Defines the ePID that is used for Office 2010 activations. If
|
||||
you ommit this parameter, vlmcsd(8) generates a random ePID when
|
||||
it is started.
|
||||
|
||||
|
||||
OFFICE2013=epid
|
||||
Defines the ePID that is used for Office 2016 activations. If
|
||||
you ommit this parameter, vlmcsd(8) generates a random ePID when
|
||||
it is started.
|
||||
|
||||
|
||||
OFFICE2016=epid
|
||||
Defines the ePID that is used for Office 2016 activations. If
|
||||
you ommit this parameter, vlmcsd(8) generates a random ePID when
|
||||
it is started.
|
||||
|
||||
|
||||
WINCHINAGOV=epid
|
||||
Defines the ePID that is used for Windows China Government Edi-
|
||||
tion activations (Enterprise G/GN). If you ommit this parameter,
|
||||
vlmcsd(8) generates a random ePID when it is started.
|
||||
|
||||
|
||||
HWID=hwid
|
||||
Defines the HwId that is sent to clients. hwid must be specified
|
||||
as 16 hex digits that are interpreted as a series of 8 bytes
|
||||
(big endian). Any character that is not a hex digit will be
|
||||
ignored. This is for better readability.
|
||||
|
||||
|
||||
TZ=posix-time-zone-string
|
||||
Set the time zone to posix-time-zone-string. It must conform to
|
||||
the POSIX <http://pubs.opengroup.org/onlinepubs/009695399/
|
||||
basedefs/xbd_chap08.html> specification. Simplified time zone
|
||||
strings like "Europe/London" or "America/Detroit" are not
|
||||
allowed. This has the very simple reason that there is no space
|
||||
on the floppy to store the time zone database.
|
||||
|
||||
The string CET-1CEST,M3.5.0,M10.5.0/3 (most countries in Europe)
|
||||
reads as follows:
|
||||
|
||||
CET The standard (winter) time zone has the name CET.
|
||||
|
||||
-1 The standard time zone is one hour east of UTC. Nega-
|
||||
tive numbers are east of UTC. Positive numbers are
|
||||
west of UTC.
|
||||
|
||||
CEST The daylight saving (summer) time zone has the name
|
||||
CEST.
|
||||
|
||||
M3.5.0 Daylight saving time starts in the 3rd month (March)
|
||||
on the 5th (=last) occurence of weekday 0 (Sunday) at
|
||||
2 o'clock (2 o'clock is a default value).
|
||||
|
||||
M10.5.0/3 Daylight saving time ends in the 10th month (October)
|
||||
on the 5th (=last) occurence of weekday 0 (Sunday) at
|
||||
3 o'clock.
|
||||
|
||||
If you don't have daylight saving time, things are easier. For
|
||||
Chinese Standard Time for example, just use CST-8 as the time
|
||||
zone string.
|
||||
|
||||
On a Linux desktop system, you can use a command like
|
||||
strings /usr/share/zoneinfo/America/New_York | tail -n1. This
|
||||
should return EST5EDT,M3.2.0,M11.1.0. You can use the returned
|
||||
string for the TZ=posix-time-zone-string parameter.
|
||||
|
||||
|
||||
IPV4_CONFIG=DHCP | STATIC
|
||||
This determines how you want to configure IPv4 networking. If
|
||||
you use IPV4_CONFIG=STATIC, you must supply additional para-
|
||||
maters to the APPEND command line.
|
||||
|
||||
|
||||
IPV4_ADDRESS=ipv4-address/CIDR-mask
|
||||
Use ipv4-address with netmask CIDR-mask for static IPv4 configu-
|
||||
ration. The netmask must not be ommitted. For IPv4 address
|
||||
192.168.12.17 with a netmask of 255.255.255.0 use
|
||||
192.168.12.17/24. For IPv4 address 10.4.0.8 with a netmask of
|
||||
255.255.0.0 use 10.4.0.8/16. This paramater is ignored, if you
|
||||
used IPV4_CONFIG=DHCP.
|
||||
|
||||
|
||||
IPV4_GATEWAY=ipv4-address | NONE
|
||||
Use ipv4-address as the default gateway. This is usually the
|
||||
IPv4 address of your router. You may specify NONE explicitly for
|
||||
no gateway. In this case your virtual machine is only visible on
|
||||
its local LAN. This paramater is ignored, if you used IPV4_CON-
|
||||
FIG=DHCP.
|
||||
|
||||
|
||||
IPV4_DNS1=ipv4-address | NONE
|
||||
Use ipv4-address as the primary name server. In home networks
|
||||
this is often the IPv4 address of your router. You may specify
|
||||
NONE explicitly. If you specified NONE for both IPV4_DNS1= and
|
||||
IPV4_DNS2=, your virtual machine cannot resolve host names to IP
|
||||
addresses. While vlmcsd(8) works perfectly without DNS servers,
|
||||
you must use IP addresses when referring to a host, e.g. for
|
||||
specifying an NTP server. This paramater is ignored, if you used
|
||||
IPV4_CONFIG=DHCP.
|
||||
|
||||
|
||||
IPV4_DNS2=ipv4-address | NONE
|
||||
Use ipv4-address as the secondary name server. It serves as a
|
||||
backup if the primary name server is not available. Home net-
|
||||
works often don't have a secondary name server. In this case set
|
||||
this to NONE. This paramater is ignored, if you used IPV4_CON-
|
||||
FIG=DHCP.
|
||||
|
||||
|
||||
NTP_SERVER=host-name | ipv4-address | NONE
|
||||
This sets the name of a time server using the NTP protocol. If
|
||||
your virtualization environment reliably provides time, you can
|
||||
set this to NONE. Don't use a public time service like
|
||||
pool.ntp.org or time.nist.gov if you have a (at least somewhat
|
||||
reliable) NTP server in your LAN.
|
||||
|
||||
|
||||
HOST_NAME=host-name
|
||||
Sets the local host name for your virtual machine. It can be a
|
||||
single name or a fully-qualified domain name FQDN. If you used
|
||||
IPV4_CONFIG=DHCP and your DHCP server returns a domain name, the
|
||||
domain part of an FQDN will be replaced by that name. This host
|
||||
name or host part of an FQDN will not replaced by a host name
|
||||
returned via DHCP. The host name is not important for the opera-
|
||||
tion of floppy144.vfd.
|
||||
|
||||
|
||||
ROOT_PASSWORD=password
|
||||
Sets the password of the root user.
|
||||
|
||||
|
||||
USER_NAME=username
|
||||
Sets the name of for a general user with no special privileges.
|
||||
This user can login but can't do much.
|
||||
|
||||
|
||||
USER_PASSWORD=password
|
||||
Sets the password for the user defined by USER_NAME=username.
|
||||
|
||||
|
||||
GUEST_PASSWORD=password
|
||||
Sets the password for the pre-defined guest user. This user has
|
||||
the same priviliges (none) as the user defined by
|
||||
USER_NAME=username.
|
||||
|
||||
|
||||
INETD=Y | N
|
||||
INETD=Y specifies that inetd(8) should automatically be started.
|
||||
That means you can telnet and ftp to your virtual machine.
|
||||
|
||||
|
||||
VLMCSD_EXTRA_ARGS=comma-seperated-argument-list
|
||||
Allows you to specify additional command line options that will
|
||||
be passed to vlmcsd(8). Instead of spaces you use commas between
|
||||
arguments. Example: VLMCSD_EXTRA_ARGS=-c1,-K3,-M1
|
||||
|
||||
|
||||
OPERATION
|
||||
Diskless System
|
||||
The floppy144.vfd virtual machine is a diskless system that works
|
||||
entirely from RAM. The file system is actually a RAM disk that is cre-
|
||||
ated from the initrd(4) file on the floppy image.
|
||||
|
||||
Anything you'll do from inside the virtual machine, for instance edit-
|
||||
ing a config file, will be lost when you reboot the machine. So, if you
|
||||
ever asked yourself if rm -fr / (root privileges required) really
|
||||
deletes all files from all mounted partitions, the floppy144.vfd VM is
|
||||
the right place to test it (Yes, it does).
|
||||
|
||||
The VM uses a RAM disk, because the Linux kernel had to be stripped
|
||||
down to essential features to fit on a 1.44 MB floppy. It has no floppy
|
||||
driver, no disk file system drivers and no block layer (cannot use
|
||||
disks of any type).
|
||||
|
||||
|
||||
System startup
|
||||
The kernel boots up very quickly and the init script (/sbin/init) waits
|
||||
5 seconds. In these 5 seconds you can:
|
||||
|
||||
Press 'm' to manually enter the time zone and the IPv4 parame-
|
||||
ters. These will be queried interactively.
|
||||
Press 't' to manually enter the time zone only.
|
||||
Press 's' to escape to a shell.
|
||||
|
||||
If you don't want to 5 seconds for continuing the init process, you can
|
||||
press any other key to speed things up. At the end of the init script
|
||||
you should see thatvlmcsd(8) has started. You should also see the IP
|
||||
addresses and all user names and passwords.
|
||||
|
||||
|
||||
Logging into the system
|
||||
There are 5 local logins provided on /dev/tty2 to /dev/tty6. To switch
|
||||
to these logins, simply press ALT-F2 to ALT-F6. To return to the con-
|
||||
sole on /dev/tty1, press ALT-F1. If inetd(8) is running you can also
|
||||
use telnet(1). This allows you use a terminal program (e.g. putty) that
|
||||
can utilize your keyboard layout, can be resized and has full UTF-8
|
||||
support. The local terminals support US keyboard layout only. Please be
|
||||
aware that telnet(1) is unencrypted and everything including passwords
|
||||
is transmitted in clear text. There is not enough space for an ssh
|
||||
server like sshd(8) or dropbear(8).
|
||||
|
||||
The floppy image only provides basic Unix commands. Type busybox or ll
|
||||
/bin to get a list. The only editor available is vi(1). If you don't
|
||||
like vi, you may transfer config files via ftp(1) edit them with the
|
||||
editor of your choice and transfer them back to the floppy144.vfd VM.
|
||||
|
||||
|
||||
The menu system
|
||||
You'll find a menu system on /dev/tty8 (press ALT-F8 to see it). It
|
||||
allows you performing some administrative tasks and to view various
|
||||
system information. It is mainly for users that do not have much expe-
|
||||
rience with Unix commands.
|
||||
|
||||
|
||||
1) (Re)start vlmcsd
|
||||
Starts or restarts vlmcsd(8). This is useful if you changed
|
||||
/etc/vlmcsd.ini(5).
|
||||
|
||||
|
||||
2) Stop vlmcsd
|
||||
Stops vlmcsd(8).
|
||||
|
||||
|
||||
3) (Re)start inetd
|
||||
Starts or restarts inetd(8). If inetd(8) is restarted, current
|
||||
clients connected via telnet(1) or ftp(1) will not be dropped.
|
||||
They can continue their sessions. This is useful if you changed
|
||||
/etc/inetd.conf(5).
|
||||
|
||||
|
||||
4) Stop inet
|
||||
Stops inetd(8). All clients connected via telnet(1) or ftp(1)
|
||||
will be dropped immediately.
|
||||
|
||||
|
||||
5) Change the time zone
|
||||
Just in case you missed pressing 't' during system startup. This
|
||||
also restarts vlmcsd(8) if it was running to notify it that the
|
||||
time zone has changed. Restarting vlmcsd(8) allows currently
|
||||
connected clients to finish their activation.
|
||||
|
||||
|
||||
k) Change keyboard layout
|
||||
This allows you to select a different keyboard layout.
|
||||
|
||||
|
||||
6) Show all kernel boot parameters
|
||||
Shows all parameters passed to the kernel via syslinux.cfg. If
|
||||
you experience any unexpected behavior, you can use this to
|
||||
check if your APPEND line in syslinux.cfg is correct. The output
|
||||
is piped through less(1). So press 'q' to return to the menu.
|
||||
|
||||
|
||||
7) Show boot log (dmesg)
|
||||
Shows the boot log of the kernel. The output is piped through
|
||||
less(1). So press 'q' to return to the menu.
|
||||
|
||||
|
||||
8) Show TCP/IP configuration
|
||||
Shows the TCP/IP configuration, listening sockets and current
|
||||
TCP and UDP connections. Useful, if you problems with net con-
|
||||
nectivity. The output is piped through less(1). So press 'q' to
|
||||
return to the menu.
|
||||
|
||||
|
||||
9) Show running processes
|
||||
Shows all processes including memory and CPU usage. Display will
|
||||
updated every second. Press 'q' or CTRL-C to return to the menu.
|
||||
|
||||
|
||||
s) Shutdown
|
||||
Shuts down the floppy144.vfd virtual machine. Proper shutdown is
|
||||
not required. It is ok to use a hard power off in your virtual-
|
||||
ization program.
|
||||
|
||||
|
||||
r) Reboot
|
||||
Reboots the floppy144.vfd virtual machine. Proper reboot is not
|
||||
required. It is ok to use a hard reset in your virtualization
|
||||
program.
|
||||
|
||||
|
||||
PERMANENT CHANGES OF INITRD
|
||||
If you want to change any file or script of the file system (e.g. the
|
||||
init script /sbin/init or /etc/vlmcsd.ini), you'll need to mount the
|
||||
floppy image, unpack the initrd(4) file, make any modfications you
|
||||
like, create a new initrd(4) file and copy it to the mounted floppy.
|
||||
|
||||
To unpack the initrd(4) file you'll need xz(1) (or lzma(1) on older
|
||||
unix-like OSses) and cpio(1). These can be installed using your package
|
||||
manager on all major distros. It is ok to use the BSD version of
|
||||
cpio(1). No need to get the GNU version for BSD users. Provided the
|
||||
floppy is mounted in /mnt/floppy do the following:
|
||||
|
||||
Create an empty directory
|
||||
mkdir ~/vlmcsd-floppy-initrd
|
||||
|
||||
cd into that directory
|
||||
cd ~/vlmcsd-floppy-initrd
|
||||
|
||||
Unpack initrd
|
||||
cat /mnt/floppy/initrd | unlzma | cpio -i
|
||||
|
||||
After applying your changes build a new initrd(4) file:
|
||||
|
||||
|
||||
cd into your directory
|
||||
cd ~/vlmcsd-floppy-initrd
|
||||
|
||||
Create the packed file
|
||||
find . | cpio -o -H newc | lzma > /mnt/floppy/initrd
|
||||
|
||||
Do not try to use 'lzma -9' to achive better compression. The kernel
|
||||
can't read the resulting file. While customizing the initrd(4) file
|
||||
works on almost any unix-like OS, it does not work on Windows even not
|
||||
with Cygwin. The reason is that the NTFS file system can't handle uids
|
||||
and gids. These cannot be preserved when unpacking the cpio(1) archive
|
||||
to NTFS. If you use the WSL subsystem of Windows 10 Redstone (Anniver-
|
||||
sary Update) and later, you must make sure to unpack the initrd(4) file
|
||||
to a directory on VolFs (normally everything that is not mounted under
|
||||
/mnt). The initrd(4) file can be on a VolFs or DriveFs.
|
||||
|
||||
|
||||
FAQ
|
||||
On what distro is the floppy image based?
|
||||
None. Besides the boot loader ldlinux.sys, there are only three bina-
|
||||
ries: The Linux kernel bzImage, busybox(1) and vlmcsdmulti-x86-musl-
|
||||
static. bzImage and busybox(1) have been compiled with carefully
|
||||
selected configuration parameters not found in any distro. This was
|
||||
neccesary to fit everything on a 1.44 MB floppy.
|
||||
|
||||
|
||||
Why is a rather old Linux kernel (3.12) used?
|
||||
Linux 3.12 is the last kernel that can be booted with 16 MB of RAM.
|
||||
Beginning with Linux 3.13 it requires much more memory (about 80 MB) to
|
||||
boot. The floppy image is regularly tested with newer kernels. Every-
|
||||
thing works except that you need to assign much more main memory to the
|
||||
virtual machine.
|
||||
|
||||
|
||||
Can the floppy be booted on bare metal?
|
||||
Basically yes. However, only Intel Pro/1000 and AMD PCNET32 ethernet
|
||||
cards are supported by the kernel. In addition there is no USB support
|
||||
compiled into the kernel. That means you can only use an IBM AT or IBM
|
||||
PS/2 keyboard which are not available on newer hardware.
|
||||
|
||||
|
||||
FILES
|
||||
syslinux.cfg, vlmcsd.ini(5)
|
||||
|
||||
|
||||
BUGS
|
||||
IPv6 cannot be configured with static or manual parameters.
|
||||
DHCPv6 is not supported.
|
||||
'ip route add ...' does not work. Use 'route add ...' instead.
|
||||
|
||||
|
||||
AUTHOR
|
||||
floppy144.vfd has been created by Hotbird64
|
||||
|
||||
|
||||
CREDITS
|
||||
Linus Torvalds et al. for the Linux kernel
|
||||
Erik Andersen et al. for the original uClibc
|
||||
Waldemar Brodkorb et al. for uClibc-ng
|
||||
Denys Vlasenko et al. for BusyBox
|
||||
H. Peter Anvin et al. for SYSLINUX
|
||||
|
||||
|
||||
SEE ALSO
|
||||
vlmcsd(8), vlmcsd.ini(5), initrd(4), busybox(1), syslinux(1)
|
||||
|
||||
|
||||
|
||||
Hotbird64 May 2017 VLMCSD-FLOPPY(7)
|
@ -1,832 +0,0 @@
|
||||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Sat Oct 20 09:49:39 2018 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title>VLMCSD-FLOPPY</title>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1 align="center">VLMCSD-FLOPPY</h1>
|
||||
|
||||
<a href="#NAME">NAME</a><br>
|
||||
<a href="#DESCRIPTION">DESCRIPTION</a><br>
|
||||
<a href="#SUPPORTED HYPERVISORS">SUPPORTED HYPERVISORS</a><br>
|
||||
<a href="#SETUP">SETUP</a><br>
|
||||
<a href="#CONFIGURATION">CONFIGURATION</a><br>
|
||||
<a href="#OPERATION">OPERATION</a><br>
|
||||
<a href="#PERMANENT CHANGES OF INITRD">PERMANENT CHANGES OF INITRD</a><br>
|
||||
<a href="#FAQ">FAQ</a><br>
|
||||
<a href="#FILES">FILES</a><br>
|
||||
<a href="#BUGS">BUGS</a><br>
|
||||
<a href="#AUTHOR">AUTHOR</a><br>
|
||||
<a href="#CREDITS">CREDITS</a><br>
|
||||
<a href="#SEE ALSO">SEE ALSO</a><br>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<h2>NAME
|
||||
<a name="NAME"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">floppy144.vfd -
|
||||
a bootable floppy disk with Linux and <b>vlmcsd</b>(8)</p>
|
||||
|
||||
<h2>DESCRIPTION
|
||||
<a name="DESCRIPTION"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>floppy144.vfd</b>
|
||||
is an image of a bootable floppy that contains a minimal
|
||||
version of Linux and <b>vlmcsd</b>(8). It requires only 16
|
||||
MB of RAM. Its primary purpose is to run <b>vlmcsd</b>(8) in
|
||||
a small virtual machine which makes it easy to use
|
||||
<b>vlmcsd</b>(8) to activate the virtual machine’s
|
||||
host computer which is not possible in Windows 8.1 and up.
|
||||
The floppy image is a standard 3,5" floppy with 1.44 MB
|
||||
storage. It is formatted with a FAT12 filesystem. The floppy
|
||||
can be mounted to apply several customizations.</p>
|
||||
|
||||
<h2>SUPPORTED HYPERVISORS
|
||||
<a name="SUPPORTED HYPERVISORS"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">The floppy
|
||||
image has been tested with the following hypervisors:</p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">VMWare,
|
||||
VirtualBox, Hyper-V and QEMU</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">Others are
|
||||
likely to work.</p>
|
||||
|
||||
<h2>SETUP
|
||||
<a name="SETUP"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">Create a new
|
||||
virtual machine. Assign 16 MB of RAM. Add a floppy drive and
|
||||
attach <b>floppy144.vfd</b> to this drive. Do not create a
|
||||
virtual hard disk. Setup the virtual machine to boot from a
|
||||
floppy drive (VirtualBox has floppy boot disabled by
|
||||
default). If possible, setup a virtual machine with plain
|
||||
old BIOS (not UEFI). If you created an UEFI virtual machine,
|
||||
enable the compatibility support mode (CSM) to allow a BIOS
|
||||
compatible boot. Set number of CPUs to 1. The Linux kernel
|
||||
is not capable of SMP. Remove IDE, SATA, SCSI and USB
|
||||
support if possible. The Linux kernel can’t handle
|
||||
this and ignores any devices connected to these buses.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">Setup an
|
||||
ethernet card. The following models are supported:</p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">Intel PRO/1000
|
||||
<br>
|
||||
AMD PCNET III <br>
|
||||
AMD PCNET32 <br>
|
||||
VMWare vmxnet3 (paravirtualized driver used by VMWare) <br>
|
||||
virtio (paravirtualized driver used by VirtualBox, QEMU, KVM
|
||||
and lguest)</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">Most
|
||||
hypervisors emulate an Intel PRO/1000 or AMD PCNET32 by
|
||||
default. Selecting a paravirtualized driver slightly
|
||||
improves performance. In VirtualBox you can simply select
|
||||
virtio in the network configuration dialog. VMWare requires
|
||||
that you add or change the VMX file. Use
|
||||
’ethernet0.virtualDev = "vmxnet3"’
|
||||
in your VMWare config file.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">If you are
|
||||
using QEMU, you must also setup a TAP adapter. Port
|
||||
redirection does not work to activate your own computer.</p>
|
||||
|
||||
<h2>CONFIGURATION
|
||||
<a name="CONFIGURATION"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>floppy144.vfd</b>
|
||||
can be customized to fit your needs. This is done by editing
|
||||
the file syslinux.cfg on the floppy image. The floppy image
|
||||
must be mounted. Under Linux you can simply attach
|
||||
<b>floppy144.vfd</b> to a loop device which is mountable
|
||||
like any other block device. For Windows you must use some
|
||||
software that allows mounting a floppy image, e.g.
|
||||
<a href="http://www.osforensics.com/tools/mount-disk-images.html">OSFMount</a></p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">OSFMount works
|
||||
under all Windows versions beginning with Windows XP up to
|
||||
Windows 10 (32- and 64-bit).</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">The default
|
||||
syslinux.cfg file looks like this:</p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em"><small>prompt 0
|
||||
<br>
|
||||
TIMEOUT 50 <br>
|
||||
default dhcp</small></p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em"><small>LABEL
|
||||
dhcp <br>
|
||||
KERNEL bzImage <br>
|
||||
APPEND vga=773 quiet initrd=initrd KBD=us
|
||||
LISTEN=[::]:1688,0.0.0.0:1688 TZ=UTC0 IPV4_CONFIG=DHCP
|
||||
NTP_SERVER=pool.ntp.org HOST_NAME=vlmcsd
|
||||
ROOT_PASSWORD=vlmcsd USER_NAME=user USER_PASSWORD=vlmcsd
|
||||
GUEST_PASSWORD=vlmcsd INETD=Y
|
||||
WINDOWS=06401-00206-271-395032-03-1033-9600.0000-1652016
|
||||
OFFICE2010=06401-00096-199-204970-03-1033-9600.0000-1652016
|
||||
OFFICE2013=06401-00206-234-921934-03-1033-9600.0000-1652016
|
||||
HWID=36:4F:46:3A:88:63:D3:5F</small></p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em"><small>LABEL
|
||||
static <br>
|
||||
KERNEL bzImage <br>
|
||||
APPEND vga=773 quiet initrd=initrd KBD=fr
|
||||
LISTEN=[::]:1688,0.0.0.0:1688 TZ=CET-1CEST,M3.5.0,M10.5.0/3
|
||||
IPV4_CONFIG=STATIC IPV4_ADDRESS=192.168.20.123/24
|
||||
IPV4_GATEWAY=192.168.20.2 IPV4_DNS1=192.168.20.2
|
||||
IPV4_DNS2=NONE NTP_SERVER=pool.ntp.org HOST_NAME=vlmcsd
|
||||
ROOT_PASSWORD=vlmcsd USER_NAME=user USER_PASSWORD=vlmcsd
|
||||
GUEST_PASSWORD=vlmcsd INETD=Y</small></p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">There are two
|
||||
configurations in this files: <i>dhcp</i> (for configuring
|
||||
the IPv4 network via DHCP) and <i>static</i> (for a static
|
||||
IPv4 configuration). The kernel always boots the <i>dhcp</i>
|
||||
configuration without asking (lines ’prompt 0’
|
||||
and ’default dhcp’). You can simply change the
|
||||
default configuration to <i>static</i> and then customize
|
||||
the APPEND line in the <i>static</i> configuration. For more
|
||||
details how to customize the syslinux.cfg file see
|
||||
<b>syslinux</b>(1).</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">Each APPPEND
|
||||
line contains one or more items seperated by spaces. <b>All
|
||||
items are case-sensitive</b>. The following parameters can
|
||||
be customized: <b><br>
|
||||
vga=</b><i>vesa-video-mode</i></p>
|
||||
|
||||
<p style="margin-left:22%;">Sets the VESA display mode for
|
||||
the virtual machine. The parameter is not optional. If you
|
||||
ommit it, you will not see anything on the screen. 773 means
|
||||
1024x768 with 256 colors. See
|
||||
<a href="https://en.wikipedia.org/wiki/VESA_BIOS_Extensions#Linux_video_mode_numbers">Wikipedia</a>
|
||||
for more video modes. Note that all 16 color (4-bit) modes
|
||||
will not work. Use 8-bit (256 colors), 16-bit (65536
|
||||
colors), 24-bit and 32-bit (> 16 Million colors) only.
|
||||
All modes above 1280x1024 are non-VESA-standard and vary for
|
||||
all (virtual) graphic cards.</p>
|
||||
|
||||
<table width="100%" border="0" rules="none" frame="void"
|
||||
cellspacing="0" cellpadding="0">
|
||||
<tr valign="top" align="left">
|
||||
<td width="11%"></td>
|
||||
<td width="7%">
|
||||
|
||||
|
||||
<p><b>quiet</b></p></td>
|
||||
<td width="4%"></td>
|
||||
<td width="78%">
|
||||
|
||||
|
||||
<p>This causes the kernel not display the its log during
|
||||
boot. You may omit <b>quiet</b> but it doesn’t make
|
||||
much sense. The boot log is actually very verbose and
|
||||
scrolls away from screen quickly. If any errors occur during
|
||||
boot, they will be displayed even if <b>quiet</b> is present
|
||||
in the APPEND line. You may evaluate the complete boot log
|
||||
later by using the dmesg command or the menu on
|
||||
/dev/tty8.</p> </td></tr>
|
||||
</table>
|
||||
|
||||
|
||||
<p style="margin-left:11%;"><b>initrd=</b><i>initial-ram-disk-file</i></p>
|
||||
|
||||
<p style="margin-left:22%;">This defines the initial ram
|
||||
disk that the kernel will read. There is only one initial
|
||||
ram disk on the floppy thus leave <i>initrd=initrd</i> as it
|
||||
is.</p>
|
||||
|
||||
|
||||
<p style="margin-left:11%;"><b>KBD=</b><i>keyboard-layout-name</i></p>
|
||||
|
||||
<p style="margin-left:22%;">This allows you to select the
|
||||
keyboard layout. <i>keyboard-layout-name</i> is usually the
|
||||
ISO 3166-1 (top level domain) code for a country. A list of
|
||||
valid <i>keyboard-layout-name</i>s can be accessed via the
|
||||
menu system on /dev/tty8 (press ALT-F8). Note, that this is
|
||||
a keyboard driver only. There is no Unicode font support in
|
||||
<b>floppy144.vfd</b> (due to the fact that the kernel uses a
|
||||
generic VESA framebuffer device only). Characters beyond
|
||||
ASCII work for Western European languages only but not
|
||||
Eastern European, Greek, Cyrillic, Arabic, Hebrew, CJK and
|
||||
other languages. There is no need in <b>floppy144.vfd</b> to
|
||||
enter any characters outside ASCII. The purpose of the
|
||||
keyboard maps are that you will find characters like dash,
|
||||
backslash, brackets, braces, etc. at the usual place on your
|
||||
keyboard.</p>
|
||||
|
||||
|
||||
<p style="margin-left:11%;"><b>LISTEN=</b>PRIVATE[:<i>tcp-port</i>]
|
||||
| <i><br>
|
||||
|
||||
ip-address</i>[:<i>tcp-port</i>][,<i>ip-address</i>[:<i>tcp-port</i>]][,...]</p>
|
||||
|
||||
<p style="margin-left:22%;">One or more combinations of IP
|
||||
addresses and optional TCP port seperated by commas that
|
||||
<b>vlmcsd</b>(8) should listen on or PRIVATE to listen on
|
||||
all private IP addresses only. The default port is 1688. If
|
||||
you use an explicit port number, append it to the IP address
|
||||
seperated by a colon. If you use a port number and the IP
|
||||
address contains colons, you must enclose the IP address in
|
||||
brackets. For example
|
||||
<i>192.168.0.2,[fd00::dead:beef]:5678</i> causes
|
||||
<b>vlmcsd</b>(8) to listen on 192.168.0.2 port 1688 and
|
||||
fd00::dead:beef port 5678.</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>WINDOWS=</b><i>epid</i></p>
|
||||
|
||||
<p style="margin-left:22%;">Defines the ePID that is used
|
||||
for Windows activations. If you ommit this parameter, vlmcsd
|
||||
generates a random ePID when it is started.</p>
|
||||
|
||||
|
||||
<p style="margin-left:11%;"><b>OFFICE2010=</b><i>epid</i></p>
|
||||
|
||||
<p style="margin-left:22%;">Defines the ePID that is used
|
||||
for Office 2010 activations. If you ommit this parameter,
|
||||
<b>vlmcsd</b>(8) generates a random ePID when it is
|
||||
started.</p>
|
||||
|
||||
|
||||
<p style="margin-left:11%;"><b>OFFICE2013=</b><i>epid</i></p>
|
||||
|
||||
<p style="margin-left:22%;">Defines the ePID that is used
|
||||
for Office 2016 activations. If you ommit this parameter,
|
||||
<b>vlmcsd</b>(8) generates a random ePID when it is
|
||||
started.</p>
|
||||
|
||||
|
||||
<p style="margin-left:11%;"><b>OFFICE2016=</b><i>epid</i></p>
|
||||
|
||||
<p style="margin-left:22%;">Defines the ePID that is used
|
||||
for Office 2016 activations. If you ommit this parameter,
|
||||
<b>vlmcsd</b>(8) generates a random ePID when it is
|
||||
started.</p>
|
||||
|
||||
|
||||
<p style="margin-left:11%;"><b>WINCHINAGOV=</b><i>epid</i></p>
|
||||
|
||||
<p style="margin-left:22%;">Defines the ePID that is used
|
||||
for Windows China Government Edition activations (Enterprise
|
||||
G/GN). If you ommit this parameter, <b>vlmcsd</b>(8)
|
||||
generates a random ePID when it is started.</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>HWID=</b><i>hwid</i></p>
|
||||
|
||||
<p style="margin-left:22%;">Defines the HwId that is sent
|
||||
to clients. <i>hwid</i> must be specified as 16 hex digits
|
||||
that are interpreted as a series of 8 bytes (big endian).
|
||||
Any character that is not a hex digit will be ignored. This
|
||||
is for better readability.</p>
|
||||
|
||||
|
||||
<p style="margin-left:11%;"><b>TZ=</b><i>posix-time-zone-string</i></p>
|
||||
|
||||
<p style="margin-left:22%;">Set the time zone to
|
||||
<i>posix-time-zone-string</i>. It must conform to the
|
||||
<a href="http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap08.html">POSIX</a>
|
||||
specification. Simplified time zone strings like
|
||||
"Europe/London" or "America/Detroit" are
|
||||
not allowed. This has the very simple reason that there is
|
||||
no space on the floppy to store the time zone database.</p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">The string
|
||||
<i>CET-1CEST,M3.5.0,M10.5.0/3</i> (most countries in Europe)
|
||||
reads as follows:</p>
|
||||
|
||||
<table width="100%" border="0" rules="none" frame="void"
|
||||
cellspacing="0" cellpadding="0">
|
||||
<tr valign="top" align="left">
|
||||
<td width="22%"></td>
|
||||
<td width="13%">
|
||||
|
||||
|
||||
<p><i>CET</i></p></td>
|
||||
<td width="2%"></td>
|
||||
<td width="63%">
|
||||
|
||||
|
||||
<p>The standard (winter) time zone has the name CET.</p></td></tr>
|
||||
<tr valign="top" align="left">
|
||||
<td width="22%"></td>
|
||||
<td width="13%">
|
||||
|
||||
|
||||
<p><i>-1</i></p></td>
|
||||
<td width="2%"></td>
|
||||
<td width="63%">
|
||||
|
||||
|
||||
<p>The standard time zone is one hour east of UTC. Negative
|
||||
numbers are east of UTC. Positive numbers are west of
|
||||
UTC.</p> </td></tr>
|
||||
<tr valign="top" align="left">
|
||||
<td width="22%"></td>
|
||||
<td width="13%">
|
||||
|
||||
|
||||
<p><i>CEST</i></p></td>
|
||||
<td width="2%"></td>
|
||||
<td width="63%">
|
||||
|
||||
|
||||
<p>The daylight saving (summer) time zone has the name
|
||||
CEST.</p> </td></tr>
|
||||
<tr valign="top" align="left">
|
||||
<td width="22%"></td>
|
||||
<td width="13%">
|
||||
|
||||
|
||||
<p><i>M3.5.0</i></p></td>
|
||||
<td width="2%"></td>
|
||||
<td width="63%">
|
||||
|
||||
|
||||
<p>Daylight saving time starts in the 3rd month (March) on
|
||||
the 5th (=last) occurence of weekday 0 (Sunday) at 2
|
||||
o’clock (2 o’clock is a default value).</p></td></tr>
|
||||
<tr valign="top" align="left">
|
||||
<td width="22%"></td>
|
||||
<td width="13%">
|
||||
|
||||
|
||||
<p><i>M10.5.0/3</i></p></td>
|
||||
<td width="2%"></td>
|
||||
<td width="63%">
|
||||
|
||||
|
||||
<p>Daylight saving time ends in the 10th month (October) on
|
||||
the 5th (=last) occurence of weekday 0 (Sunday) at 3
|
||||
o’clock.</p> </td></tr>
|
||||
</table>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">If you
|
||||
don’t have daylight saving time, things are easier.
|
||||
For Chinese Standard Time for example, just use <i>CST-8</i>
|
||||
as the time zone string.</p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">On a Linux
|
||||
desktop system, you can use a command like
|
||||
<b>strings /usr/share/zoneinfo/America/New_York | tail -n1</b>.
|
||||
This should return <i>EST5EDT,M3.2.0,M11.1.0</i>. You can
|
||||
use the returned string for the
|
||||
<b>TZ=</b><i>posix-time-zone-string</i> parameter.</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>IPV4_CONFIG=</b>DHCP |
|
||||
STATIC</p>
|
||||
|
||||
<p style="margin-left:22%;">This determines how you want to
|
||||
configure IPv4 networking. If you use
|
||||
<b>IPV4_CONFIG=</b>STATIC, you must supply additional
|
||||
paramaters to the APPEND command line.</p>
|
||||
|
||||
|
||||
<p style="margin-left:11%;"><b>IPV4_ADDRESS=</b><i>ipv4-address</i>/<i>CIDR-mask</i></p>
|
||||
|
||||
<p style="margin-left:22%;">Use <i>ipv4-address</i> with
|
||||
netmask <i>CIDR-mask</i> for static IPv4 configuration. The
|
||||
netmask must not be ommitted. For IPv4 address 192.168.12.17
|
||||
with a netmask of 255.255.255.0 use <i>192.168.12.17/24</i>.
|
||||
For IPv4 address 10.4.0.8 with a netmask of 255.255.0.0 use
|
||||
10.4.0.8/16. This paramater is ignored, if you used
|
||||
<b>IPV4_CONFIG=</b>DHCP.</p>
|
||||
|
||||
|
||||
<p style="margin-left:11%;"><b>IPV4_GATEWAY=</b><i>ipv4-address</i>
|
||||
| NONE</p>
|
||||
|
||||
<p style="margin-left:22%;">Use <i>ipv4-address</i> as the
|
||||
default gateway. This is usually the IPv4 address of your
|
||||
router. You may specify NONE explicitly for no gateway. In
|
||||
this case your virtual machine is only visible on its local
|
||||
LAN. This paramater is ignored, if you used
|
||||
<b>IPV4_CONFIG=</b>DHCP.</p>
|
||||
|
||||
|
||||
<p style="margin-left:11%;"><b>IPV4_DNS1=</b><i>ipv4-address</i>
|
||||
| NONE</p>
|
||||
|
||||
<p style="margin-left:22%;">Use <i>ipv4-address</i> as the
|
||||
primary name server. In home networks this is often the IPv4
|
||||
address of your router. You may specify NONE explicitly. If
|
||||
you specified NONE for both <b>IPV4_DNS1=</b> and
|
||||
<b>IPV4_DNS2=</b>, your virtual machine cannot resolve host
|
||||
names to IP addresses. While <b>vlmcsd</b>(8) works
|
||||
perfectly without DNS servers, you must use IP addresses
|
||||
when referring to a host, e.g. for specifying an NTP server.
|
||||
This paramater is ignored, if you used
|
||||
<b>IPV4_CONFIG=</b>DHCP.</p>
|
||||
|
||||
|
||||
<p style="margin-left:11%;"><b>IPV4_DNS2=</b><i>ipv4-address</i>
|
||||
| NONE</p>
|
||||
|
||||
<p style="margin-left:22%;">Use <i>ipv4-address</i> as the
|
||||
secondary name server. It serves as a backup if the primary
|
||||
name server is not available. Home networks often
|
||||
don’t have a secondary name server. In this case set
|
||||
this to NONE. This paramater is ignored, if you used
|
||||
<b>IPV4_CONFIG=</b>DHCP.</p>
|
||||
|
||||
|
||||
<p style="margin-left:11%;"><b>NTP_SERVER=</b><i>host-name</i>
|
||||
| <i>ipv4-address</i> | NONE</p>
|
||||
|
||||
<p style="margin-left:22%;">This sets the name of a time
|
||||
server using the NTP protocol. If your virtualization
|
||||
environment reliably provides time, you can set this to
|
||||
NONE. Don’t use a public time service like
|
||||
pool.ntp.org or time.nist.gov if you have a (at least
|
||||
somewhat reliable) NTP server in your LAN.</p>
|
||||
|
||||
|
||||
<p style="margin-left:11%;"><b>HOST_NAME=</b><i>host-name</i></p>
|
||||
|
||||
<p style="margin-left:22%;">Sets the local host name for
|
||||
your virtual machine. It can be a single name or a
|
||||
fully-qualified domain name FQDN. If you used
|
||||
<b>IPV4_CONFIG=</b>DHCP and your DHCP server returns a
|
||||
domain name, the domain part of an FQDN will be replaced by
|
||||
that name. This host name or host part of an FQDN will not
|
||||
replaced by a host name returned via DHCP. The host name is
|
||||
not important for the operation of <b>floppy144.vfd</b>.</p>
|
||||
|
||||
|
||||
<p style="margin-left:11%;"><b>ROOT_PASSWORD=</b><i>password</i></p>
|
||||
|
||||
<p style="margin-left:22%;">Sets the password of the root
|
||||
user.</p>
|
||||
|
||||
|
||||
<p style="margin-left:11%;"><b>USER_NAME=</b><i>username</i></p>
|
||||
|
||||
<p style="margin-left:22%;">Sets the name of for a general
|
||||
user with no special privileges. This user can login but
|
||||
can’t do much.</p>
|
||||
|
||||
|
||||
<p style="margin-left:11%;"><b>USER_PASSWORD=</b><i>password</i></p>
|
||||
|
||||
<p style="margin-left:22%;">Sets the password for the user
|
||||
defined by <b>USER_NAME=</b><i>username</i>.</p>
|
||||
|
||||
|
||||
<p style="margin-left:11%;"><b>GUEST_PASSWORD=</b><i>password</i></p>
|
||||
|
||||
<p style="margin-left:22%;">Sets the password for the
|
||||
pre-defined guest user. This user has the same priviliges
|
||||
(none) as the user defined by
|
||||
<b>USER_NAME=</b><i>username</i>.</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>INETD=</b>Y | N</p>
|
||||
|
||||
<p style="margin-left:22%;"><b>INETD=</b>Y specifies that
|
||||
<b>inetd</b>(8) should automatically be started. That means
|
||||
you can telnet and ftp to your virtual machine.</p>
|
||||
|
||||
|
||||
<p style="margin-left:11%;"><b>VLMCSD_EXTRA_ARGS=</b><i>comma-seperated-argument-list</i></p>
|
||||
|
||||
<p style="margin-left:22%;">Allows you to specify
|
||||
additional command line options that will be passed to
|
||||
<b>vlmcsd</b>(8). Instead of spaces you use commas between
|
||||
arguments. Example: <b>VLMCSD_EXTRA_ARGS=</b>-c1,-K3,-M1</p>
|
||||
|
||||
<h2>OPERATION
|
||||
<a name="OPERATION"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>Diskless
|
||||
System</b> <br>
|
||||
The <b>floppy144.vfd</b> virtual machine is a diskless
|
||||
system that works entirely from RAM. The file system is
|
||||
actually a RAM disk that is created from the
|
||||
<b>initrd</b>(4) file on the floppy image.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">Anything
|
||||
you’ll do from inside the virtual machine, for
|
||||
instance editing a config file, will be lost when you reboot
|
||||
the machine. So, if you ever asked yourself if <b>rm -fr
|
||||
/</b> (root privileges required) really deletes all files
|
||||
from all mounted partitions, the <b>floppy144.vfd</b> VM is
|
||||
the right place to test it (Yes, it does).</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">The VM uses a
|
||||
RAM disk, because the Linux kernel had to be stripped down
|
||||
to essential features to fit on a 1.44 MB floppy. It has no
|
||||
floppy driver, no disk file system drivers and no block
|
||||
layer (cannot use disks of any type).</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>System
|
||||
startup</b> <br>
|
||||
The kernel boots up very quickly and the init script
|
||||
(/sbin/init) waits 5 seconds. In these 5 seconds you
|
||||
can:</p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">Press
|
||||
’m’ to manually enter the time zone and the IPv4
|
||||
parameters. These will be queried interactively. <br>
|
||||
Press ’t’ to manually enter the time zone only.
|
||||
<br>
|
||||
Press ’s’ to escape to a shell.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">If you
|
||||
don’t want to 5 seconds for continuing the init
|
||||
process, you can press any other key to speed things up. At
|
||||
the end of the init script you should see
|
||||
that<b>vlmcsd</b>(8) has started. You should also see the IP
|
||||
addresses and all user names and passwords.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>Logging into
|
||||
the system</b> <br>
|
||||
There are 5 local logins provided on /dev/tty2 to /dev/tty6.
|
||||
To switch to these logins, simply press ALT-F2 to ALT-F6. To
|
||||
return to the console on /dev/tty1, press ALT-F1. If
|
||||
<b>inetd</b>(8) is running you can also use
|
||||
<b>telnet</b>(1). This allows you use a terminal program
|
||||
(e.g. putty) that can utilize your keyboard layout, can be
|
||||
resized and has full UTF-8 support. The local terminals
|
||||
support US keyboard layout only. Please be aware that
|
||||
<b>telnet</b>(1) is unencrypted and everything including
|
||||
passwords is transmitted in clear text. There is not enough
|
||||
space for an ssh server like <b>sshd</b>(8) or
|
||||
<b>dropbear</b>(8).</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">The floppy
|
||||
image only provides basic Unix commands. Type <i>busybox</i>
|
||||
or <i>ll /bin</i> to get a list. The only editor available
|
||||
is <b>vi</b>(1). If you don’t like vi, you may
|
||||
transfer config files via <b>ftp</b>(1) edit them with the
|
||||
editor of your choice and transfer them back to the
|
||||
<b>floppy144.vfd</b> VM.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>The menu
|
||||
system</b> <br>
|
||||
You’ll find a menu system on /dev/tty8 (press ALT-F8
|
||||
to see it). It allows you performing some administrative
|
||||
tasks and to view various system information. It is mainly
|
||||
for users that do not have much experience with Unix
|
||||
commands. <b><br>
|
||||
1) (Re)start vlmcsd</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Starts or restarts
|
||||
<b>vlmcsd</b>(8). This is useful if you changed
|
||||
<b>/etc/vlmcsd.ini</b>(5).</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>2) Stop vlmcsd</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Stops <b>vlmcsd</b>(8).</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>3) (Re)start inetd</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Starts or restarts
|
||||
<b>inetd</b>(8). If <b>inetd</b>(8) is restarted, current
|
||||
clients connected via <b>telnet</b>(1) or <b>ftp</b>(1) will
|
||||
<b>not</b> be dropped. They can continue their sessions.
|
||||
This is useful if you changed <b>/etc/inetd.conf</b>(5).</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>4) Stop inet</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Stops <b>inetd</b>(8). All
|
||||
clients connected via <b>telnet</b>(1) or <b>ftp</b>(1) will
|
||||
be dropped immediately.</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>5) Change the time
|
||||
zone</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Just in case you missed
|
||||
pressing ’t’ during system startup. This also
|
||||
restarts <b>vlmcsd</b>(8) if it was running to notify it
|
||||
that the time zone has changed. Restarting <b>vlmcsd</b>(8)
|
||||
allows currently connected clients to finish their
|
||||
activation.</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>k) Change keyboard
|
||||
layout</b></p>
|
||||
|
||||
<p style="margin-left:22%;">This allows you to select a
|
||||
different keyboard layout.</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>6) Show all kernel boot
|
||||
parameters</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Shows all parameters passed to
|
||||
the kernel via syslinux.cfg. If you experience any
|
||||
unexpected behavior, you can use this to check if your
|
||||
APPEND line in syslinux.cfg is correct. The output is piped
|
||||
through <b>less(1)</b>. So press ’q’ to return
|
||||
to the menu.</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>7) Show boot log
|
||||
(dmesg)</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Shows the boot log of the
|
||||
kernel. The output is piped through <b>less(1)</b>. So press
|
||||
’q’ to return to the menu.</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>8) Show TCP/IP
|
||||
configuration</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Shows the TCP/IP configuration,
|
||||
listening sockets and current TCP and UDP connections.
|
||||
Useful, if you problems with net connectivity. The output is
|
||||
piped through <b>less(1)</b>. So press ’q’ to
|
||||
return to the menu.</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>9) Show running
|
||||
processes</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Shows all processes including
|
||||
memory and CPU usage. Display will updated every second.
|
||||
Press ’q’ or CTRL-C to return to the menu.</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>s) Shutdown</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Shuts down the
|
||||
<b>floppy144.vfd</b> virtual machine. Proper shutdown is not
|
||||
required. It is ok to use a hard power off in your
|
||||
virtualization program.</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>r) Reboot</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Reboots the
|
||||
<b>floppy144.vfd</b> virtual machine. Proper reboot is not
|
||||
required. It is ok to use a hard reset in your
|
||||
virtualization program.</p>
|
||||
|
||||
<h2>PERMANENT CHANGES OF INITRD
|
||||
<a name="PERMANENT CHANGES OF INITRD"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">If you want to
|
||||
change any file or script of the file system (e.g. the init
|
||||
script /sbin/init or /etc/vlmcsd.ini), you’ll need to
|
||||
mount the floppy image, unpack the <b>initrd</b>(4) file,
|
||||
make any modfications you like, create a new
|
||||
<b>initrd</b>(4) file and copy it to the mounted floppy.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">To unpack the
|
||||
<b>initrd</b>(4) file you’ll need <b>xz</b>(1) (or
|
||||
<b>lzma</b>(1) on older unix-like OSses) and <b>cpio</b>(1).
|
||||
These can be installed using your package manager on all
|
||||
major distros. It is ok to use the BSD version of
|
||||
<b>cpio</b>(1). No need to get the GNU version for BSD
|
||||
users. Provided the floppy is mounted in /mnt/floppy do the
|
||||
following: <br>
|
||||
Create an empty directory</p>
|
||||
|
||||
<p style="margin-left:22%;">mkdir
|
||||
~/vlmcsd-floppy-initrd</p>
|
||||
|
||||
<p style="margin-left:11%;">cd into that directory</p>
|
||||
|
||||
<p style="margin-left:22%;">cd ~/vlmcsd-floppy-initrd</p>
|
||||
|
||||
<p style="margin-left:11%;">Unpack initrd</p>
|
||||
|
||||
<p style="margin-left:22%;">cat /mnt/floppy/initrd | unlzma
|
||||
| cpio -i</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">After applying
|
||||
your changes build a new <b>initrd</b>(4) file: <br>
|
||||
cd into your directory</p>
|
||||
|
||||
<p style="margin-left:22%;">cd ~/vlmcsd-floppy-initrd</p>
|
||||
|
||||
<p style="margin-left:11%;">Create the packed file</p>
|
||||
|
||||
<p style="margin-left:22%;">find . | cpio -o -H newc | lzma
|
||||
> /mnt/floppy/initrd</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">Do not try to
|
||||
use ’lzma -9’ to achive better compression. The
|
||||
kernel can’t read the resulting file. While
|
||||
customizing the <b>initrd</b>(4) file works on almost any
|
||||
unix-like OS, it does not work on Windows even not with
|
||||
Cygwin. The reason is that the NTFS file system can’t
|
||||
handle uids and gids. These cannot be preserved when
|
||||
unpacking the <b>cpio</b>(1) archive to NTFS. If you use the
|
||||
WSL subsystem of Windows 10 Redstone (Anniversary Update)
|
||||
and later, you must make sure to unpack the <b>initrd</b>(4)
|
||||
file to a directory on VolFs (normally everything that is
|
||||
<b>not</b> mounted under /mnt). The <b>initrd</b>(4) file
|
||||
can be on a VolFs or DriveFs.</p>
|
||||
|
||||
<h2>FAQ
|
||||
<a name="FAQ"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>On what
|
||||
distro is the floppy image based?</b> <br>
|
||||
None. Besides the boot loader <b>ldlinux.sys</b>, there are
|
||||
only three binaries: The Linux kernel <b>bzImage</b>,
|
||||
<b>busybox</b>(1) and <b>vlmcsdmulti-x86-musl-static</b>.
|
||||
<b>bzImage</b> and <b>busybox</b>(1) have been compiled with
|
||||
carefully selected configuration parameters not found in any
|
||||
distro. This was neccesary to fit everything on a 1.44 MB
|
||||
floppy.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>Why is a
|
||||
rather old Linux kernel (3.12) used?</b> <br>
|
||||
Linux 3.12 is the last kernel that can be booted with 16 MB
|
||||
of RAM. Beginning with Linux 3.13 it requires much more
|
||||
memory (about 80 MB) to boot. The floppy image is regularly
|
||||
tested with newer kernels. Everything works except that you
|
||||
need to assign much more main memory to the virtual
|
||||
machine.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>Can the
|
||||
floppy be booted on bare metal?</b> <br>
|
||||
Basically yes. However, only Intel Pro/1000 and AMD PCNET32
|
||||
ethernet cards are supported by the kernel. In addition
|
||||
there is no USB support compiled into the kernel. That means
|
||||
you can only use an IBM AT or IBM PS/2 keyboard which are
|
||||
not available on newer hardware.</p>
|
||||
|
||||
<h2>FILES
|
||||
<a name="FILES"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>syslinux.cfg</b>,
|
||||
<b>vlmcsd.ini</b>(5)</p>
|
||||
|
||||
<h2>BUGS
|
||||
<a name="BUGS"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">IPv6 cannot be
|
||||
configured with static or manual parameters. <br>
|
||||
DHCPv6 is not supported. <br>
|
||||
´ip route add ...’ does not work. Use
|
||||
’route add ...’ instead.</p>
|
||||
|
||||
<h2>AUTHOR
|
||||
<a name="AUTHOR"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>floppy144.vfd</b>
|
||||
has been created by Hotbird64</p>
|
||||
|
||||
<h2>CREDITS
|
||||
<a name="CREDITS"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">Linus Torvalds
|
||||
et al. for the Linux kernel <br>
|
||||
Erik Andersen et al. for the original uClibc <br>
|
||||
Waldemar Brodkorb et al. for uClibc-ng <br>
|
||||
Denys Vlasenko et al. for BusyBox <br>
|
||||
H. Peter Anvin et al. for SYSLINUX</p>
|
||||
|
||||
<h2>SEE ALSO
|
||||
<a name="SEE ALSO"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>vlmcsd</b>(8),
|
||||
<b>vlmcsd.ini</b>(5), <b>initrd</b>(4), <b>busybox</b>(1),
|
||||
<b>syslinux(1)</b></p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
Binary file not shown.
@ -1,548 +0,0 @@
|
||||
VLMCSD-FLOPPY(7) KMS Activation Manual VLMCSD-FLOPPY(7)
|
||||
|
||||
|
||||
|
||||
NAME
|
||||
floppy144.vfd - a bootable floppy disk with Linux and vlmcsd(8)
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
floppy144.vfd is an image of a bootable floppy that contains a minimal
|
||||
version of Linux and vlmcsd(8). It requires only 16 MB of RAM. Its pri-
|
||||
mary purpose is to run vlmcsd(8) in a small virtual machine which makes
|
||||
it easy to use vlmcsd(8) to activate the virtual machine's host com-
|
||||
puter which is not possible in Windows 8.1 and up. The floppy image is
|
||||
a standard 3,5" floppy with 1.44 MB storage. It is formatted with a
|
||||
FAT12 filesystem. The floppy can be mounted to apply several customiza-
|
||||
tions.
|
||||
|
||||
|
||||
SUPPORTED HYPERVISORS
|
||||
The floppy image has been tested with the following hypervisors:
|
||||
|
||||
VMWare, VirtualBox, Hyper-V and QEMU
|
||||
|
||||
Others are likely to work.
|
||||
|
||||
|
||||
SETUP
|
||||
Create a new virtual machine. Assign 16 MB of RAM. Add a floppy drive
|
||||
and attach floppy144.vfd to this drive. Do not create a virtual hard
|
||||
disk. Setup the virtual machine to boot from a floppy drive (VirtualBox
|
||||
has floppy boot disabled by default). If possible, setup a virtual
|
||||
machine with plain old BIOS (not UEFI). If you created an UEFI virtual
|
||||
machine, enable the compatibility support mode (CSM) to allow a BIOS
|
||||
compatible boot. Set number of CPUs to 1. The Linux kernel is not capa-
|
||||
ble of SMP. Remove IDE, SATA, SCSI and USB support if possible. The
|
||||
Linux kernel can't handle this and ignores any devices connected to
|
||||
these buses.
|
||||
|
||||
Setup an ethernet card. The following models are supported:
|
||||
|
||||
Intel PRO/1000
|
||||
AMD PCNET III
|
||||
AMD PCNET32
|
||||
VMWare vmxnet3 (paravirtualized driver used by VMWare)
|
||||
virtio (paravirtualized driver used by VirtualBox, QEMU, KVM and
|
||||
lguest)
|
||||
|
||||
Most hypervisors emulate an Intel PRO/1000 or AMD PCNET32 by default.
|
||||
Selecting a paravirtualized driver slightly improves performance. In
|
||||
VirtualBox you can simply select virtio in the network configuration
|
||||
dialog. VMWare requires that you add or change the VMX file. Use 'eth-
|
||||
ernet0.virtualDev = "vmxnet3"' in your VMWare config file.
|
||||
|
||||
If you are using QEMU, you must also setup a TAP adapter. Port redi-
|
||||
rection does not work to activate your own computer.
|
||||
|
||||
|
||||
CONFIGURATION
|
||||
floppy144.vfd can be customized to fit your needs. This is done by
|
||||
editing the file syslinux.cfg on the floppy image. The floppy image
|
||||
must be mounted. Under Linux you can simply attach floppy144.vfd to a
|
||||
loop device which is mountable like any other block device. For Windows
|
||||
you must use some software that allows mounting a floppy image, e.g.
|
||||
OSFMount <http://www.osforensics.com/tools/mount-disk-images.html>
|
||||
|
||||
OSFMount works under all Windows versions beginning with Windows XP up
|
||||
to Windows 10 (32- and 64-bit).
|
||||
|
||||
The default syslinux.cfg file looks like this:
|
||||
|
||||
prompt 0
|
||||
TIMEOUT 50
|
||||
default dhcp
|
||||
|
||||
LABEL dhcp
|
||||
KERNEL bzImage
|
||||
APPEND vga=773 quiet initrd=initrd KBD=us LIS-
|
||||
TEN=[::]:1688,0.0.0.0:1688 TZ=UTC0 IPV4_CONFIG=DHCP
|
||||
NTP_SERVER=pool.ntp.org HOST_NAME=vlmcsd ROOT_PASSWORD=vlmcsd
|
||||
USER_NAME=user USER_PASSWORD=vlmcsd GUEST_PASSWORD=vlmcsd
|
||||
INETD=Y WINDOWS=06401-00206-271-395032-03-1033-9600.0000-1652016
|
||||
OFFICE2010=06401-00096-199-204970-03-1033-9600.0000-1652016
|
||||
OFFICE2013=06401-00206-234-921934-03-1033-9600.0000-1652016
|
||||
HWID=36:4F:46:3A:88:63:D3:5F
|
||||
|
||||
LABEL static
|
||||
KERNEL bzImage
|
||||
APPEND vga=773 quiet initrd=initrd KBD=fr LIS-
|
||||
TEN=[::]:1688,0.0.0.0:1688 TZ=CET-1CEST,M3.5.0,M10.5.0/3
|
||||
IPV4_CONFIG=STATIC IPV4_ADDRESS=192.168.20.123/24 IPV4_GATE-
|
||||
WAY=192.168.20.2 IPV4_DNS1=192.168.20.2 IPV4_DNS2=NONE
|
||||
NTP_SERVER=pool.ntp.org HOST_NAME=vlmcsd ROOT_PASSWORD=vlmcsd
|
||||
USER_NAME=user USER_PASSWORD=vlmcsd GUEST_PASSWORD=vlmcsd
|
||||
INETD=Y
|
||||
|
||||
|
||||
There are two configurations in this files: dhcp (for configuring the
|
||||
IPv4 network via DHCP) and static (for a static IPv4 configuration).
|
||||
The kernel always boots the dhcp configuration without asking (lines
|
||||
'prompt 0' and 'default dhcp'). You can simply change the default con-
|
||||
figuration to static and then customize the APPEND line in the static
|
||||
configuration. For more details how to customize the syslinux.cfg file
|
||||
see syslinux(1).
|
||||
|
||||
Each APPPEND line contains one or more items seperated by spaces. All
|
||||
items are case-sensitive. The following parameters can be customized:
|
||||
|
||||
|
||||
vga=vesa-video-mode
|
||||
Sets the VESA display mode for the virtual machine. The parame-
|
||||
ter is not optional. If you ommit it, you will not see anything
|
||||
on the screen. 773 means 1024x768 with 256 colors. See Wikipedia
|
||||
<https://en.wikipedia.org/wiki/
|
||||
VESA_BIOS_Extensions#Linux_video_mode_numbers> for more video
|
||||
modes. Note that all 16 color (4-bit) modes will not work. Use
|
||||
8-bit (256 colors), 16-bit (65536 colors), 24-bit and 32-bit (>
|
||||
16 Million colors) only. All modes above 1280x1024 are non-VESA-
|
||||
standard and vary for all (virtual) graphic cards.
|
||||
|
||||
|
||||
quiet This causes the kernel not display the its log during boot. You
|
||||
may omit quiet but it doesn't make much sense. The boot log is
|
||||
actually very verbose and scrolls away from screen quickly. If
|
||||
any errors occur during boot, they will be displayed even if
|
||||
quiet is present in the APPEND line. You may evaluate the com-
|
||||
plete boot log later by using the dmesg command or the menu on
|
||||
/dev/tty8.
|
||||
|
||||
|
||||
initrd=initial-ram-disk-file
|
||||
This defines the initial ram disk that the kernel will read.
|
||||
There is only one initial ram disk on the floppy thus leave ini-
|
||||
trd=initrd as it is.
|
||||
|
||||
|
||||
KBD=keyboard-layout-name
|
||||
This allows you to select the keyboard layout. keyboard-layout-
|
||||
name is usually the ISO 3166-1 (top level domain) code for a
|
||||
country. A list of valid keyboard-layout-names can be accessed
|
||||
via the menu system on /dev/tty8 (press ALT-F8). Note, that this
|
||||
is a keyboard driver only. There is no Unicode font support in
|
||||
floppy144.vfd (due to the fact that the kernel uses a generic
|
||||
VESA framebuffer device only). Characters beyond ASCII work for
|
||||
Western European languages only but not Eastern European, Greek,
|
||||
Cyrillic, Arabic, Hebrew, CJK and other languages. There is no
|
||||
need in floppy144.vfd to enter any characters outside ASCII. The
|
||||
purpose of the keyboard maps are that you will find characters
|
||||
like dash, backslash, brackets, braces, etc. at the usual place
|
||||
on your keyboard.
|
||||
|
||||
|
||||
LISTEN=PRIVATE[:tcp-port] | ip-address[:tcp-port][,ip-address[:tcp-
|
||||
port]][,...]
|
||||
One or more combinations of IP addresses and optional TCP port
|
||||
seperated by commas that vlmcsd(8) should listen on or PRIVATE
|
||||
to listen on all private IP addresses only. The default port is
|
||||
1688. If you use an explicit port number, append it to the IP
|
||||
address seperated by a colon. If you use a port number and the
|
||||
IP address contains colons, you must enclose the IP address in
|
||||
brackets. For example 192.168.0.2,[fd00::dead:beef]:5678 causes
|
||||
vlmcsd(8) to listen on 192.168.0.2 port 1688 and fd00::dead:beef
|
||||
port 5678.
|
||||
|
||||
|
||||
WINDOWS=epid
|
||||
Defines the ePID that is used for Windows activations. If you
|
||||
ommit this parameter, vlmcsd generates a random ePID when it is
|
||||
started.
|
||||
|
||||
|
||||
OFFICE2010=epid
|
||||
Defines the ePID that is used for Office 2010 activations. If
|
||||
you ommit this parameter, vlmcsd(8) generates a random ePID when
|
||||
it is started.
|
||||
|
||||
|
||||
OFFICE2013=epid
|
||||
Defines the ePID that is used for Office 2016 activations. If
|
||||
you ommit this parameter, vlmcsd(8) generates a random ePID when
|
||||
it is started.
|
||||
|
||||
|
||||
OFFICE2016=epid
|
||||
Defines the ePID that is used for Office 2016 activations. If
|
||||
you ommit this parameter, vlmcsd(8) generates a random ePID when
|
||||
it is started.
|
||||
|
||||
|
||||
WINCHINAGOV=epid
|
||||
Defines the ePID that is used for Windows China Government Edi-
|
||||
tion activations (Enterprise G/GN). If you ommit this parameter,
|
||||
vlmcsd(8) generates a random ePID when it is started.
|
||||
|
||||
|
||||
HWID=hwid
|
||||
Defines the HwId that is sent to clients. hwid must be specified
|
||||
as 16 hex digits that are interpreted as a series of 8 bytes
|
||||
(big endian). Any character that is not a hex digit will be
|
||||
ignored. This is for better readability.
|
||||
|
||||
|
||||
TZ=posix-time-zone-string
|
||||
Set the time zone to posix-time-zone-string. It must conform to
|
||||
the POSIX <http://pubs.opengroup.org/onlinepubs/009695399/
|
||||
basedefs/xbd_chap08.html> specification. Simplified time zone
|
||||
strings like "Europe/London" or "America/Detroit" are not
|
||||
allowed. This has the very simple reason that there is no space
|
||||
on the floppy to store the time zone database.
|
||||
|
||||
The string CET-1CEST,M3.5.0,M10.5.0/3 (most countries in Europe)
|
||||
reads as follows:
|
||||
|
||||
CET The standard (winter) time zone has the name CET.
|
||||
|
||||
-1 The standard time zone is one hour east of UTC. Nega-
|
||||
tive numbers are east of UTC. Positive numbers are
|
||||
west of UTC.
|
||||
|
||||
CEST The daylight saving (summer) time zone has the name
|
||||
CEST.
|
||||
|
||||
M3.5.0 Daylight saving time starts in the 3rd month (March)
|
||||
on the 5th (=last) occurence of weekday 0 (Sunday) at
|
||||
2 o'clock (2 o'clock is a default value).
|
||||
|
||||
M10.5.0/3 Daylight saving time ends in the 10th month (October)
|
||||
on the 5th (=last) occurence of weekday 0 (Sunday) at
|
||||
3 o'clock.
|
||||
|
||||
If you don't have daylight saving time, things are easier. For
|
||||
Chinese Standard Time for example, just use CST-8 as the time
|
||||
zone string.
|
||||
|
||||
On a Linux desktop system, you can use a command like
|
||||
strings /usr/share/zoneinfo/America/New_York | tail -n1. This
|
||||
should return EST5EDT,M3.2.0,M11.1.0. You can use the returned
|
||||
string for the TZ=posix-time-zone-string parameter.
|
||||
|
||||
|
||||
IPV4_CONFIG=DHCP | STATIC
|
||||
This determines how you want to configure IPv4 networking. If
|
||||
you use IPV4_CONFIG=STATIC, you must supply additional para-
|
||||
maters to the APPEND command line.
|
||||
|
||||
|
||||
IPV4_ADDRESS=ipv4-address/CIDR-mask
|
||||
Use ipv4-address with netmask CIDR-mask for static IPv4 configu-
|
||||
ration. The netmask must not be ommitted. For IPv4 address
|
||||
192.168.12.17 with a netmask of 255.255.255.0 use
|
||||
192.168.12.17/24. For IPv4 address 10.4.0.8 with a netmask of
|
||||
255.255.0.0 use 10.4.0.8/16. This paramater is ignored, if you
|
||||
used IPV4_CONFIG=DHCP.
|
||||
|
||||
|
||||
IPV4_GATEWAY=ipv4-address | NONE
|
||||
Use ipv4-address as the default gateway. This is usually the
|
||||
IPv4 address of your router. You may specify NONE explicitly for
|
||||
no gateway. In this case your virtual machine is only visible on
|
||||
its local LAN. This paramater is ignored, if you used IPV4_CON-
|
||||
FIG=DHCP.
|
||||
|
||||
|
||||
IPV4_DNS1=ipv4-address | NONE
|
||||
Use ipv4-address as the primary name server. In home networks
|
||||
this is often the IPv4 address of your router. You may specify
|
||||
NONE explicitly. If you specified NONE for both IPV4_DNS1= and
|
||||
IPV4_DNS2=, your virtual machine cannot resolve host names to IP
|
||||
addresses. While vlmcsd(8) works perfectly without DNS servers,
|
||||
you must use IP addresses when referring to a host, e.g. for
|
||||
specifying an NTP server. This paramater is ignored, if you used
|
||||
IPV4_CONFIG=DHCP.
|
||||
|
||||
|
||||
IPV4_DNS2=ipv4-address | NONE
|
||||
Use ipv4-address as the secondary name server. It serves as a
|
||||
backup if the primary name server is not available. Home net-
|
||||
works often don't have a secondary name server. In this case set
|
||||
this to NONE. This paramater is ignored, if you used IPV4_CON-
|
||||
FIG=DHCP.
|
||||
|
||||
|
||||
NTP_SERVER=host-name | ipv4-address | NONE
|
||||
This sets the name of a time server using the NTP protocol. If
|
||||
your virtualization environment reliably provides time, you can
|
||||
set this to NONE. Don't use a public time service like
|
||||
pool.ntp.org or time.nist.gov if you have a (at least somewhat
|
||||
reliable) NTP server in your LAN.
|
||||
|
||||
|
||||
HOST_NAME=host-name
|
||||
Sets the local host name for your virtual machine. It can be a
|
||||
single name or a fully-qualified domain name FQDN. If you used
|
||||
IPV4_CONFIG=DHCP and your DHCP server returns a domain name, the
|
||||
domain part of an FQDN will be replaced by that name. This host
|
||||
name or host part of an FQDN will not replaced by a host name
|
||||
returned via DHCP. The host name is not important for the opera-
|
||||
tion of floppy144.vfd.
|
||||
|
||||
|
||||
ROOT_PASSWORD=password
|
||||
Sets the password of the root user.
|
||||
|
||||
|
||||
USER_NAME=username
|
||||
Sets the name of for a general user with no special privileges.
|
||||
This user can login but can't do much.
|
||||
|
||||
|
||||
USER_PASSWORD=password
|
||||
Sets the password for the user defined by USER_NAME=username.
|
||||
|
||||
|
||||
GUEST_PASSWORD=password
|
||||
Sets the password for the pre-defined guest user. This user has
|
||||
the same priviliges (none) as the user defined by
|
||||
USER_NAME=username.
|
||||
|
||||
|
||||
INETD=Y | N
|
||||
INETD=Y specifies that inetd(8) should automatically be started.
|
||||
That means you can telnet and ftp to your virtual machine.
|
||||
|
||||
|
||||
VLMCSD_EXTRA_ARGS=comma-seperated-argument-list
|
||||
Allows you to specify additional command line options that will
|
||||
be passed to vlmcsd(8). Instead of spaces you use commas between
|
||||
arguments. Example: VLMCSD_EXTRA_ARGS=-c1,-K3,-M1
|
||||
|
||||
|
||||
OPERATION
|
||||
Diskless System
|
||||
The floppy144.vfd virtual machine is a diskless system that works
|
||||
entirely from RAM. The file system is actually a RAM disk that is cre-
|
||||
ated from the initrd(4) file on the floppy image.
|
||||
|
||||
Anything you'll do from inside the virtual machine, for instance edit-
|
||||
ing a config file, will be lost when you reboot the machine. So, if you
|
||||
ever asked yourself if rm -fr / (root privileges required) really
|
||||
deletes all files from all mounted partitions, the floppy144.vfd VM is
|
||||
the right place to test it (Yes, it does).
|
||||
|
||||
The VM uses a RAM disk, because the Linux kernel had to be stripped
|
||||
down to essential features to fit on a 1.44 MB floppy. It has no floppy
|
||||
driver, no disk file system drivers and no block layer (cannot use
|
||||
disks of any type).
|
||||
|
||||
|
||||
System startup
|
||||
The kernel boots up very quickly and the init script (/sbin/init) waits
|
||||
5 seconds. In these 5 seconds you can:
|
||||
|
||||
Press 'm' to manually enter the time zone and the IPv4 parame-
|
||||
ters. These will be queried interactively.
|
||||
Press 't' to manually enter the time zone only.
|
||||
Press 's' to escape to a shell.
|
||||
|
||||
If you don't want to 5 seconds for continuing the init process, you can
|
||||
press any other key to speed things up. At the end of the init script
|
||||
you should see thatvlmcsd(8) has started. You should also see the IP
|
||||
addresses and all user names and passwords.
|
||||
|
||||
|
||||
Logging into the system
|
||||
There are 5 local logins provided on /dev/tty2 to /dev/tty6. To switch
|
||||
to these logins, simply press ALT-F2 to ALT-F6. To return to the con-
|
||||
sole on /dev/tty1, press ALT-F1. If inetd(8) is running you can also
|
||||
use telnet(1). This allows you use a terminal program (e.g. putty) that
|
||||
can utilize your keyboard layout, can be resized and has full UTF-8
|
||||
support. The local terminals support US keyboard layout only. Please be
|
||||
aware that telnet(1) is unencrypted and everything including passwords
|
||||
is transmitted in clear text. There is not enough space for an ssh
|
||||
server like sshd(8) or dropbear(8).
|
||||
|
||||
The floppy image only provides basic Unix commands. Type busybox or ll
|
||||
/bin to get a list. The only editor available is vi(1). If you don't
|
||||
like vi, you may transfer config files via ftp(1) edit them with the
|
||||
editor of your choice and transfer them back to the floppy144.vfd VM.
|
||||
|
||||
|
||||
The menu system
|
||||
You'll find a menu system on /dev/tty8 (press ALT-F8 to see it). It
|
||||
allows you performing some administrative tasks and to view various
|
||||
system information. It is mainly for users that do not have much expe-
|
||||
rience with Unix commands.
|
||||
|
||||
|
||||
1) (Re)start vlmcsd
|
||||
Starts or restarts vlmcsd(8). This is useful if you changed
|
||||
/etc/vlmcsd.ini(5).
|
||||
|
||||
|
||||
2) Stop vlmcsd
|
||||
Stops vlmcsd(8).
|
||||
|
||||
|
||||
3) (Re)start inetd
|
||||
Starts or restarts inetd(8). If inetd(8) is restarted, current
|
||||
clients connected via telnet(1) or ftp(1) will not be dropped.
|
||||
They can continue their sessions. This is useful if you changed
|
||||
/etc/inetd.conf(5).
|
||||
|
||||
|
||||
4) Stop inet
|
||||
Stops inetd(8). All clients connected via telnet(1) or ftp(1)
|
||||
will be dropped immediately.
|
||||
|
||||
|
||||
5) Change the time zone
|
||||
Just in case you missed pressing 't' during system startup. This
|
||||
also restarts vlmcsd(8) if it was running to notify it that the
|
||||
time zone has changed. Restarting vlmcsd(8) allows currently
|
||||
connected clients to finish their activation.
|
||||
|
||||
|
||||
k) Change keyboard layout
|
||||
This allows you to select a different keyboard layout.
|
||||
|
||||
|
||||
6) Show all kernel boot parameters
|
||||
Shows all parameters passed to the kernel via syslinux.cfg. If
|
||||
you experience any unexpected behavior, you can use this to
|
||||
check if your APPEND line in syslinux.cfg is correct. The output
|
||||
is piped through less(1). So press 'q' to return to the menu.
|
||||
|
||||
|
||||
7) Show boot log (dmesg)
|
||||
Shows the boot log of the kernel. The output is piped through
|
||||
less(1). So press 'q' to return to the menu.
|
||||
|
||||
|
||||
8) Show TCP/IP configuration
|
||||
Shows the TCP/IP configuration, listening sockets and current
|
||||
TCP and UDP connections. Useful, if you problems with net con-
|
||||
nectivity. The output is piped through less(1). So press 'q' to
|
||||
return to the menu.
|
||||
|
||||
|
||||
9) Show running processes
|
||||
Shows all processes including memory and CPU usage. Display will
|
||||
updated every second. Press 'q' or CTRL-C to return to the menu.
|
||||
|
||||
|
||||
s) Shutdown
|
||||
Shuts down the floppy144.vfd virtual machine. Proper shutdown is
|
||||
not required. It is ok to use a hard power off in your virtual-
|
||||
ization program.
|
||||
|
||||
|
||||
r) Reboot
|
||||
Reboots the floppy144.vfd virtual machine. Proper reboot is not
|
||||
required. It is ok to use a hard reset in your virtualization
|
||||
program.
|
||||
|
||||
|
||||
PERMANENT CHANGES OF INITRD
|
||||
If you want to change any file or script of the file system (e.g. the
|
||||
init script /sbin/init or /etc/vlmcsd.ini), you'll need to mount the
|
||||
floppy image, unpack the initrd(4) file, make any modfications you
|
||||
like, create a new initrd(4) file and copy it to the mounted floppy.
|
||||
|
||||
To unpack the initrd(4) file you'll need xz(1) (or lzma(1) on older
|
||||
unix-like OSses) and cpio(1). These can be installed using your package
|
||||
manager on all major distros. It is ok to use the BSD version of
|
||||
cpio(1). No need to get the GNU version for BSD users. Provided the
|
||||
floppy is mounted in /mnt/floppy do the following:
|
||||
|
||||
Create an empty directory
|
||||
mkdir ~/vlmcsd-floppy-initrd
|
||||
|
||||
cd into that directory
|
||||
cd ~/vlmcsd-floppy-initrd
|
||||
|
||||
Unpack initrd
|
||||
cat /mnt/floppy/initrd | unlzma | cpio -i
|
||||
|
||||
After applying your changes build a new initrd(4) file:
|
||||
|
||||
|
||||
cd into your directory
|
||||
cd ~/vlmcsd-floppy-initrd
|
||||
|
||||
Create the packed file
|
||||
find . | cpio -o -H newc | lzma > /mnt/floppy/initrd
|
||||
|
||||
Do not try to use 'lzma -9' to achive better compression. The kernel
|
||||
can't read the resulting file. While customizing the initrd(4) file
|
||||
works on almost any unix-like OS, it does not work on Windows even not
|
||||
with Cygwin. The reason is that the NTFS file system can't handle uids
|
||||
and gids. These cannot be preserved when unpacking the cpio(1) archive
|
||||
to NTFS. If you use the WSL subsystem of Windows 10 Redstone (Anniver-
|
||||
sary Update) and later, you must make sure to unpack the initrd(4) file
|
||||
to a directory on VolFs (normally everything that is not mounted under
|
||||
/mnt). The initrd(4) file can be on a VolFs or DriveFs.
|
||||
|
||||
|
||||
FAQ
|
||||
On what distro is the floppy image based?
|
||||
None. Besides the boot loader ldlinux.sys, there are only three bina-
|
||||
ries: The Linux kernel bzImage, busybox(1) and vlmcsdmulti-x86-musl-
|
||||
static. bzImage and busybox(1) have been compiled with carefully
|
||||
selected configuration parameters not found in any distro. This was
|
||||
neccesary to fit everything on a 1.44 MB floppy.
|
||||
|
||||
|
||||
Why is a rather old Linux kernel (3.12) used?
|
||||
Linux 3.12 is the last kernel that can be booted with 16 MB of RAM.
|
||||
Beginning with Linux 3.13 it requires much more memory (about 80 MB) to
|
||||
boot. The floppy image is regularly tested with newer kernels. Every-
|
||||
thing works except that you need to assign much more main memory to the
|
||||
virtual machine.
|
||||
|
||||
|
||||
Can the floppy be booted on bare metal?
|
||||
Basically yes. However, only Intel Pro/1000 and AMD PCNET32 ethernet
|
||||
cards are supported by the kernel. In addition there is no USB support
|
||||
compiled into the kernel. That means you can only use an IBM AT or IBM
|
||||
PS/2 keyboard which are not available on newer hardware.
|
||||
|
||||
|
||||
FILES
|
||||
syslinux.cfg, vlmcsd.ini(5)
|
||||
|
||||
|
||||
BUGS
|
||||
IPv6 cannot be configured with static or manual parameters.
|
||||
DHCPv6 is not supported.
|
||||
'ip route add ...' does not work. Use 'route add ...' instead.
|
||||
|
||||
|
||||
AUTHOR
|
||||
floppy144.vfd has been created by Hotbird64
|
||||
|
||||
|
||||
CREDITS
|
||||
Linus Torvalds et al. for the Linux kernel
|
||||
Erik Andersen et al. for the original uClibc
|
||||
Waldemar Brodkorb et al. for uClibc-ng
|
||||
Denys Vlasenko et al. for BusyBox
|
||||
H. Peter Anvin et al. for SYSLINUX
|
||||
|
||||
|
||||
SEE ALSO
|
||||
vlmcsd(8), vlmcsd.ini(5), initrd(4), busybox(1), syslinux(1)
|
||||
|
||||
|
||||
|
||||
Hotbird64 May 2017 VLMCSD-FLOPPY(7)
|
@ -1,226 +0,0 @@
|
||||
VLMCSD(7) KMS Activation Manual VLMCSD(7)
|
||||
|
||||
|
||||
|
||||
NAME
|
||||
vlmcsd - a guide to KMS activation using vlmcsd
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
vlmcsd [ options ]
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
This manual describes the concepts of Microsoft KMS activation using
|
||||
vlmcsd. For detailed usage of vlmcsd see vlmcsd(8).
|
||||
|
||||
|
||||
What is KMS?
|
||||
KMS is a way to activate Microsoft products that was designed for
|
||||
medium and large businesses. In a standard SOHO environment you enter a
|
||||
product key during installation and then activate your product over the
|
||||
Internet. This is done by sending a request to a server at micro-
|
||||
soft.com which then either grants or refuses activation.
|
||||
|
||||
By entering a special key called General Volume License Key (GVLK),
|
||||
a.k.a "KMS client key", the product no longer asks the Microsoft server
|
||||
for activation but a user-defined server (called the KMS server) which
|
||||
usually resides in a company's intranet. vlmcsd is an independent open
|
||||
source implementation of a KMS server that is available for everyone
|
||||
while Microsoft gives their KMS server only to corporations that signed
|
||||
a so called "Select contract". In addition vlmcsd never refuses activa-
|
||||
tion while the Microsoft KMS server only activates the products the
|
||||
customer has paid for.
|
||||
|
||||
Product activation using vlmcsd is performed in three easy steps:
|
||||
|
||||
1) Run vlmcsd (or any other KMS emulator) on a computer in your net-
|
||||
work. This will be your KMS server. New users should simply run the
|
||||
program without any parameters. The defaults should fit the needs of
|
||||
most users.
|
||||
|
||||
2) Install your product and enter the GVLK when you are asked for a key
|
||||
|
||||
3) Configure your client (the machine where you installed your product)
|
||||
to use your KMS server.
|
||||
|
||||
However, when it comes to the details, some things turn out to be more
|
||||
difficult than you might think.
|
||||
|
||||
The most important thing to know is that KMS activation is not perma-
|
||||
nent. The computer remains activated for 180 days (30 or 45 days with
|
||||
consumer-only products). KMS activation however is not an evaluation
|
||||
license. You can repeat the activation anytime and as often as you like
|
||||
to extend activation to another 180 days. This normally happens auto-
|
||||
matically. For this to work, you have to ensure that a KMS server is
|
||||
always reachable for the clients on your network.
|
||||
|
||||
Beginning with Windows 8.1 the KMS server must be a different computer
|
||||
than the client. You cannot use vlmcsd on the same computer where you
|
||||
want to activate a product. If you have only one computer, you can run
|
||||
vlmcsd in a virtual machine. vlmcsd is also designed to run on "always-
|
||||
on devices", for example a router. The router becomes your KMS server
|
||||
then.
|
||||
|
||||
|
||||
How to get a GVLK?
|
||||
That is relatively simple. The GVLKs are published on Microsoft's Tech-
|
||||
net web site.
|
||||
|
||||
Windows: http://technet.microsoft.com/en-us/library/jj612867.aspx
|
||||
Office 2010: http://technet.microsoft.com/en-
|
||||
us/library/ee624355(v=office.14).aspx#section2_3
|
||||
Office 2013: http://technet.microsoft.com/en-us/library/dn385360.aspx
|
||||
|
||||
These lists only include products that Microsoft sells to corporations
|
||||
via volume license contracts. For Windows there are inofficial GVLKs
|
||||
that work with consumer-only versions of Windows. Here is a list:
|
||||
|
||||
TX9XD-98N7V-6WMQ6-BX7FG-H8Q99 - Windows 10 Home
|
||||
3KHY7-WNT83-DGQKR-F7HPR-844BM - Windows 10 Home N
|
||||
7HNRX-D7KGG-3K4RQ-4WPJ4-YTDFH - Windows 10 Home Single Language
|
||||
PVMJN-6DFY6-9CCP6-7BKTT-D3WVR - Windows 10 Home Country Specific
|
||||
789NJ-TQK6T-6XTH8-J39CJ-J8D3P - Windows 8.1 Professional with Media
|
||||
Center
|
||||
M9Q9P-WNJJT-6PXPY-DWX8H-6XWKK - Windows 8.1 Core
|
||||
7B9N3-D94CG-YTVHR-QBPX3-RJP64 - Windows 8.1 Core N
|
||||
BB6NG-PQ82V-VRDPW-8XVD2-V8P66 - Windows 8.1 Core Single Language
|
||||
NCTT7-2RGK8-WMHRF-RY7YQ-JTXG3 - Windows 8.1 Core Country Specific
|
||||
GNBB8-YVD74-QJHX6-27H4K-8QHDG - Windows 8 Professional with Media Cen-
|
||||
ter
|
||||
BN3D2-R7TKB-3YPBD-8DRP2-27GG4 - Windows 8 Core
|
||||
8N2M2-HWPGY-7PGT9-HGDD8-GVGGY - Windows 8 Core N
|
||||
2WN2H-YGCQR-KFX6K-CD6TF-84YXQ - Windows 8 Core Single Language
|
||||
4K36P-JN4VD-GDC6V-KDT89-DYFKP - Windows 8 Core Country Specific
|
||||
|
||||
The above keys require activation renewal every 45 days (Win 8.1) or 30
|
||||
days (Win 8). All GVLKs from the Microsoft Technet web site require
|
||||
renewal every 180 days.
|
||||
|
||||
|
||||
What are SLMGR and OSPP and how to use them?
|
||||
You will need these utilities later. So please continue reading this
|
||||
section.
|
||||
|
||||
These are two Visual Basic script utilities that are used to control
|
||||
Microsoft's Software Protection system. To use them open a Windows Com-
|
||||
mand Prompt. slmgr.vbs is for Windows. ospp.vbs is for Office 2010 and
|
||||
2013. These utilities are installed with Windows and Office and you
|
||||
don't need to download them.
|
||||
|
||||
slmgr.vbs resides in the system32 directory. So you just have to type
|
||||
"slmgr" in the Windows Command prompt to use it. To use ospp.vbs you'll
|
||||
have to change the current directory to your Office installation. This
|
||||
is usually something like "C:\Program Files\Microsoft Office\Office14".
|
||||
You may type "slmgr" or "cscript ospp.vbs" without parameters to see
|
||||
help for these commands but this produces some rather confusing output
|
||||
for newbies.
|
||||
|
||||
|
||||
How to get the GVLK into the product?
|
||||
Normally every product asks you to enter a key during installation. At
|
||||
this time simply enter the GVLK. If you skipped this step or entered
|
||||
some other key which later turned out to be non-working, you can use
|
||||
"slmgr /ipk GVLK" (Windows) or "cscript ospp.vbs /inpkey:GVLK" (Office)
|
||||
at any time.
|
||||
|
||||
Examples
|
||||
slmgr /ipk GCRJD-8NW9H-F2CDX-CCM8D-9D6T9
|
||||
cscript ospp.vbs /inpkey:YC7DK-G2NP3-2QQC3-J6H88-GVGXT
|
||||
|
||||
|
||||
Why doesn't Office accpet a GVLK?
|
||||
You'll have to install a volume license (VL) version of Office. Office
|
||||
versions downloaded from MSDN and/or Technet are non-VL.
|
||||
|
||||
|
||||
How to configure a client to use a KMS server?
|
||||
After you have installed a GVLK you can set your product to use your
|
||||
KMS server. vlmcsd or another KMS server must already be running on
|
||||
your server machine.
|
||||
|
||||
Windows
|
||||
|
||||
Type "slmgr /skms kms-server[:tcp-port]". Example:
|
||||
"slmgr /skms 192.168.1.17:1688"
|
||||
|
||||
|
||||
Office
|
||||
|
||||
1) Type "cscript ospp.vbs /sethst:kms-server". Example "cscript
|
||||
ospp.vbs /sethst:192.168.1.17"
|
||||
|
||||
2) Type "cscript ospp.vbs /setprt:tcp-port". Example: cscript
|
||||
ospp.vbs /setprt:1688
|
||||
|
||||
tcp-port is usually 1688 unless you instructed vlmcsd to use a differ-
|
||||
ent port which is rarely necessary.
|
||||
|
||||
|
||||
How to activate my product?
|
||||
If you have installed a product with GVLK and pointed it to working KMS
|
||||
server like vlmcsd, activation occurs automatically. This may take a
|
||||
while.
|
||||
|
||||
You may type
|
||||
slmgr /ato
|
||||
-or-
|
||||
cscript ospp.vbs /act
|
||||
|
||||
at any time to speed up that process. You may repeat these commands
|
||||
later to extend your activation for another 180 (45) days.
|
||||
|
||||
|
||||
Does vlmcsd work correctly?
|
||||
If something does not work, it may have the cause that vlmcsd does not
|
||||
work correctly although this is unlikely. You can test this with the
|
||||
KMS client vlmcs(1). First type "vlmcs" on the same machine where you
|
||||
started vlmcsd. If things are ok, you should see something like this:
|
||||
|
||||
Connecting to 127.0.0.1:1688 ... successful
|
||||
Sending activation request (KMS V4) 1 of 1 ->
|
||||
06401-00206-296-206344-03-5179-9600.0000-3432013
|
||||
|
||||
If anything goes wrong, you'll see an error message. Next try "vlmcs
|
||||
kms-server" from another machine where kms-server is the hostname or IP
|
||||
address of your KMS server. If that fails while it works locally,
|
||||
you'll most likely have to configure your firewall that it accepts
|
||||
incoming connections on TCP port 1688.
|
||||
|
||||
|
||||
Is there an easier way than using OSPP and SLMGR?
|
||||
Yes and no. KMS activation was designed for large corporations. Thus
|
||||
Microsoft designed KMS in a way that corporations can configure their
|
||||
network infrastructure to fully automate KMS activation. Since this
|
||||
involves DHCP and DNS, it is not that easy to accomplish that for home
|
||||
users. However, if you are using an open source router firmware like
|
||||
OpenWRT or DD-WRT, it is easy to customize DHCP and DNS.
|
||||
|
||||
1) Configure DHCP that it assigns a DNS domain name to your clients (if
|
||||
it doesn't already), e.g. my-home-net.local
|
||||
|
||||
2) Create zone my-home-net.local in your DNS server (if it doesn't
|
||||
exist already).
|
||||
|
||||
3) Add the following records to your DNS
|
||||
|
||||
_vlmcs._tcp.my-home-net.local. 10800 IN SRV 100 100 kms1.my-home-
|
||||
net.local.
|
||||
kms1.my-home-net.local. 10800 IN A 192.168.1.17
|
||||
|
||||
Replace 192.168.1.17 with the IP address of your KMS server. If you
|
||||
don't like a cache time of 10800 seconds (3 hours), replace it with
|
||||
another number.
|
||||
|
||||
This causes that clients will find the KMS server automatically.
|
||||
|
||||
|
||||
AUTHOR
|
||||
This manual page was written by Hotbird64.
|
||||
|
||||
SEE ALSO
|
||||
vlmcsd(8), vlmcs(1)
|
||||
|
||||
|
||||
|
||||
Hotbird64 March 2016 VLMCSD(7)
|
@ -1,416 +0,0 @@
|
||||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Sat Oct 20 09:49:39 2018 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title>VLMCSD</title>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1 align="center">VLMCSD</h1>
|
||||
|
||||
<a href="#NAME">NAME</a><br>
|
||||
<a href="#SYNOPSIS">SYNOPSIS</a><br>
|
||||
<a href="#DESCRIPTION">DESCRIPTION</a><br>
|
||||
<a href="#AUTHOR">AUTHOR</a><br>
|
||||
<a href="#SEE ALSO">SEE ALSO</a><br>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<h2>NAME
|
||||
<a name="NAME"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">vlmcsd - a
|
||||
guide to KMS activation using vlmcsd</p>
|
||||
|
||||
<h2>SYNOPSIS
|
||||
<a name="SYNOPSIS"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>vlmcsd</b> [
|
||||
<i>options</i> ]</p>
|
||||
|
||||
<h2>DESCRIPTION
|
||||
<a name="DESCRIPTION"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">This manual
|
||||
describes the concepts of Microsoft KMS activation using
|
||||
<b>vlmcsd</b>. For detailed usage of <b>vlmcsd</b> see
|
||||
<b>vlmcsd</b>(8).</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>What is
|
||||
KMS?</b> <br>
|
||||
KMS is a way to activate Microsoft products that was
|
||||
designed for medium and large businesses. In a standard SOHO
|
||||
environment you enter a product key during installation and
|
||||
then activate your product over the Internet. This is done
|
||||
by sending a request to a server at microsoft.com which then
|
||||
either grants or refuses activation.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">By entering a
|
||||
special key called General Volume License Key (<b>GVLK</b>),
|
||||
a.k.a "KMS client key", the product no longer asks
|
||||
the Microsoft server for activation but a user-defined
|
||||
server (called the KMS server) which usually resides in a
|
||||
company’s intranet. <b>vlmcsd</b> is an independent
|
||||
open source implementation of a KMS server that is available
|
||||
for everyone while Microsoft gives their KMS server only to
|
||||
corporations that signed a so called "Select
|
||||
contract". In addition <b>vlmcsd</b> never refuses
|
||||
activation while the Microsoft KMS server only activates the
|
||||
products the customer has paid for.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">Product
|
||||
activation using <b>vlmcsd</b> is performed in three easy
|
||||
steps:</p>
|
||||
|
||||
<table width="100%" border="0" rules="none" frame="void"
|
||||
cellspacing="0" cellpadding="0">
|
||||
<tr valign="top" align="left">
|
||||
<td width="11%"></td>
|
||||
<td width="3%">
|
||||
|
||||
|
||||
<p>1)</p></td>
|
||||
<td width="1%"></td>
|
||||
<td width="85%">
|
||||
|
||||
|
||||
<p>Run <b>vlmcsd</b> (or any other KMS emulator) on a
|
||||
computer in your network. This will be your KMS server. New
|
||||
users should simply run the program without any parameters.
|
||||
The defaults should fit the needs of most users.</p></td></tr>
|
||||
<tr valign="top" align="left">
|
||||
<td width="11%"></td>
|
||||
<td width="3%">
|
||||
|
||||
|
||||
<p>2)</p></td>
|
||||
<td width="1%"></td>
|
||||
<td width="85%">
|
||||
|
||||
|
||||
<p>Install your product and enter the GVLK when you are
|
||||
asked for a key</p></td></tr>
|
||||
<tr valign="top" align="left">
|
||||
<td width="11%"></td>
|
||||
<td width="3%">
|
||||
|
||||
|
||||
<p>3)</p></td>
|
||||
<td width="1%"></td>
|
||||
<td width="85%">
|
||||
|
||||
|
||||
<p>Configure your client (the machine where you installed
|
||||
your product) to use your KMS server.</p></td></tr>
|
||||
</table>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">However, when
|
||||
it comes to the details, some things turn out to be more
|
||||
difficult than you might think.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">The most
|
||||
important thing to know is that KMS activation is not
|
||||
permanent. The computer remains activated for 180 days (30
|
||||
or 45 days with consumer-only products). KMS activation
|
||||
however is not an evaluation license. You can repeat the
|
||||
activation anytime and as often as you like to extend
|
||||
activation to another 180 days. This normally happens
|
||||
automatically. For this to work, you have to ensure that a
|
||||
KMS server is always reachable for the clients on your
|
||||
network.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">Beginning with
|
||||
Windows 8.1 the KMS server must be a different computer than
|
||||
the client. You cannot use <b>vlmcsd</b> on the same
|
||||
computer where you want to activate a product. If you have
|
||||
only one computer, you can run <b>vlmcsd</b> in a virtual
|
||||
machine. <b>vlmcsd</b> is also designed to run on
|
||||
"always-on devices", for example a router. The
|
||||
router becomes your KMS server then.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>How to get a
|
||||
GVLK?</b> <br>
|
||||
That is relatively simple. The GVLKs are published on
|
||||
Microsoft’s Technet web site.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">Windows:
|
||||
http://technet.microsoft.com/en-us/library/jj612867.aspx
|
||||
<br>
|
||||
Office 2010:
|
||||
http://technet.microsoft.com/en-us/library/ee624355(v=office.14).aspx#section2_3
|
||||
<br>
|
||||
Office 2013:
|
||||
http://technet.microsoft.com/en-us/library/dn385360.aspx</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">These lists
|
||||
only include products that Microsoft sells to corporations
|
||||
via volume license contracts. For Windows there are
|
||||
inofficial GVLKs that work with consumer-only versions of
|
||||
Windows. Here is a list:</p>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">TX9XD-98N7V-6WMQ6-BX7FG-H8Q99
|
||||
- Windows 10 Home <br>
|
||||
3KHY7-WNT83-DGQKR-F7HPR-844BM - Windows 10 Home N <br>
|
||||
7HNRX-D7KGG-3K4RQ-4WPJ4-YTDFH - Windows 10 Home Single
|
||||
Language <br>
|
||||
PVMJN-6DFY6-9CCP6-7BKTT-D3WVR - Windows 10 Home Country
|
||||
Specific <br>
|
||||
789NJ-TQK6T-6XTH8-J39CJ-J8D3P - Windows 8.1 Professional
|
||||
with Media Center <br>
|
||||
M9Q9P-WNJJT-6PXPY-DWX8H-6XWKK - Windows 8.1 Core <br>
|
||||
7B9N3-D94CG-YTVHR-QBPX3-RJP64 - Windows 8.1 Core N <br>
|
||||
BB6NG-PQ82V-VRDPW-8XVD2-V8P66 - Windows 8.1 Core Single
|
||||
Language <br>
|
||||
NCTT7-2RGK8-WMHRF-RY7YQ-JTXG3 - Windows 8.1 Core Country
|
||||
Specific <br>
|
||||
GNBB8-YVD74-QJHX6-27H4K-8QHDG - Windows 8 Professional with
|
||||
Media Center <br>
|
||||
BN3D2-R7TKB-3YPBD-8DRP2-27GG4 - Windows 8 Core <br>
|
||||
8N2M2-HWPGY-7PGT9-HGDD8-GVGGY - Windows 8 Core N <br>
|
||||
2WN2H-YGCQR-KFX6K-CD6TF-84YXQ - Windows 8 Core Single
|
||||
Language <br>
|
||||
4K36P-JN4VD-GDC6V-KDT89-DYFKP - Windows 8 Core Country
|
||||
Specific</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">The above keys
|
||||
require activation renewal every 45 days (Win 8.1) or 30
|
||||
days (Win 8). All GVLKs from the Microsoft Technet web site
|
||||
require renewal every 180 days.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>What are
|
||||
SLMGR and OSPP and how to use them?</b> <br>
|
||||
You will need these utilities later. So please continue
|
||||
reading this section.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">These are two
|
||||
Visual Basic script utilities that are used to control
|
||||
Microsoft’s Software Protection system. To use them
|
||||
open a Windows Command Prompt. slmgr.vbs is for Windows.
|
||||
ospp.vbs is for Office 2010 and 2013. These utilities are
|
||||
installed with Windows and Office and you don’t need
|
||||
to download them.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">slmgr.vbs
|
||||
resides in the system32 directory. So you just have to type
|
||||
"slmgr" in the Windows Command prompt to use it.
|
||||
To use ospp.vbs you’ll have to change the current
|
||||
directory to your Office installation. This is usually
|
||||
something like
|
||||
"C:\Program Files\Microsoft Office\Office14".
|
||||
You may type "slmgr" or "cscript
|
||||
ospp.vbs" without parameters to see help for these
|
||||
commands but this produces some rather confusing output for
|
||||
newbies.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>How to get
|
||||
the GVLK into the product?</b> <br>
|
||||
Normally every product asks you to enter a key during
|
||||
installation. At this time simply enter the GVLK. If you
|
||||
skipped this step or entered some other key which later
|
||||
turned out to be non-working, you can use
|
||||
"slmgr /ipk <i>GVLK</i>" (Windows) or
|
||||
"cscript ospp.vbs /inpkey:<i>GVLK</i>"
|
||||
(Office) at any time. <b><br>
|
||||
Examples</b></p>
|
||||
|
||||
<p style="margin-left:22%;">slmgr /ipk
|
||||
GCRJD-8NW9H-F2CDX-CCM8D-9D6T9 <br>
|
||||
cscript
|
||||
ospp.vbs /inpkey:YC7DK-G2NP3-2QQC3-J6H88-GVGXT</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>Why
|
||||
doesn’t Office accpet a GVLK?</b> <br>
|
||||
You’ll have to install a volume license (VL) version
|
||||
of Office. Office versions downloaded from MSDN and/or
|
||||
Technet are non-VL.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>How to
|
||||
configure a client to use a KMS server?</b> <br>
|
||||
After you have installed a GVLK you can set your product to
|
||||
use your KMS server. <b>vlmcsd</b> or another KMS server
|
||||
must already be running on your server machine. <b><br>
|
||||
Windows</b></p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">Type
|
||||
"slmgr /skms <i>kms-server</i>[:<i>tcp-port</i>]".
|
||||
Example: "slmgr /skms 192.168.1.17:1688"
|
||||
<b><br>
|
||||
Office</b></p>
|
||||
|
||||
<table width="100%" border="0" rules="none" frame="void"
|
||||
cellspacing="0" cellpadding="0">
|
||||
<tr valign="top" align="left">
|
||||
<td width="11%"></td>
|
||||
<td width="3%">
|
||||
|
||||
|
||||
<p>1)</p></td>
|
||||
<td width="1%"></td>
|
||||
<td width="85%">
|
||||
|
||||
|
||||
<p>Type "cscript
|
||||
ospp.vbs /sethst:<i>kms-server</i>". Example
|
||||
"cscript ospp.vbs /sethst:192.168.1.17"</p></td></tr>
|
||||
<tr valign="top" align="left">
|
||||
<td width="11%"></td>
|
||||
<td width="3%">
|
||||
|
||||
|
||||
<p>2)</p></td>
|
||||
<td width="1%"></td>
|
||||
<td width="85%">
|
||||
|
||||
|
||||
<p>Type "cscript
|
||||
ospp.vbs /setprt:<i>tcp-port</i>". Example:
|
||||
cscript ospp.vbs /setprt:1688</p></td></tr>
|
||||
</table>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><i>tcp-port</i>
|
||||
is usually 1688 unless you instructed <b>vlmcsd</b> to use a
|
||||
different port which is rarely necessary.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>How to
|
||||
activate my product?</b> <br>
|
||||
If you have installed a product with GVLK and pointed it to
|
||||
working KMS server like <b>vlmcsd</b>, activation occurs
|
||||
automatically. This may take a while. <br>
|
||||
You may type</p>
|
||||
|
||||
<p style="margin-left:22%;">slmgr /ato <br>
|
||||
-or- <br>
|
||||
cscript ospp.vbs /act</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">at any time to
|
||||
speed up that process. You may repeat these commands later
|
||||
to extend your activation for another 180 (45) days.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>Does vlmcsd
|
||||
work correctly?</b> <br>
|
||||
If something does not work, it may have the cause that
|
||||
vlmcsd does not work correctly although this is unlikely.
|
||||
You can test this with the KMS client <b>vlmcs</b>(1). First
|
||||
type "vlmcs" on the same machine where you started
|
||||
<b>vlmcsd</b>. If things are ok, you should see something
|
||||
like this:</p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">Connecting to
|
||||
127.0.0.1:1688 ... successful <br>
|
||||
|
||||
Sending activation request (KMS V4) 1 of 1 ->
|
||||
06401-00206-296-206344-03-5179-9600.0000-3432013</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">If anything
|
||||
goes wrong, you’ll see an error message. Next try
|
||||
"vlmcs <i>kms-server</i>" from another machine
|
||||
where <i>kms-server</i> is the hostname or IP address of
|
||||
your KMS server. If that fails while it works locally,
|
||||
you’ll most likely have to configure your firewall
|
||||
that it accepts incoming connections on TCP port 1688.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>Is there an
|
||||
easier way than using OSPP and SLMGR?</b> <br>
|
||||
Yes and no. KMS activation was designed for large
|
||||
corporations. Thus Microsoft designed KMS in a way that
|
||||
corporations can configure their network infrastructure to
|
||||
fully automate KMS activation. Since this involves DHCP and
|
||||
DNS, it is not that easy to accomplish that for home users.
|
||||
However, if you are using an open source router firmware
|
||||
like OpenWRT or DD-WRT, it is easy to customize DHCP and
|
||||
DNS.</p>
|
||||
|
||||
<table width="100%" border="0" rules="none" frame="void"
|
||||
cellspacing="0" cellpadding="0">
|
||||
<tr valign="top" align="left">
|
||||
<td width="11%"></td>
|
||||
<td width="3%">
|
||||
|
||||
|
||||
<p>1)</p></td>
|
||||
<td width="1%"></td>
|
||||
<td width="85%">
|
||||
|
||||
|
||||
<p>Configure DHCP that it assigns a DNS domain name to your
|
||||
clients (if it doesn’t already), e.g.
|
||||
my-home-net.local</p> </td></tr>
|
||||
<tr valign="top" align="left">
|
||||
<td width="11%"></td>
|
||||
<td width="3%">
|
||||
|
||||
|
||||
<p>2)</p></td>
|
||||
<td width="1%"></td>
|
||||
<td width="85%">
|
||||
|
||||
|
||||
<p>Create zone my-home-net.local in your DNS server (if it
|
||||
doesn’t exist already).</p></td></tr>
|
||||
<tr valign="top" align="left">
|
||||
<td width="11%"></td>
|
||||
<td width="3%">
|
||||
|
||||
|
||||
<p>3)</p></td>
|
||||
<td width="1%"></td>
|
||||
<td width="85%">
|
||||
|
||||
|
||||
<p>Add the following records to your DNS</p></td></tr>
|
||||
</table>
|
||||
|
||||
|
||||
<p style="margin-left:15%; margin-top: 1em">_vlmcs._tcp.my-home-net.local.
|
||||
10800 IN SRV 100 100 kms1.my-home-net.local. <br>
|
||||
kms1.my-home-net.local. 10800 IN A 192.168.1.17</p>
|
||||
|
||||
<p style="margin-left:15%; margin-top: 1em">Replace
|
||||
192.168.1.17 with the IP address of your KMS server. If you
|
||||
don’t like a cache time of 10800 seconds (3 hours),
|
||||
replace it with another number.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">This causes
|
||||
that clients will find the KMS server automatically.</p>
|
||||
|
||||
<h2>AUTHOR
|
||||
<a name="AUTHOR"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">This manual
|
||||
page was written by Hotbird64.</p>
|
||||
|
||||
<h2>SEE ALSO
|
||||
<a name="SEE ALSO"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>vlmcsd</b>(8),
|
||||
<b>vlmcs</b>(1)</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
BIN
man/vlmcsd.7.pdf
BIN
man/vlmcsd.7.pdf
Binary file not shown.
@ -1,226 +0,0 @@
|
||||
VLMCSD(7) KMS Activation Manual VLMCSD(7)
|
||||
|
||||
|
||||
|
||||
NAME
|
||||
vlmcsd - a guide to KMS activation using vlmcsd
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
vlmcsd [ options ]
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
This manual describes the concepts of Microsoft KMS activation using
|
||||
vlmcsd. For detailed usage of vlmcsd see vlmcsd(8).
|
||||
|
||||
|
||||
What is KMS?
|
||||
KMS is a way to activate Microsoft products that was designed for
|
||||
medium and large businesses. In a standard SOHO environment you enter a
|
||||
product key during installation and then activate your product over the
|
||||
Internet. This is done by sending a request to a server at micro-
|
||||
soft.com which then either grants or refuses activation.
|
||||
|
||||
By entering a special key called General Volume License Key (GVLK),
|
||||
a.k.a "KMS client key", the product no longer asks the Microsoft server
|
||||
for activation but a user-defined server (called the KMS server) which
|
||||
usually resides in a company's intranet. vlmcsd is an independent open
|
||||
source implementation of a KMS server that is available for everyone
|
||||
while Microsoft gives their KMS server only to corporations that signed
|
||||
a so called "Select contract". In addition vlmcsd never refuses activa-
|
||||
tion while the Microsoft KMS server only activates the products the
|
||||
customer has paid for.
|
||||
|
||||
Product activation using vlmcsd is performed in three easy steps:
|
||||
|
||||
1) Run vlmcsd (or any other KMS emulator) on a computer in your net-
|
||||
work. This will be your KMS server. New users should simply run the
|
||||
program without any parameters. The defaults should fit the needs of
|
||||
most users.
|
||||
|
||||
2) Install your product and enter the GVLK when you are asked for a key
|
||||
|
||||
3) Configure your client (the machine where you installed your product)
|
||||
to use your KMS server.
|
||||
|
||||
However, when it comes to the details, some things turn out to be more
|
||||
difficult than you might think.
|
||||
|
||||
The most important thing to know is that KMS activation is not perma-
|
||||
nent. The computer remains activated for 180 days (30 or 45 days with
|
||||
consumer-only products). KMS activation however is not an evaluation
|
||||
license. You can repeat the activation anytime and as often as you like
|
||||
to extend activation to another 180 days. This normally happens auto-
|
||||
matically. For this to work, you have to ensure that a KMS server is
|
||||
always reachable for the clients on your network.
|
||||
|
||||
Beginning with Windows 8.1 the KMS server must be a different computer
|
||||
than the client. You cannot use vlmcsd on the same computer where you
|
||||
want to activate a product. If you have only one computer, you can run
|
||||
vlmcsd in a virtual machine. vlmcsd is also designed to run on "always-
|
||||
on devices", for example a router. The router becomes your KMS server
|
||||
then.
|
||||
|
||||
|
||||
How to get a GVLK?
|
||||
That is relatively simple. The GVLKs are published on Microsoft's Tech-
|
||||
net web site.
|
||||
|
||||
Windows: http://technet.microsoft.com/en-us/library/jj612867.aspx
|
||||
Office 2010: http://technet.microsoft.com/en-
|
||||
us/library/ee624355(v=office.14).aspx#section2_3
|
||||
Office 2013: http://technet.microsoft.com/en-us/library/dn385360.aspx
|
||||
|
||||
These lists only include products that Microsoft sells to corporations
|
||||
via volume license contracts. For Windows there are inofficial GVLKs
|
||||
that work with consumer-only versions of Windows. Here is a list:
|
||||
|
||||
TX9XD-98N7V-6WMQ6-BX7FG-H8Q99 - Windows 10 Home
|
||||
3KHY7-WNT83-DGQKR-F7HPR-844BM - Windows 10 Home N
|
||||
7HNRX-D7KGG-3K4RQ-4WPJ4-YTDFH - Windows 10 Home Single Language
|
||||
PVMJN-6DFY6-9CCP6-7BKTT-D3WVR - Windows 10 Home Country Specific
|
||||
789NJ-TQK6T-6XTH8-J39CJ-J8D3P - Windows 8.1 Professional with Media
|
||||
Center
|
||||
M9Q9P-WNJJT-6PXPY-DWX8H-6XWKK - Windows 8.1 Core
|
||||
7B9N3-D94CG-YTVHR-QBPX3-RJP64 - Windows 8.1 Core N
|
||||
BB6NG-PQ82V-VRDPW-8XVD2-V8P66 - Windows 8.1 Core Single Language
|
||||
NCTT7-2RGK8-WMHRF-RY7YQ-JTXG3 - Windows 8.1 Core Country Specific
|
||||
GNBB8-YVD74-QJHX6-27H4K-8QHDG - Windows 8 Professional with Media Cen-
|
||||
ter
|
||||
BN3D2-R7TKB-3YPBD-8DRP2-27GG4 - Windows 8 Core
|
||||
8N2M2-HWPGY-7PGT9-HGDD8-GVGGY - Windows 8 Core N
|
||||
2WN2H-YGCQR-KFX6K-CD6TF-84YXQ - Windows 8 Core Single Language
|
||||
4K36P-JN4VD-GDC6V-KDT89-DYFKP - Windows 8 Core Country Specific
|
||||
|
||||
The above keys require activation renewal every 45 days (Win 8.1) or 30
|
||||
days (Win 8). All GVLKs from the Microsoft Technet web site require
|
||||
renewal every 180 days.
|
||||
|
||||
|
||||
What are SLMGR and OSPP and how to use them?
|
||||
You will need these utilities later. So please continue reading this
|
||||
section.
|
||||
|
||||
These are two Visual Basic script utilities that are used to control
|
||||
Microsoft's Software Protection system. To use them open a Windows Com-
|
||||
mand Prompt. slmgr.vbs is for Windows. ospp.vbs is for Office 2010 and
|
||||
2013. These utilities are installed with Windows and Office and you
|
||||
don't need to download them.
|
||||
|
||||
slmgr.vbs resides in the system32 directory. So you just have to type
|
||||
"slmgr" in the Windows Command prompt to use it. To use ospp.vbs you'll
|
||||
have to change the current directory to your Office installation. This
|
||||
is usually something like "C:\Program Files\Microsoft Office\Office14".
|
||||
You may type "slmgr" or "cscript ospp.vbs" without parameters to see
|
||||
help for these commands but this produces some rather confusing output
|
||||
for newbies.
|
||||
|
||||
|
||||
How to get the GVLK into the product?
|
||||
Normally every product asks you to enter a key during installation. At
|
||||
this time simply enter the GVLK. If you skipped this step or entered
|
||||
some other key which later turned out to be non-working, you can use
|
||||
"slmgr /ipk GVLK" (Windows) or "cscript ospp.vbs /inpkey:GVLK" (Office)
|
||||
at any time.
|
||||
|
||||
Examples
|
||||
slmgr /ipk GCRJD-8NW9H-F2CDX-CCM8D-9D6T9
|
||||
cscript ospp.vbs /inpkey:YC7DK-G2NP3-2QQC3-J6H88-GVGXT
|
||||
|
||||
|
||||
Why doesn't Office accpet a GVLK?
|
||||
You'll have to install a volume license (VL) version of Office. Office
|
||||
versions downloaded from MSDN and/or Technet are non-VL.
|
||||
|
||||
|
||||
How to configure a client to use a KMS server?
|
||||
After you have installed a GVLK you can set your product to use your
|
||||
KMS server. vlmcsd or another KMS server must already be running on
|
||||
your server machine.
|
||||
|
||||
Windows
|
||||
|
||||
Type "slmgr /skms kms-server[:tcp-port]". Example:
|
||||
"slmgr /skms 192.168.1.17:1688"
|
||||
|
||||
|
||||
Office
|
||||
|
||||
1) Type "cscript ospp.vbs /sethst:kms-server". Example "cscript
|
||||
ospp.vbs /sethst:192.168.1.17"
|
||||
|
||||
2) Type "cscript ospp.vbs /setprt:tcp-port". Example: cscript
|
||||
ospp.vbs /setprt:1688
|
||||
|
||||
tcp-port is usually 1688 unless you instructed vlmcsd to use a differ-
|
||||
ent port which is rarely necessary.
|
||||
|
||||
|
||||
How to activate my product?
|
||||
If you have installed a product with GVLK and pointed it to working KMS
|
||||
server like vlmcsd, activation occurs automatically. This may take a
|
||||
while.
|
||||
|
||||
You may type
|
||||
slmgr /ato
|
||||
-or-
|
||||
cscript ospp.vbs /act
|
||||
|
||||
at any time to speed up that process. You may repeat these commands
|
||||
later to extend your activation for another 180 (45) days.
|
||||
|
||||
|
||||
Does vlmcsd work correctly?
|
||||
If something does not work, it may have the cause that vlmcsd does not
|
||||
work correctly although this is unlikely. You can test this with the
|
||||
KMS client vlmcs(1). First type "vlmcs" on the same machine where you
|
||||
started vlmcsd. If things are ok, you should see something like this:
|
||||
|
||||
Connecting to 127.0.0.1:1688 ... successful
|
||||
Sending activation request (KMS V4) 1 of 1 ->
|
||||
06401-00206-296-206344-03-5179-9600.0000-3432013
|
||||
|
||||
If anything goes wrong, you'll see an error message. Next try "vlmcs
|
||||
kms-server" from another machine where kms-server is the hostname or IP
|
||||
address of your KMS server. If that fails while it works locally,
|
||||
you'll most likely have to configure your firewall that it accepts
|
||||
incoming connections on TCP port 1688.
|
||||
|
||||
|
||||
Is there an easier way than using OSPP and SLMGR?
|
||||
Yes and no. KMS activation was designed for large corporations. Thus
|
||||
Microsoft designed KMS in a way that corporations can configure their
|
||||
network infrastructure to fully automate KMS activation. Since this
|
||||
involves DHCP and DNS, it is not that easy to accomplish that for home
|
||||
users. However, if you are using an open source router firmware like
|
||||
OpenWRT or DD-WRT, it is easy to customize DHCP and DNS.
|
||||
|
||||
1) Configure DHCP that it assigns a DNS domain name to your clients (if
|
||||
it doesn't already), e.g. my-home-net.local
|
||||
|
||||
2) Create zone my-home-net.local in your DNS server (if it doesn't
|
||||
exist already).
|
||||
|
||||
3) Add the following records to your DNS
|
||||
|
||||
_vlmcs._tcp.my-home-net.local. 10800 IN SRV 100 100 kms1.my-home-
|
||||
net.local.
|
||||
kms1.my-home-net.local. 10800 IN A 192.168.1.17
|
||||
|
||||
Replace 192.168.1.17 with the IP address of your KMS server. If you
|
||||
don't like a cache time of 10800 seconds (3 hours), replace it with
|
||||
another number.
|
||||
|
||||
This causes that clients will find the KMS server automatically.
|
||||
|
||||
|
||||
AUTHOR
|
||||
This manual page was written by Hotbird64.
|
||||
|
||||
SEE ALSO
|
||||
vlmcsd(8), vlmcs(1)
|
||||
|
||||
|
||||
|
||||
Hotbird64 March 2016 VLMCSD(7)
|
@ -1,783 +0,0 @@
|
||||
VLMCSD(8) KMS Activation Manual VLMCSD(8)
|
||||
|
||||
|
||||
|
||||
NAME
|
||||
vlmcsd - a fully Microsoft compatible KMS server
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
vlmcsd [ options ]
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
vlmcsd is a fully Microsoft compatible KMS server that provides product
|
||||
activation services to clients. It is meant as a drop-in replacement
|
||||
for a Microsoft KMS server (Windows computer with KMS key entered). It
|
||||
currently supports KMS protocol versions 4, 5 and 6.
|
||||
|
||||
vlmcsd is designed to run on POSIX compatible operating systens. It
|
||||
only requires a basic C library with a BSD-style sockets API and either
|
||||
fork(2) or pthreads(7). That allows it to run on most embedded systems
|
||||
like routers, NASes, mobile phones, tablets, TVs, settop boxes, etc.
|
||||
Some efforts have been made that it also runs on Windows.
|
||||
|
||||
Although vlmcsd does neither require an activation key nor a payment to
|
||||
anyone, it is not meant to run illegal copies of Windows. Its purpose
|
||||
is to ensure that owners of legal copies can use their software without
|
||||
restrictions, e.g. if you buy a new computer or motherboard and your
|
||||
key will be refused activation from Microsoft servers due to hardware
|
||||
changes.
|
||||
|
||||
vlmcsd may be started via an internet superserver like inetd(8) or
|
||||
xinetd(8) as well as an advanced init system like systemd(8) or
|
||||
launchd(8) using socket based activation. If vlmcsd detects that
|
||||
stdin(3) is a socket, it assumes that there is already a connected
|
||||
client on stdin that wants to be activated.
|
||||
|
||||
All options that control setting up listening sockets will be ignored
|
||||
when in inetd mode. The sockets will be set up by your internet super-
|
||||
server. You also cannot limit the number of simultanous clients (option
|
||||
-m). You need to configure the limit in your internet superserver.
|
||||
|
||||
The followong features that require that vlmcsd is permanently loaded
|
||||
will not work if started from an internet superserver:
|
||||
|
||||
|
||||
You cannot maintain a client list (option -M1)
|
||||
|
||||
|
||||
EPID Randomization Level 1 (option -r1) works like Level 2
|
||||
(-r2). You may want to use Level 0 (-r0) or custom EPIDs
|
||||
(options -w, -G, -0, -3 and -6) instead.
|
||||
|
||||
|
||||
OPTIONS
|
||||
Since vlmcsd can be configured at compile time, some options may not be
|
||||
available on your system.
|
||||
|
||||
All options that do no require an argument may be combined with a sin-
|
||||
gle dash, for instance "vlmcsd -D -e" is identical to "vlmcsd -De". For
|
||||
all options that require an argument a space between the option and the
|
||||
option argument is optional. Thus "vlmcsd -r 2" and "vlmcsd -r2" are
|
||||
identical too.
|
||||
|
||||
|
||||
-h or -?
|
||||
Displays help.
|
||||
|
||||
|
||||
-V Displays extended version information. This includes the com-
|
||||
piler used to build vlmcsd, the intended platform and flags
|
||||
(compile time options) to build vlmcsd. If you have the source
|
||||
code of vlmcsd, you can type make help (or gmake help on systems
|
||||
that do not use the GNU version of make(1) by default) to see
|
||||
the meaning of those flags.
|
||||
|
||||
|
||||
-L ipaddress[:port]
|
||||
Instructs vlmcsd to listen on ipaddress with optional port
|
||||
(default 1688). You can use this option more than once. If you
|
||||
do not specify -L at least once, IP addresses 0.0.0.0 (IPv4) and
|
||||
:: (IPv6) are used. If the IP address contains colons (IPv6) you
|
||||
must enclose the IP address in brackets if you specify the
|
||||
optional port, e.g. [2001:db8::dead:beef]:1688.
|
||||
|
||||
If no port is specified, vlmcsd uses the default port according
|
||||
to a preceding -P option. If you specify a port, it can be a
|
||||
number (1-65535) or a name (usually found in /etc/services if
|
||||
not provided via LDAP, NIS+ or another name service).
|
||||
|
||||
If you specify a link local IPv6 address (fe80::/10, usually
|
||||
starting with fe80::), it must be followed by a percent sign (%)
|
||||
and a scope id (=network interface name or number) on most
|
||||
unixoid OSses including Linux, Android, MacOS X and iOS, e.g.
|
||||
fe80::1234:56ff:fe78:9abc%eth0 or
|
||||
[fe80::1234:56ff:fe78:9abc%2]:1688. Windows (including cygwin)
|
||||
does not require a scope id unless the same link local address
|
||||
is used on more than one network interface. Windows does not
|
||||
accept a name and the scope id must be a number.
|
||||
|
||||
|
||||
-o level
|
||||
Sets the level of protection against activations from public IP
|
||||
addresses. The default is -o0 for no protection.
|
||||
|
||||
-o1 causes vlmcsd not to listen on all IP addresses but on pri-
|
||||
vate IP addresses only. IPv4 addresses in the 100.64.0.0/10
|
||||
range (see RFC6598) are not treated as private since they can be
|
||||
reached from other users of your ISP. Private IPv4 addresses are
|
||||
10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, 169.254.0.0/16 and
|
||||
127.0.0.0/8. vlmcsd treats all IPv6 addresses not within
|
||||
2000::/3 as private addresses.
|
||||
|
||||
If -o1 is combined with -L, it will listen on all private IP
|
||||
addresses plus the ones specified by one or more -L statements.
|
||||
If -o1 is combined with -P, only the last -P statement will be
|
||||
used.
|
||||
|
||||
Using -o1 does not protect you if you enable NAT port forwarding
|
||||
on your router to your vlmcsd machine. It is identical to using
|
||||
multiple -L statements with all of your private IP addresses.
|
||||
What -o1 does for you, is automatically enumerating your private
|
||||
IP addresses.
|
||||
|
||||
-o2 does not affect the interfaces, vlmcsd is listening on. When
|
||||
a clients connects, vlmcsd immediately drops the connection if
|
||||
the client has a public IP address. Unlike -o1 clients will be
|
||||
able to establish a TCP connection but it will be closed without
|
||||
a single byte sent over the connection. This protects against
|
||||
clients with public IP addresses even if NAT port forwarding is
|
||||
used. While -o2 offers a higher level of protection than -o1,
|
||||
the client sees that the KMS TCP port (1688 by default) is actu-
|
||||
ally accepting connections.
|
||||
|
||||
If vlmcsd is compiled to use MS RPC, -o2 can only offer very
|
||||
poor protection. Control is passed from MS RPC to vlmcsd after
|
||||
the KMS protocol has already been negotiated. Thus a client can
|
||||
always verify that the KMS protocol is available even though it
|
||||
receives an RPC_S_ACCESS_DENIED error message. vlmcsd will issue
|
||||
a warning if -o2 is used with MS RPC. For adaequate protection
|
||||
do not use a MS RPC build of vlmcsd with -o2.
|
||||
|
||||
-o3 combines -o1 and -o2. vlmcsd listens on private interfaces
|
||||
only and if a public client manages to connect anyway due to NAT
|
||||
port forwarding, it will be immediately dropped.
|
||||
|
||||
If you use any form of TCP level port forwarding (e.g. nc(1),
|
||||
netcat(1), ssh(1) port forwarding or similar) to redirect KMS
|
||||
requests to vlmcsd, there will be no protection even if you use
|
||||
-o2 or -o3. This is due to the simple fact that vlmcsd sees the
|
||||
IP address of the redirector and not the IP address of the
|
||||
client.
|
||||
|
||||
-o1 (and thus -o3) is not (yet) available in some scenarios:
|
||||
|
||||
FreeBSD: There is a longtime unfixed bug <https://
|
||||
bugs.freebsd.org/bugzilla/show_bug.cgi?id=178881> in the
|
||||
32-bit ABI of the 64-bit kernel. If you have a 64-bit Free-
|
||||
BSD kernel, you must run the 64-bit version of vlmcsd if
|
||||
you use -o1 or -o3. The 32-bit version causes undefined
|
||||
behavior up to crashing vlmcsd. Other BSDs (NetBSD, Open-
|
||||
BSD, Dragonfly and Mac OS X) work correctly.
|
||||
|
||||
If vlmcsd was started by an internet superserver or was
|
||||
compiled to use Microsoft RPC (Windows only) or simple
|
||||
sockets, -o1 and -o3 are not available by design.
|
||||
|
||||
|
||||
-P port
|
||||
Use TCP port for all subsequent -L statements that do not
|
||||
include an optional port. If you use -P and -L, -P must be spec-
|
||||
ified before -L.
|
||||
|
||||
|
||||
-O vpn-adapter-name[=ipv4-address][/cidr-mask][:dhcp-lease-duration]
|
||||
Enables a compatible VPN adapter to create additional local IPv4
|
||||
addresses (like 127.0.0.1) that appear as remote IPv4 addresses
|
||||
to the system. This allows product activation using a local
|
||||
instance of vlmcsd. This feature is only available in Windows
|
||||
and Cygwin builds of vlmcsd since it is not of any use on other
|
||||
operating systems. Compatible VPN adapters are Tap-windows ver-
|
||||
sion 8.2 or higher (from OpenVPN) and the TeamViewer VPN
|
||||
adapter. There are two special vpn-adapter-names. A single
|
||||
period (.) instructs vlmcsd to use the first available compati-
|
||||
ble VPN adapter. A single dash (-) disables the use of a VPN
|
||||
adapter if one has been configured in vlmcsd.ini(5). The vpn-
|
||||
adapter-name is not case-sensitive. If the vpn-adapter-name con-
|
||||
tains spaces (e.g. Ethernet 3), you must enclose it in quotes.
|
||||
|
||||
The default ipv4-address is 10.10.10.9 and the default cidr-mask
|
||||
is 30. If you are using the default values, your VPN adapter
|
||||
uses an IPv4 address of 10.10.10.9 and you can set your activa-
|
||||
tion client to use the easy to remember address 10.10.10.10
|
||||
(e.g. slmgr /skms 10.10.10.10 or cscript ospp.vbs
|
||||
/sethst:10.10.10.10).
|
||||
|
||||
The dhcp-lease-duration is a number optionally followed by s, m,
|
||||
h, d or w to indicate seconds, minutes, hours, days or weeks.
|
||||
The default dhcp-lease-duration is 1d (one day). It is normally
|
||||
not required to change this value.
|
||||
|
||||
It is advised not to manually configure your OpenVPN TAP or
|
||||
TeamViewer VPN adapter in "Network Connections". If you set the
|
||||
IPv4 configuration manually anyway, the IPv4 address and the
|
||||
subnet mask must match the -O parameter. It is safe leave the
|
||||
IPv4 configuration to automatic (DHCP). vlmcsd will wait up to
|
||||
four seconds for the DHCP configuration to complete before bind-
|
||||
ing to and listenin on any interfaces.
|
||||
|
||||
You should be aware that only one program can use a VPN adapter
|
||||
at a time. If you use the TeamViewer VPN adapter for example,
|
||||
you will not be able to use the VPN feature of TeamViewer as
|
||||
long as vlmcsd is running. The same applies to OpenVPN TAP
|
||||
adapters that are in use by other programs (for example OpenVPN,
|
||||
QEMU, Ratiborus VM, aiccu, etc.). The best way to avoid con-
|
||||
flicts is to install Tap-Windows from OpenVPN, cd to C:\Program
|
||||
Files\TAP-Windows\bin and run addtap.bat to install an addi-
|
||||
tional TAP adapter. Go to "Network Connections" and rename the
|
||||
new adapter to "vlmcsd" and specify -O vlmcsd to use it.
|
||||
|
||||
Example: -O "Ethernet 7"=192.168.123.1/24 (uses VPN adapter Eth-
|
||||
ernet 7 with IPv4 address 192.168.123.1 and have 192.168.123.2
|
||||
to 192.168.123.254 as additional local (but apparently remote)
|
||||
IPv4 addresses.
|
||||
|
||||
|
||||
-x0 and -x1
|
||||
Controls under what circumstances vlmcsd will exit. Using the
|
||||
default of -x0 vlmcsd stays active as long as it can perform
|
||||
some useful operations. If vlmcsd is run by any form of a watch-
|
||||
dog, e.g. NT service manager (Windows), systemd (Linux) or
|
||||
launchd (Mac OS / iOS), it may be desirable to end vlmcsd and
|
||||
let the watchdog restart it. This is especially true if some
|
||||
pre-requisites are not yet met but will be some time later, e.g.
|
||||
network is not yet fully setup.
|
||||
|
||||
By using -x0 vlmcsd will
|
||||
|
||||
exit if none of the listening sockets specified with -L can
|
||||
be used. It continues if at least one socket can be setup
|
||||
for listening.
|
||||
|
||||
exit any TAP mirror thread (Windows version only) if there
|
||||
is an error condition while reading or writing from or to
|
||||
the VPN adapter but continue to work without utilizing a
|
||||
VPN adapter.
|
||||
|
||||
By using -x1 vlmcsd will
|
||||
|
||||
exit if not all listening sockets specified with -L can be
|
||||
used.
|
||||
|
||||
exit completely if there is a problem with a VPN adapter it
|
||||
is using. This can happen for instance if the VPN adapter
|
||||
has been disabled using "Control Panel - Network - Adapter
|
||||
Settings" while vlmcsd is using it.
|
||||
|
||||
|
||||
Please note that -x1 is kind of a workaround option. While it
|
||||
may help under some circumstances, it is better to solve the
|
||||
problem at its origin, e.g. properly implementing dependencies
|
||||
in your startup script to ensure all network interfaces and the
|
||||
VPN adapter you will use are completely setup before you start
|
||||
vlmcsd.
|
||||
|
||||
|
||||
-F0 and -F1
|
||||
Allow (-F1) or disallow (-F0) binding to IP addresses that are
|
||||
currently not configured on your system. The default is -F0. -F1
|
||||
allows you to bind to an IP address that may be configured after
|
||||
you started vlmcsd. vlmcsd will listen on that address as soon
|
||||
as it becomes available. This feature is only available under
|
||||
Linux (IPv4 and IPv6) and FreeBSD (IPv4 only). FreeBSD allows
|
||||
this feature only for the root user (more correctly: processes
|
||||
that have the PRIV_NETINET_BINDANY privilege). Linux does not
|
||||
require a capability for this.
|
||||
|
||||
|
||||
-t seconds
|
||||
Timeout the TCP connection with the client after seconds sec-
|
||||
onds. After sending an activation request. RPC keeps the TCP
|
||||
connection for a while. The default is 30 seconds. You may spec-
|
||||
ify a shorter period to free ressources on your device faster.
|
||||
This is useful for devices with limited main memory or if you
|
||||
used -m to limit the concurrent clients that may request activa-
|
||||
tion. Microsoft RPC clients disconnect after 30 seconds by
|
||||
default. Setting seconds to a greater value does not make much
|
||||
sense.
|
||||
|
||||
|
||||
-m concurrent-clients
|
||||
Limit the number of clients that will be handled concurrently.
|
||||
This is useful for devices with limited ressources or if you are
|
||||
experiencing DoS attacks that spawn thousands of threads or
|
||||
forked processes. If additional clients connect to vlmcsd, they
|
||||
need to wait until another client disconnects. If you set con-
|
||||
current-clients to a small value ( <10 ), you should also select
|
||||
a reasonable timeout of 2 or 3 seconds with -t. The default is
|
||||
no limit.
|
||||
|
||||
|
||||
-d Disconnect each client after processing one activation request.
|
||||
This is a direct violation of DCE RPC but may help if you
|
||||
receive malicous fake RPC requests that block your threads or
|
||||
forked processes. Some other KMS emulators (e.g. py-kms) behave
|
||||
this way.
|
||||
|
||||
|
||||
-k Do not disconnect clients after processing an activation
|
||||
request. This selects the default behavior. -k is useful only if
|
||||
you used an ini file (see vlmcsd.ini(5) and -i). If the ini file
|
||||
contains the line "DisconnectClientsImmediately = true", you can
|
||||
use this switch to restore the default behavior.
|
||||
|
||||
|
||||
-N0 and -N1
|
||||
Disables (-N0) or enables (-N1) the use of the NDR64 transfer
|
||||
syntax in the RPC protocol. Unlike Microsoft vlmcsd supports
|
||||
NDR64 on 32-bit operating systems. Microsoft introduced NDR64 in
|
||||
Windows Vista but their KMS servers started using it with Win-
|
||||
dows 8. Thus if you choose random ePIDs, vlmcsd will select
|
||||
ePIDs with build numbers 9200 and 9600 if you enable NDR64 and
|
||||
build numbers 6002 and 7601 if you disable NDR64. The default is
|
||||
to enable NDR64.
|
||||
|
||||
|
||||
-B0 and -B1
|
||||
Disables (-B0) or enables (-B1) bind time feature negotiation
|
||||
(BTFN) in the RPC protocol. All Windows operating systems start-
|
||||
ing with Vista support BTFN and try to negotiate it when initi-
|
||||
ating an RPC connection. Thus consider turning it off as a debug
|
||||
/ troubleshooting feature only. Some older firewalls that selec-
|
||||
tively block or redirect RPC traffic may get confused when they
|
||||
detect NDR64 or BTFN.
|
||||
|
||||
|
||||
-l filename
|
||||
Use filename as a log file. The log file records all activations
|
||||
with IP address, Windows workstation name (no reverse DNS
|
||||
lookup), activated product, KMS protocol, time and date. If you
|
||||
do not specify a log file, no log is created. For a live view of
|
||||
the log file type tail -f file.
|
||||
|
||||
If you use the special filename "syslog", vlmcsd uses syslog(3)
|
||||
for logging. If your system has no syslog service (/dev/log)
|
||||
installed, logging output will go to /dev/console. Syslog log-
|
||||
ging is not available in the native Windows version. The Cygwin
|
||||
version does support syslog logging.
|
||||
|
||||
|
||||
-T0 and -T1
|
||||
Disable (-T0) or enable (-T1) the inclusion of date and time in
|
||||
each line of the log. The default is -T1. -T0 is useful if you
|
||||
log to stdout(3) which is redirected to another logging mecha-
|
||||
nism that already includes date and time in its output, for
|
||||
instance systemd-journald(8). If you log to syslog(3), -T1 is
|
||||
ignored and date and time will never be included in the output
|
||||
sent to syslog(3).
|
||||
|
||||
|
||||
-D Normally vlmcsd daemonizes and runs in background (except the
|
||||
native Windows version). If -D is specified, vlmcsd does not
|
||||
daemonize and runs in foreground. This is useful for testing and
|
||||
allows you to simply press <Ctrl-C> to exit vlmcsd.
|
||||
|
||||
The native Windows version never daemonizes and always behaves
|
||||
as if -D had been specified. You may want to install vlmcsd as a
|
||||
service instead. See -s.
|
||||
|
||||
|
||||
-e If specified, vlmcsd ignores -l and writes all logging output to
|
||||
stdout(3). This is mainly useful for testing and debugging and
|
||||
often combined with -D.
|
||||
|
||||
|
||||
-v Use verbose logging. Logs every parameter of the base request
|
||||
and the base response. It also logs the HWID of the KMS server
|
||||
if KMS protocol version 6 is used. This option is mainly for
|
||||
debugging purposes. It only has an effect if some form of log-
|
||||
ging is used. Thus -v does not make sense if not used with -l,
|
||||
-e or -f.
|
||||
|
||||
|
||||
-q Do not use verbose logging. This is actually the default behav-
|
||||
ior. It only makes sense if you use vlmcsd with an ini file (see
|
||||
-i and vlmcsd.ini(5)). If the ini file contains the line
|
||||
"LogVerbose = true" you can use -q to restore the default behav-
|
||||
ior.
|
||||
|
||||
|
||||
-p filename
|
||||
Create pid file filename. This has nothing to do with KMS ePIDs.
|
||||
A pid file is a file where vlmcsd writes its own process id.
|
||||
This is used by standard init scripts (typically found in
|
||||
/etc/init.d). The default is not to write a pid file.
|
||||
|
||||
|
||||
-u user and -g group
|
||||
Causes vlmcsd to run in the specified user and group security
|
||||
context. The main purpose for this is to drop root privileges
|
||||
after it has been started from the root account. To use this
|
||||
feature from cygwin you must run cyglsa-config and the account
|
||||
from which vlmcsd is started must have the rights "Act as part
|
||||
of the operating system" and "Replace a process level token".
|
||||
The native Windows version does not support these options.
|
||||
|
||||
The actual security context switch is performed after the TCP
|
||||
sockets have been created. This allows you to use privileged
|
||||
ports (< 1024) when you start vlmcsd from the root account.
|
||||
|
||||
However if you use an ini, pid or log file, you must ensure that
|
||||
the unprivileged user has access to these files. You can always
|
||||
log to syslog(3) from an unprivileged account on most platforms
|
||||
(see -l).
|
||||
|
||||
|
||||
-a CSVLK = ePID [ / HwId ]
|
||||
Use ePID and HwId for a specific CSVLK. When you use it, -r is
|
||||
disregarded for this CSVLK. If vlmcsd uses the default vlm-
|
||||
csd.kmd database, you can use the following CSVLKs: Windows,
|
||||
WinChinaGov, Office2010, Office2013, Office2016 and Office2019.
|
||||
The -a option requires that database version 1.6 or later is
|
||||
used.
|
||||
|
||||
HwId must be specified as 16 hex digits that are interpreted as
|
||||
a series of 8 bytes (big endian). Any character that is not a
|
||||
hex digit will be ignored. This is for better readability.
|
||||
|
||||
|
||||
-i filename
|
||||
Use configuration file (aka ini file) filename. Most configura-
|
||||
tion parameters can be set either via the command line or an ini
|
||||
file. The command line always has precedence over configuration
|
||||
items in the ini file. See vlmcsd.ini(5) for the format of the
|
||||
configuration file.
|
||||
|
||||
If vlmcsd has been compiled to use a default configuration file
|
||||
(often /etc/vlmcsd.ini), you may use -i- to ignore the default
|
||||
configuration file.
|
||||
|
||||
|
||||
-j filename
|
||||
Use KMS data file filename. By default vlmcsd only contains the
|
||||
minimum product data that is required to perform all operations
|
||||
correctly. You may use a more complete KMS data file that con-
|
||||
tains all detailed product names. This is especially useful if
|
||||
you are logging KMS requests. If you don't log, there is no need
|
||||
to load an external KMS data file.
|
||||
|
||||
If vlmcsd has been compiled to use a default KMS data file, you
|
||||
may use -j- to ignore the default configuration file.
|
||||
|
||||
|
||||
-r0, -r1 (default) and -r2
|
||||
These options determine how ePIDs are generated if
|
||||
|
||||
- you did not sprecify an ePID in the command line and
|
||||
- you haven't used -i or
|
||||
- the file specified by -i cannot be opened or
|
||||
- the file specified by -i does not contain an ePID for the KMS
|
||||
request
|
||||
|
||||
-r0 means there are no random ePIDs. vlmcsd simply issues
|
||||
default ePIDs that are built into the binary at compile time.
|
||||
Pro: behaves like real KMS server that also always issues the
|
||||
same ePID. Con: Microsoft may start blacklisting again and the
|
||||
default ePID may not work any longer.
|
||||
|
||||
-r1 instructs vlmcsd to generate random ePIDs when the program
|
||||
starts or receives a SIGHUP signal and uses these ePIDs until it
|
||||
is stopped or receives another SIGHUP. Most other KMS emulators
|
||||
generate a new ePID on every KMS request. This is easily
|
||||
detectable. Microsoft could just modify sppsvc.exe in a way that
|
||||
it always sends two identical KMS requests in two RPC requests
|
||||
but over the same TCP connection. If both KMS responses contain
|
||||
the different ePIDs, the KMS server is not genuine. -r1 is the
|
||||
default mode. -r1 also ensures that all three ePIDs (Windows,
|
||||
Office 2010 and Office 2013) use the same OS build number and
|
||||
LCID (language id).
|
||||
|
||||
If vlmcsd has been started by an internet superserver, -r1 works
|
||||
almost identically to -r2. The only exception occurs if you send
|
||||
more than one activation request over the same TCP connection.
|
||||
This is simply due to the fact that vlmcsd is started upon a
|
||||
connection request and does not stay in memory after servicing a
|
||||
KMS request. Consider using -r0 or -w, -G, -0, -3 and -6 when
|
||||
starting vlmcsd by an internet superserver.
|
||||
|
||||
-r2 behaves like most other KMS server emulators with random
|
||||
support and generates a new random ePID on every request. -r2
|
||||
should be treated as debugging option only because it allows
|
||||
very easy emulator detection.
|
||||
|
||||
|
||||
-C LCID
|
||||
Do not randomize the locale id part of the ePID and use LCID
|
||||
instead. The LCID must be specified as a decimal number, e.g.
|
||||
1049 for "Russian - Russia". This option has no effect if the
|
||||
ePID is not randomized at all, e.g. if it is selected from the
|
||||
command line or an ini file.
|
||||
|
||||
By default vlmcsd generates a valid locale id that is recognized
|
||||
by .NET Framework 4.0. This may lead to a locale id which is
|
||||
unlikely to occur in your country, for instance 2155 for "Quecha
|
||||
- Ecuador". You may want to select the locale id of your country
|
||||
instead. See MSDN <http://msdn.microsoft.com/en-us/goglobal/
|
||||
bb964664.aspx> for a list of valid LCIDs. Please note that some
|
||||
of them are not recognized by .NET Framework 4.0.
|
||||
|
||||
Most other KMS emulators use a fixed LCID of 1033 (English -
|
||||
US). To achive the same behavior in vlmcsd use -C 1033.
|
||||
|
||||
|
||||
-H HostBuild
|
||||
Do not randomize the host build number in the ePID and use Host-
|
||||
Build instead, for instance 17763 for Windows Server 2019 / Win-
|
||||
dows 10 1809.
|
||||
|
||||
|
||||
-K0, -K1, -K2 and -K3
|
||||
Sets the whitelisting level to determine which products vlmcsd
|
||||
activates or refuses. The default is -K0.
|
||||
|
||||
-K0: activate all products with an unknown, retail or
|
||||
beta/preview KMS ID.
|
||||
-K1: activate products with a retail or beta/preview KMS ID
|
||||
but refuse to activate products with an unknown KMS ID.
|
||||
-K2: activate products with an unknown KMS ID but refuse
|
||||
products with a retail or beta/preview KMS ID.
|
||||
-K3: activate only products with a known volume license RTM
|
||||
KMS ID and refuse all others.
|
||||
|
||||
|
||||
The SKU ID is not checked. Like a genuine KMS server vlmcsd
|
||||
activates a product that has a random or unknown SKU ID. If you
|
||||
select -K1 or -K3, vlmcsd also checks the Application ID for
|
||||
correctness. If Microsoft introduces a new KMS ID for a new
|
||||
product, you cannot activate it if you used -K1 or -K3 until a
|
||||
new version of vlmcsd is available.
|
||||
|
||||
|
||||
-c0 and -c1
|
||||
-c1 causes vlmcsd to check if the client time differs no more
|
||||
than four hours from the system time. -c0 (the default) disables
|
||||
this check. -c1 is useful to prevent emulator detection. A
|
||||
client that tries to detect an emulator could simply send two
|
||||
subsequent request with two time stamps that differ more than
|
||||
four hours from each other. If both requests succeed, the server
|
||||
is an emulator. If you specify -c1 on a system with no reliable
|
||||
time source, activations will fail. It is ok to set the correct
|
||||
system time after you started vlmcsd.
|
||||
|
||||
|
||||
-M0 and -M1
|
||||
Disables (-M0) or enables (-M1) maintaining a list of client
|
||||
machine IDs (CMIDs). The default is -M0. -M1 is useful to pre-
|
||||
vent emulator detection. By maintaing a CMID list, vlmcsd
|
||||
reports current active clients exactly like a genuine KMS emula-
|
||||
tor. This includes bug compatibility to the extent that you can
|
||||
permanently kill a genuine KMS emulator by sending an "over-
|
||||
charge request" with a required client count of 376 or more and
|
||||
then request activation for 671 clients. vlmcsd can be reset
|
||||
from this condition by restarting it. If -M0 is used, vlmcsd
|
||||
reports current active clients as good as possible. If no client
|
||||
sends an "overcharge request", it is not possible to detect vlm-
|
||||
csd as an emulator with -M0. -M1 requires the allocation of a
|
||||
buffer that is about 50 kB in size. On hardware with few memory
|
||||
resources use it only if you really need it.
|
||||
|
||||
If you start vlmcsd from an internet superserver, -M1 cannot be
|
||||
used. Since vlmcsd exits after each activation, it cannot main-
|
||||
tain any state in memory.
|
||||
|
||||
|
||||
-E0 and -E1
|
||||
These options are ignored if you do not also specify -M1. If you
|
||||
use -E0 (the default), vlmcsd starts up as a fully "charged" KMS
|
||||
server. Clients activate immediately. -E1 lets you start up vlm-
|
||||
csd with an empty CMID list. Activation will start when the
|
||||
required minimum clients (25 for Windows Client OSses, 5 for
|
||||
Windows Server OSses and Office) have registered with the KMS
|
||||
server. As long as the minimum client count has not been
|
||||
reached, clients end up in HRESULT 0xC004F038 "The count
|
||||
reported by your Key Management Service (KMS) is insufficient.
|
||||
Please contact your system administrator". You may use vlmcs(1)
|
||||
or another KMS client emulator to "charge" vlmcsd. -E1 does not
|
||||
improve emulator detection prevention. It's primary purpose is
|
||||
to help developers of KMS clients to test "charging" a KMS
|
||||
server.
|
||||
|
||||
|
||||
-R renewal-interval
|
||||
Instructs clients to renew activation every renewal-interval.
|
||||
The renewal-interval is a number optionally immediately followed
|
||||
by a letter indicating the unit. Valid unit letters are s (sec-
|
||||
onds), m (minutes), h (hours), d (days) and w (weeks). If you do
|
||||
not specify a letter, minutes is assumed.
|
||||
|
||||
-R3d for instance instructs clients to renew activation every 3
|
||||
days. The default renewal-interval is 10080 (identical to 7d and
|
||||
1w).
|
||||
|
||||
Due to poor implementation of Microsofts KMS Client it cannot be
|
||||
guaranteed that activation is renewed on time as specfied by the
|
||||
-R option. Don't care about that. Renewal will happen well
|
||||
before your activation expires (usually 180 days).
|
||||
|
||||
Even though you can specify seconds, the granularity of this
|
||||
option is 1 minute. Seconds are rounded down to the next multi-
|
||||
ple of 60.
|
||||
|
||||
|
||||
-A activation-interval
|
||||
Instructs clients to retry activation every activation-interval
|
||||
if it was unsuccessful, e.g. because it could not reach the
|
||||
server. The default is 120 (identical to 2h). activation-inter-
|
||||
val follows the same syntax as renewal-interval in the -R
|
||||
option.
|
||||
|
||||
|
||||
-s Installs vlmcsd as a Windows service. This option only works
|
||||
with the native Windows version and Cygwin. Combine -s with
|
||||
other command line options. These will be in effect when you
|
||||
start the service. The service automatically starts when you
|
||||
reboot your machine. To start it manually, type "net start vlm-
|
||||
csd".
|
||||
|
||||
If you use Cygwin, you must include your Cygwin system DLL
|
||||
directory (usually C:\Cygwin\bin or C:\Cygwin64\bin) into the
|
||||
PATH environment variable or the service will not start.
|
||||
|
||||
You can reinstall the service anytime using vlmcsd -s again,
|
||||
e.g. with a different command line. If the service is running,
|
||||
it will be restarted with the new command line.
|
||||
|
||||
When using -s the command line is checked for basic syntax
|
||||
errors only. For example "vlmcsd -s -L 1.2.3.4" reports no error
|
||||
but the service will not start if 1.2.3.4 is not an IP address
|
||||
on your system.
|
||||
|
||||
|
||||
-S Uninstalls the vlmcsd service. Works only with the native Win-
|
||||
dows version and Cygwin. All other options will be ignored if
|
||||
you include -S in the command line.
|
||||
|
||||
|
||||
-U [domain\]username
|
||||
Can only be used together with -s. Starts the service as a dif-
|
||||
ferent user than the local SYSTEM account. This is used to run
|
||||
the service under an account with low privileges. If you omit
|
||||
the domain, an account from the local computer will be used.
|
||||
|
||||
You may use "NT AUTHORITY\NetworkService". This is a pseudo user
|
||||
with low privileges. You may also use "NT AUTHORITY\LocalSer-
|
||||
vice" which has more privileges but these are of no use for run-
|
||||
ning vlmcsd.
|
||||
|
||||
Make sure that the user you specify has at least execute permis-
|
||||
sion for your executable. "NT AUTHORITY\NetworkService" normally
|
||||
has no permission to run binaries from your home directory.
|
||||
|
||||
For your convenience you can use the special username "/l" as a
|
||||
shortcut for "NT AUTHORITY\LocalService" and "/n" for "NT
|
||||
AUTHORITY\NetworkService". "vlmcsd -s -U /n" installs the ser-
|
||||
vice to run as "NT AUTHORITY\NetworkService".
|
||||
|
||||
|
||||
-W password
|
||||
Can only be used together with -s. Specifies a password for the
|
||||
corresponding username you use with -U. SYSTEM, "NT AUTHOR-
|
||||
ITY\NetworkService", "NT AUTHORITY\LocalService" do not require
|
||||
a password.
|
||||
|
||||
If you specify a user with even lower privileges than "NT
|
||||
AUTHORITY\NetworkService", you must specify its password. You
|
||||
also have to grant the "Log on as a service" right to that user.
|
||||
|
||||
|
||||
SIGNALS
|
||||
The following signals differ from the default behavior:
|
||||
|
||||
|
||||
SIGTERM, SIGINT
|
||||
These signals cause vlmcsd to exit gracefully. All global sema-
|
||||
phores and shared memory pages will be released, the pid file
|
||||
will be unlinked (deleted) and a shutdown message will be
|
||||
logged.
|
||||
|
||||
|
||||
SIGHUP Causes vlmcsd to be restarted completely. This is useful if you
|
||||
started vlmcsd with an ini file. You can modify the ini file
|
||||
while vlmcsd is running and then sending SIGHUP, e.g. by typing
|
||||
"killall -SIGHUP vlmcsd" or "kill -SIGHUP `cat /var/run/vlm-
|
||||
csd.pid`".
|
||||
|
||||
The SIGHUP handler has been implemented relatively simple. It is
|
||||
virtually the same as stopping vlmcsd and starting it again
|
||||
immediately with the following exceptions:
|
||||
|
||||
|
||||
-- The new process does not get a new process id.
|
||||
|
||||
-- If you used a pid file, it is not deleted and recreated
|
||||
because the process id stays the same.
|
||||
|
||||
-- If you used the 'user' and/or 'group' directive in an ini
|
||||
file these are ignored. This is because once you switched to
|
||||
lower privileged users and groups, there is no way back. Any-
|
||||
thing else would be a severe security flaw in the OS.
|
||||
|
||||
Signaling is not available in the native Windows version and in the
|
||||
Cygwin version when vlmcsd runs as a Windows service.
|
||||
|
||||
|
||||
SUPPORTED OPERATING SYSTEMS
|
||||
vlmcsd compiles and runs on Linux, Windows (no Cygwin required but
|
||||
explicitly supported), Mac OS X, FreeBSD, NetBSD, OpenBSD, Dragonfly
|
||||
BSD, Minix, Solaris, OpenIndiana, Android and iOS. Other POSIX or
|
||||
unixoid OSses may work with unmodified sources or may require minor
|
||||
porting efforts.
|
||||
|
||||
|
||||
SUPPORTED PRODUCTS
|
||||
vlmcsd can answer activation requests for the following products: Win-
|
||||
dows Vista, Windows 7, Windows 8, Windows 8.1, Windows 10 (up to 1703),
|
||||
Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Win-
|
||||
dows Server 2012 R2, Windows Server 2016, Office 2010, Project 2010,
|
||||
Visio 2010, Office 2013, Project 2013, Visio 2013, Office 2016, Project
|
||||
2016, Visio 2016. Newer products may work as long as the KMS protocol
|
||||
does not change. A complete list of fully supported products can be
|
||||
obtained using the -x option of vlmcs(1).
|
||||
|
||||
Office, Project and Visio must be volume license versions.
|
||||
|
||||
|
||||
FILES
|
||||
vlmcsd.ini(5)
|
||||
|
||||
|
||||
EXAMPLES
|
||||
vlmcsd -De
|
||||
Starts vlmcsd in foreground. Useful if you use it for the first
|
||||
time and want to see what's happening when a client requests
|
||||
activation.
|
||||
|
||||
|
||||
vlmcsd -l /var/log/vlmcsd.log
|
||||
Starts vlmcsd as a daemon and logs everything to /var/log/vlm-
|
||||
csd.log.
|
||||
|
||||
|
||||
vlmcsd -L 192.168.1.17
|
||||
Starts vlmcsd as a daemon and listens on IP address 192.168.1.17
|
||||
only. This is useful for routers that have a public and a pri-
|
||||
vate IP address to prevent your KMS server from becoming public.
|
||||
|
||||
|
||||
vlmcsd -s -U /n -l C:\logs\vlmcsd.log
|
||||
Installs vlmcsd as a Windows service with low privileges and
|
||||
logs everything to C:\logs\vlmcsd.log when the service is
|
||||
started with "net start vlmcsd".
|
||||
|
||||
|
||||
BUGS
|
||||
An ePID specified in an ini file must not contain spaces.
|
||||
|
||||
|
||||
AUTHOR
|
||||
Written by crony12, Hotbird64 and vityan666. With contributions from
|
||||
DougQaid.
|
||||
|
||||
|
||||
CREDITS
|
||||
Thanks to abbodi1406, CODYQX4, deagles, eIcn, mikmik38, nosferati87,
|
||||
qad, Ratiborus, ...
|
||||
|
||||
|
||||
SEE ALSO
|
||||
vlmcsd.ini(5), vlmcsd(7), vlmcs(1), vlmcsdmulti(1)
|
||||
|
||||
|
||||
|
||||
Hotbird64 October 2018 VLMCSD(8)
|
1171
man/vlmcsd.8.html
1171
man/vlmcsd.8.html
File diff suppressed because it is too large
Load Diff
BIN
man/vlmcsd.8.pdf
BIN
man/vlmcsd.8.pdf
Binary file not shown.
@ -1,783 +0,0 @@
|
||||
VLMCSD(8) KMS Activation Manual VLMCSD(8)
|
||||
|
||||
|
||||
|
||||
NAME
|
||||
vlmcsd - a fully Microsoft compatible KMS server
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
vlmcsd [ options ]
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
vlmcsd is a fully Microsoft compatible KMS server that provides product
|
||||
activation services to clients. It is meant as a drop-in replacement
|
||||
for a Microsoft KMS server (Windows computer with KMS key entered). It
|
||||
currently supports KMS protocol versions 4, 5 and 6.
|
||||
|
||||
vlmcsd is designed to run on POSIX compatible operating systens. It
|
||||
only requires a basic C library with a BSD-style sockets API and either
|
||||
fork(2) or pthreads(7). That allows it to run on most embedded systems
|
||||
like routers, NASes, mobile phones, tablets, TVs, settop boxes, etc.
|
||||
Some efforts have been made that it also runs on Windows.
|
||||
|
||||
Although vlmcsd does neither require an activation key nor a payment to
|
||||
anyone, it is not meant to run illegal copies of Windows. Its purpose
|
||||
is to ensure that owners of legal copies can use their software without
|
||||
restrictions, e.g. if you buy a new computer or motherboard and your
|
||||
key will be refused activation from Microsoft servers due to hardware
|
||||
changes.
|
||||
|
||||
vlmcsd may be started via an internet superserver like inetd(8) or
|
||||
xinetd(8) as well as an advanced init system like systemd(8) or
|
||||
launchd(8) using socket based activation. If vlmcsd detects that
|
||||
stdin(3) is a socket, it assumes that there is already a connected
|
||||
client on stdin that wants to be activated.
|
||||
|
||||
All options that control setting up listening sockets will be ignored
|
||||
when in inetd mode. The sockets will be set up by your internet super-
|
||||
server. You also cannot limit the number of simultanous clients (option
|
||||
-m). You need to configure the limit in your internet superserver.
|
||||
|
||||
The followong features that require that vlmcsd is permanently loaded
|
||||
will not work if started from an internet superserver:
|
||||
|
||||
|
||||
You cannot maintain a client list (option -M1)
|
||||
|
||||
|
||||
EPID Randomization Level 1 (option -r1) works like Level 2
|
||||
(-r2). You may want to use Level 0 (-r0) or custom EPIDs
|
||||
(options -w, -G, -0, -3 and -6) instead.
|
||||
|
||||
|
||||
OPTIONS
|
||||
Since vlmcsd can be configured at compile time, some options may not be
|
||||
available on your system.
|
||||
|
||||
All options that do no require an argument may be combined with a sin-
|
||||
gle dash, for instance "vlmcsd -D -e" is identical to "vlmcsd -De". For
|
||||
all options that require an argument a space between the option and the
|
||||
option argument is optional. Thus "vlmcsd -r 2" and "vlmcsd -r2" are
|
||||
identical too.
|
||||
|
||||
|
||||
-h or -?
|
||||
Displays help.
|
||||
|
||||
|
||||
-V Displays extended version information. This includes the com-
|
||||
piler used to build vlmcsd, the intended platform and flags
|
||||
(compile time options) to build vlmcsd. If you have the source
|
||||
code of vlmcsd, you can type make help (or gmake help on systems
|
||||
that do not use the GNU version of make(1) by default) to see
|
||||
the meaning of those flags.
|
||||
|
||||
|
||||
-L ipaddress[:port]
|
||||
Instructs vlmcsd to listen on ipaddress with optional port
|
||||
(default 1688). You can use this option more than once. If you
|
||||
do not specify -L at least once, IP addresses 0.0.0.0 (IPv4) and
|
||||
:: (IPv6) are used. If the IP address contains colons (IPv6) you
|
||||
must enclose the IP address in brackets if you specify the
|
||||
optional port, e.g. [2001:db8::dead:beef]:1688.
|
||||
|
||||
If no port is specified, vlmcsd uses the default port according
|
||||
to a preceding -P option. If you specify a port, it can be a
|
||||
number (1-65535) or a name (usually found in /etc/services if
|
||||
not provided via LDAP, NIS+ or another name service).
|
||||
|
||||
If you specify a link local IPv6 address (fe80::/10, usually
|
||||
starting with fe80::), it must be followed by a percent sign (%)
|
||||
and a scope id (=network interface name or number) on most
|
||||
unixoid OSses including Linux, Android, MacOS X and iOS, e.g.
|
||||
fe80::1234:56ff:fe78:9abc%eth0 or
|
||||
[fe80::1234:56ff:fe78:9abc%2]:1688. Windows (including cygwin)
|
||||
does not require a scope id unless the same link local address
|
||||
is used on more than one network interface. Windows does not
|
||||
accept a name and the scope id must be a number.
|
||||
|
||||
|
||||
-o level
|
||||
Sets the level of protection against activations from public IP
|
||||
addresses. The default is -o0 for no protection.
|
||||
|
||||
-o1 causes vlmcsd not to listen on all IP addresses but on pri-
|
||||
vate IP addresses only. IPv4 addresses in the 100.64.0.0/10
|
||||
range (see RFC6598) are not treated as private since they can be
|
||||
reached from other users of your ISP. Private IPv4 addresses are
|
||||
10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, 169.254.0.0/16 and
|
||||
127.0.0.0/8. vlmcsd treats all IPv6 addresses not within
|
||||
2000::/3 as private addresses.
|
||||
|
||||
If -o1 is combined with -L, it will listen on all private IP
|
||||
addresses plus the ones specified by one or more -L statements.
|
||||
If -o1 is combined with -P, only the last -P statement will be
|
||||
used.
|
||||
|
||||
Using -o1 does not protect you if you enable NAT port forwarding
|
||||
on your router to your vlmcsd machine. It is identical to using
|
||||
multiple -L statements with all of your private IP addresses.
|
||||
What -o1 does for you, is automatically enumerating your private
|
||||
IP addresses.
|
||||
|
||||
-o2 does not affect the interfaces, vlmcsd is listening on. When
|
||||
a clients connects, vlmcsd immediately drops the connection if
|
||||
the client has a public IP address. Unlike -o1 clients will be
|
||||
able to establish a TCP connection but it will be closed without
|
||||
a single byte sent over the connection. This protects against
|
||||
clients with public IP addresses even if NAT port forwarding is
|
||||
used. While -o2 offers a higher level of protection than -o1,
|
||||
the client sees that the KMS TCP port (1688 by default) is actu-
|
||||
ally accepting connections.
|
||||
|
||||
If vlmcsd is compiled to use MS RPC, -o2 can only offer very
|
||||
poor protection. Control is passed from MS RPC to vlmcsd after
|
||||
the KMS protocol has already been negotiated. Thus a client can
|
||||
always verify that the KMS protocol is available even though it
|
||||
receives an RPC_S_ACCESS_DENIED error message. vlmcsd will issue
|
||||
a warning if -o2 is used with MS RPC. For adaequate protection
|
||||
do not use a MS RPC build of vlmcsd with -o2.
|
||||
|
||||
-o3 combines -o1 and -o2. vlmcsd listens on private interfaces
|
||||
only and if a public client manages to connect anyway due to NAT
|
||||
port forwarding, it will be immediately dropped.
|
||||
|
||||
If you use any form of TCP level port forwarding (e.g. nc(1),
|
||||
netcat(1), ssh(1) port forwarding or similar) to redirect KMS
|
||||
requests to vlmcsd, there will be no protection even if you use
|
||||
-o2 or -o3. This is due to the simple fact that vlmcsd sees the
|
||||
IP address of the redirector and not the IP address of the
|
||||
client.
|
||||
|
||||
-o1 (and thus -o3) is not (yet) available in some scenarios:
|
||||
|
||||
FreeBSD: There is a longtime unfixed bug <https://
|
||||
bugs.freebsd.org/bugzilla/show_bug.cgi?id=178881> in the
|
||||
32-bit ABI of the 64-bit kernel. If you have a 64-bit Free-
|
||||
BSD kernel, you must run the 64-bit version of vlmcsd if
|
||||
you use -o1 or -o3. The 32-bit version causes undefined
|
||||
behavior up to crashing vlmcsd. Other BSDs (NetBSD, Open-
|
||||
BSD, Dragonfly and Mac OS X) work correctly.
|
||||
|
||||
If vlmcsd was started by an internet superserver or was
|
||||
compiled to use Microsoft RPC (Windows only) or simple
|
||||
sockets, -o1 and -o3 are not available by design.
|
||||
|
||||
|
||||
-P port
|
||||
Use TCP port for all subsequent -L statements that do not
|
||||
include an optional port. If you use -P and -L, -P must be spec-
|
||||
ified before -L.
|
||||
|
||||
|
||||
-O vpn-adapter-name[=ipv4-address][/cidr-mask][:dhcp-lease-duration]
|
||||
Enables a compatible VPN adapter to create additional local IPv4
|
||||
addresses (like 127.0.0.1) that appear as remote IPv4 addresses
|
||||
to the system. This allows product activation using a local
|
||||
instance of vlmcsd. This feature is only available in Windows
|
||||
and Cygwin builds of vlmcsd since it is not of any use on other
|
||||
operating systems. Compatible VPN adapters are Tap-windows ver-
|
||||
sion 8.2 or higher (from OpenVPN) and the TeamViewer VPN
|
||||
adapter. There are two special vpn-adapter-names. A single
|
||||
period (.) instructs vlmcsd to use the first available compati-
|
||||
ble VPN adapter. A single dash (-) disables the use of a VPN
|
||||
adapter if one has been configured in vlmcsd.ini(5). The vpn-
|
||||
adapter-name is not case-sensitive. If the vpn-adapter-name con-
|
||||
tains spaces (e.g. Ethernet 3), you must enclose it in quotes.
|
||||
|
||||
The default ipv4-address is 10.10.10.9 and the default cidr-mask
|
||||
is 30. If you are using the default values, your VPN adapter
|
||||
uses an IPv4 address of 10.10.10.9 and you can set your activa-
|
||||
tion client to use the easy to remember address 10.10.10.10
|
||||
(e.g. slmgr /skms 10.10.10.10 or cscript ospp.vbs
|
||||
/sethst:10.10.10.10).
|
||||
|
||||
The dhcp-lease-duration is a number optionally followed by s, m,
|
||||
h, d or w to indicate seconds, minutes, hours, days or weeks.
|
||||
The default dhcp-lease-duration is 1d (one day). It is normally
|
||||
not required to change this value.
|
||||
|
||||
It is advised not to manually configure your OpenVPN TAP or
|
||||
TeamViewer VPN adapter in "Network Connections". If you set the
|
||||
IPv4 configuration manually anyway, the IPv4 address and the
|
||||
subnet mask must match the -O parameter. It is safe leave the
|
||||
IPv4 configuration to automatic (DHCP). vlmcsd will wait up to
|
||||
four seconds for the DHCP configuration to complete before bind-
|
||||
ing to and listenin on any interfaces.
|
||||
|
||||
You should be aware that only one program can use a VPN adapter
|
||||
at a time. If you use the TeamViewer VPN adapter for example,
|
||||
you will not be able to use the VPN feature of TeamViewer as
|
||||
long as vlmcsd is running. The same applies to OpenVPN TAP
|
||||
adapters that are in use by other programs (for example OpenVPN,
|
||||
QEMU, Ratiborus VM, aiccu, etc.). The best way to avoid con-
|
||||
flicts is to install Tap-Windows from OpenVPN, cd to C:\Program
|
||||
Files\TAP-Windows\bin and run addtap.bat to install an addi-
|
||||
tional TAP adapter. Go to "Network Connections" and rename the
|
||||
new adapter to "vlmcsd" and specify -O vlmcsd to use it.
|
||||
|
||||
Example: -O "Ethernet 7"=192.168.123.1/24 (uses VPN adapter Eth-
|
||||
ernet 7 with IPv4 address 192.168.123.1 and have 192.168.123.2
|
||||
to 192.168.123.254 as additional local (but apparently remote)
|
||||
IPv4 addresses.
|
||||
|
||||
|
||||
-x0 and -x1
|
||||
Controls under what circumstances vlmcsd will exit. Using the
|
||||
default of -x0 vlmcsd stays active as long as it can perform
|
||||
some useful operations. If vlmcsd is run by any form of a watch-
|
||||
dog, e.g. NT service manager (Windows), systemd (Linux) or
|
||||
launchd (Mac OS / iOS), it may be desirable to end vlmcsd and
|
||||
let the watchdog restart it. This is especially true if some
|
||||
pre-requisites are not yet met but will be some time later, e.g.
|
||||
network is not yet fully setup.
|
||||
|
||||
By using -x0 vlmcsd will
|
||||
|
||||
exit if none of the listening sockets specified with -L can
|
||||
be used. It continues if at least one socket can be setup
|
||||
for listening.
|
||||
|
||||
exit any TAP mirror thread (Windows version only) if there
|
||||
is an error condition while reading or writing from or to
|
||||
the VPN adapter but continue to work without utilizing a
|
||||
VPN adapter.
|
||||
|
||||
By using -x1 vlmcsd will
|
||||
|
||||
exit if not all listening sockets specified with -L can be
|
||||
used.
|
||||
|
||||
exit completely if there is a problem with a VPN adapter it
|
||||
is using. This can happen for instance if the VPN adapter
|
||||
has been disabled using "Control Panel - Network - Adapter
|
||||
Settings" while vlmcsd is using it.
|
||||
|
||||
|
||||
Please note that -x1 is kind of a workaround option. While it
|
||||
may help under some circumstances, it is better to solve the
|
||||
problem at its origin, e.g. properly implementing dependencies
|
||||
in your startup script to ensure all network interfaces and the
|
||||
VPN adapter you will use are completely setup before you start
|
||||
vlmcsd.
|
||||
|
||||
|
||||
-F0 and -F1
|
||||
Allow (-F1) or disallow (-F0) binding to IP addresses that are
|
||||
currently not configured on your system. The default is -F0. -F1
|
||||
allows you to bind to an IP address that may be configured after
|
||||
you started vlmcsd. vlmcsd will listen on that address as soon
|
||||
as it becomes available. This feature is only available under
|
||||
Linux (IPv4 and IPv6) and FreeBSD (IPv4 only). FreeBSD allows
|
||||
this feature only for the root user (more correctly: processes
|
||||
that have the PRIV_NETINET_BINDANY privilege). Linux does not
|
||||
require a capability for this.
|
||||
|
||||
|
||||
-t seconds
|
||||
Timeout the TCP connection with the client after seconds sec-
|
||||
onds. After sending an activation request. RPC keeps the TCP
|
||||
connection for a while. The default is 30 seconds. You may spec-
|
||||
ify a shorter period to free ressources on your device faster.
|
||||
This is useful for devices with limited main memory or if you
|
||||
used -m to limit the concurrent clients that may request activa-
|
||||
tion. Microsoft RPC clients disconnect after 30 seconds by
|
||||
default. Setting seconds to a greater value does not make much
|
||||
sense.
|
||||
|
||||
|
||||
-m concurrent-clients
|
||||
Limit the number of clients that will be handled concurrently.
|
||||
This is useful for devices with limited ressources or if you are
|
||||
experiencing DoS attacks that spawn thousands of threads or
|
||||
forked processes. If additional clients connect to vlmcsd, they
|
||||
need to wait until another client disconnects. If you set con-
|
||||
current-clients to a small value ( <10 ), you should also select
|
||||
a reasonable timeout of 2 or 3 seconds with -t. The default is
|
||||
no limit.
|
||||
|
||||
|
||||
-d Disconnect each client after processing one activation request.
|
||||
This is a direct violation of DCE RPC but may help if you
|
||||
receive malicous fake RPC requests that block your threads or
|
||||
forked processes. Some other KMS emulators (e.g. py-kms) behave
|
||||
this way.
|
||||
|
||||
|
||||
-k Do not disconnect clients after processing an activation
|
||||
request. This selects the default behavior. -k is useful only if
|
||||
you used an ini file (see vlmcsd.ini(5) and -i). If the ini file
|
||||
contains the line "DisconnectClientsImmediately = true", you can
|
||||
use this switch to restore the default behavior.
|
||||
|
||||
|
||||
-N0 and -N1
|
||||
Disables (-N0) or enables (-N1) the use of the NDR64 transfer
|
||||
syntax in the RPC protocol. Unlike Microsoft vlmcsd supports
|
||||
NDR64 on 32-bit operating systems. Microsoft introduced NDR64 in
|
||||
Windows Vista but their KMS servers started using it with Win-
|
||||
dows 8. Thus if you choose random ePIDs, vlmcsd will select
|
||||
ePIDs with build numbers 9200 and 9600 if you enable NDR64 and
|
||||
build numbers 6002 and 7601 if you disable NDR64. The default is
|
||||
to enable NDR64.
|
||||
|
||||
|
||||
-B0 and -B1
|
||||
Disables (-B0) or enables (-B1) bind time feature negotiation
|
||||
(BTFN) in the RPC protocol. All Windows operating systems start-
|
||||
ing with Vista support BTFN and try to negotiate it when initi-
|
||||
ating an RPC connection. Thus consider turning it off as a debug
|
||||
/ troubleshooting feature only. Some older firewalls that selec-
|
||||
tively block or redirect RPC traffic may get confused when they
|
||||
detect NDR64 or BTFN.
|
||||
|
||||
|
||||
-l filename
|
||||
Use filename as a log file. The log file records all activations
|
||||
with IP address, Windows workstation name (no reverse DNS
|
||||
lookup), activated product, KMS protocol, time and date. If you
|
||||
do not specify a log file, no log is created. For a live view of
|
||||
the log file type tail -f file.
|
||||
|
||||
If you use the special filename "syslog", vlmcsd uses syslog(3)
|
||||
for logging. If your system has no syslog service (/dev/log)
|
||||
installed, logging output will go to /dev/console. Syslog log-
|
||||
ging is not available in the native Windows version. The Cygwin
|
||||
version does support syslog logging.
|
||||
|
||||
|
||||
-T0 and -T1
|
||||
Disable (-T0) or enable (-T1) the inclusion of date and time in
|
||||
each line of the log. The default is -T1. -T0 is useful if you
|
||||
log to stdout(3) which is redirected to another logging mecha-
|
||||
nism that already includes date and time in its output, for
|
||||
instance systemd-journald(8). If you log to syslog(3), -T1 is
|
||||
ignored and date and time will never be included in the output
|
||||
sent to syslog(3).
|
||||
|
||||
|
||||
-D Normally vlmcsd daemonizes and runs in background (except the
|
||||
native Windows version). If -D is specified, vlmcsd does not
|
||||
daemonize and runs in foreground. This is useful for testing and
|
||||
allows you to simply press <Ctrl-C> to exit vlmcsd.
|
||||
|
||||
The native Windows version never daemonizes and always behaves
|
||||
as if -D had been specified. You may want to install vlmcsd as a
|
||||
service instead. See -s.
|
||||
|
||||
|
||||
-e If specified, vlmcsd ignores -l and writes all logging output to
|
||||
stdout(3). This is mainly useful for testing and debugging and
|
||||
often combined with -D.
|
||||
|
||||
|
||||
-v Use verbose logging. Logs every parameter of the base request
|
||||
and the base response. It also logs the HWID of the KMS server
|
||||
if KMS protocol version 6 is used. This option is mainly for
|
||||
debugging purposes. It only has an effect if some form of log-
|
||||
ging is used. Thus -v does not make sense if not used with -l,
|
||||
-e or -f.
|
||||
|
||||
|
||||
-q Do not use verbose logging. This is actually the default behav-
|
||||
ior. It only makes sense if you use vlmcsd with an ini file (see
|
||||
-i and vlmcsd.ini(5)). If the ini file contains the line
|
||||
"LogVerbose = true" you can use -q to restore the default behav-
|
||||
ior.
|
||||
|
||||
|
||||
-p filename
|
||||
Create pid file filename. This has nothing to do with KMS ePIDs.
|
||||
A pid file is a file where vlmcsd writes its own process id.
|
||||
This is used by standard init scripts (typically found in
|
||||
/etc/init.d). The default is not to write a pid file.
|
||||
|
||||
|
||||
-u user and -g group
|
||||
Causes vlmcsd to run in the specified user and group security
|
||||
context. The main purpose for this is to drop root privileges
|
||||
after it has been started from the root account. To use this
|
||||
feature from cygwin you must run cyglsa-config and the account
|
||||
from which vlmcsd is started must have the rights "Act as part
|
||||
of the operating system" and "Replace a process level token".
|
||||
The native Windows version does not support these options.
|
||||
|
||||
The actual security context switch is performed after the TCP
|
||||
sockets have been created. This allows you to use privileged
|
||||
ports (< 1024) when you start vlmcsd from the root account.
|
||||
|
||||
However if you use an ini, pid or log file, you must ensure that
|
||||
the unprivileged user has access to these files. You can always
|
||||
log to syslog(3) from an unprivileged account on most platforms
|
||||
(see -l).
|
||||
|
||||
|
||||
-a CSVLK = ePID [ / HwId ]
|
||||
Use ePID and HwId for a specific CSVLK. When you use it, -r is
|
||||
disregarded for this CSVLK. If vlmcsd uses the default vlm-
|
||||
csd.kmd database, you can use the following CSVLKs: Windows,
|
||||
WinChinaGov, Office2010, Office2013, Office2016 and Office2019.
|
||||
The -a option requires that database version 1.6 or later is
|
||||
used.
|
||||
|
||||
HwId must be specified as 16 hex digits that are interpreted as
|
||||
a series of 8 bytes (big endian). Any character that is not a
|
||||
hex digit will be ignored. This is for better readability.
|
||||
|
||||
|
||||
-i filename
|
||||
Use configuration file (aka ini file) filename. Most configura-
|
||||
tion parameters can be set either via the command line or an ini
|
||||
file. The command line always has precedence over configuration
|
||||
items in the ini file. See vlmcsd.ini(5) for the format of the
|
||||
configuration file.
|
||||
|
||||
If vlmcsd has been compiled to use a default configuration file
|
||||
(often /etc/vlmcsd.ini), you may use -i- to ignore the default
|
||||
configuration file.
|
||||
|
||||
|
||||
-j filename
|
||||
Use KMS data file filename. By default vlmcsd only contains the
|
||||
minimum product data that is required to perform all operations
|
||||
correctly. You may use a more complete KMS data file that con-
|
||||
tains all detailed product names. This is especially useful if
|
||||
you are logging KMS requests. If you don't log, there is no need
|
||||
to load an external KMS data file.
|
||||
|
||||
If vlmcsd has been compiled to use a default KMS data file, you
|
||||
may use -j- to ignore the default configuration file.
|
||||
|
||||
|
||||
-r0, -r1 (default) and -r2
|
||||
These options determine how ePIDs are generated if
|
||||
|
||||
- you did not sprecify an ePID in the command line and
|
||||
- you haven't used -i or
|
||||
- the file specified by -i cannot be opened or
|
||||
- the file specified by -i does not contain an ePID for the KMS
|
||||
request
|
||||
|
||||
-r0 means there are no random ePIDs. vlmcsd simply issues
|
||||
default ePIDs that are built into the binary at compile time.
|
||||
Pro: behaves like real KMS server that also always issues the
|
||||
same ePID. Con: Microsoft may start blacklisting again and the
|
||||
default ePID may not work any longer.
|
||||
|
||||
-r1 instructs vlmcsd to generate random ePIDs when the program
|
||||
starts or receives a SIGHUP signal and uses these ePIDs until it
|
||||
is stopped or receives another SIGHUP. Most other KMS emulators
|
||||
generate a new ePID on every KMS request. This is easily
|
||||
detectable. Microsoft could just modify sppsvc.exe in a way that
|
||||
it always sends two identical KMS requests in two RPC requests
|
||||
but over the same TCP connection. If both KMS responses contain
|
||||
the different ePIDs, the KMS server is not genuine. -r1 is the
|
||||
default mode. -r1 also ensures that all three ePIDs (Windows,
|
||||
Office 2010 and Office 2013) use the same OS build number and
|
||||
LCID (language id).
|
||||
|
||||
If vlmcsd has been started by an internet superserver, -r1 works
|
||||
almost identically to -r2. The only exception occurs if you send
|
||||
more than one activation request over the same TCP connection.
|
||||
This is simply due to the fact that vlmcsd is started upon a
|
||||
connection request and does not stay in memory after servicing a
|
||||
KMS request. Consider using -r0 or -w, -G, -0, -3 and -6 when
|
||||
starting vlmcsd by an internet superserver.
|
||||
|
||||
-r2 behaves like most other KMS server emulators with random
|
||||
support and generates a new random ePID on every request. -r2
|
||||
should be treated as debugging option only because it allows
|
||||
very easy emulator detection.
|
||||
|
||||
|
||||
-C LCID
|
||||
Do not randomize the locale id part of the ePID and use LCID
|
||||
instead. The LCID must be specified as a decimal number, e.g.
|
||||
1049 for "Russian - Russia". This option has no effect if the
|
||||
ePID is not randomized at all, e.g. if it is selected from the
|
||||
command line or an ini file.
|
||||
|
||||
By default vlmcsd generates a valid locale id that is recognized
|
||||
by .NET Framework 4.0. This may lead to a locale id which is
|
||||
unlikely to occur in your country, for instance 2155 for "Quecha
|
||||
- Ecuador". You may want to select the locale id of your country
|
||||
instead. See MSDN <http://msdn.microsoft.com/en-us/goglobal/
|
||||
bb964664.aspx> for a list of valid LCIDs. Please note that some
|
||||
of them are not recognized by .NET Framework 4.0.
|
||||
|
||||
Most other KMS emulators use a fixed LCID of 1033 (English -
|
||||
US). To achive the same behavior in vlmcsd use -C 1033.
|
||||
|
||||
|
||||
-H HostBuild
|
||||
Do not randomize the host build number in the ePID and use Host-
|
||||
Build instead, for instance 17763 for Windows Server 2019 / Win-
|
||||
dows 10 1809.
|
||||
|
||||
|
||||
-K0, -K1, -K2 and -K3
|
||||
Sets the whitelisting level to determine which products vlmcsd
|
||||
activates or refuses. The default is -K0.
|
||||
|
||||
-K0: activate all products with an unknown, retail or
|
||||
beta/preview KMS ID.
|
||||
-K1: activate products with a retail or beta/preview KMS ID
|
||||
but refuse to activate products with an unknown KMS ID.
|
||||
-K2: activate products with an unknown KMS ID but refuse
|
||||
products with a retail or beta/preview KMS ID.
|
||||
-K3: activate only products with a known volume license RTM
|
||||
KMS ID and refuse all others.
|
||||
|
||||
|
||||
The SKU ID is not checked. Like a genuine KMS server vlmcsd
|
||||
activates a product that has a random or unknown SKU ID. If you
|
||||
select -K1 or -K3, vlmcsd also checks the Application ID for
|
||||
correctness. If Microsoft introduces a new KMS ID for a new
|
||||
product, you cannot activate it if you used -K1 or -K3 until a
|
||||
new version of vlmcsd is available.
|
||||
|
||||
|
||||
-c0 and -c1
|
||||
-c1 causes vlmcsd to check if the client time differs no more
|
||||
than four hours from the system time. -c0 (the default) disables
|
||||
this check. -c1 is useful to prevent emulator detection. A
|
||||
client that tries to detect an emulator could simply send two
|
||||
subsequent request with two time stamps that differ more than
|
||||
four hours from each other. If both requests succeed, the server
|
||||
is an emulator. If you specify -c1 on a system with no reliable
|
||||
time source, activations will fail. It is ok to set the correct
|
||||
system time after you started vlmcsd.
|
||||
|
||||
|
||||
-M0 and -M1
|
||||
Disables (-M0) or enables (-M1) maintaining a list of client
|
||||
machine IDs (CMIDs). The default is -M0. -M1 is useful to pre-
|
||||
vent emulator detection. By maintaing a CMID list, vlmcsd
|
||||
reports current active clients exactly like a genuine KMS emula-
|
||||
tor. This includes bug compatibility to the extent that you can
|
||||
permanently kill a genuine KMS emulator by sending an "over-
|
||||
charge request" with a required client count of 376 or more and
|
||||
then request activation for 671 clients. vlmcsd can be reset
|
||||
from this condition by restarting it. If -M0 is used, vlmcsd
|
||||
reports current active clients as good as possible. If no client
|
||||
sends an "overcharge request", it is not possible to detect vlm-
|
||||
csd as an emulator with -M0. -M1 requires the allocation of a
|
||||
buffer that is about 50 kB in size. On hardware with few memory
|
||||
resources use it only if you really need it.
|
||||
|
||||
If you start vlmcsd from an internet superserver, -M1 cannot be
|
||||
used. Since vlmcsd exits after each activation, it cannot main-
|
||||
tain any state in memory.
|
||||
|
||||
|
||||
-E0 and -E1
|
||||
These options are ignored if you do not also specify -M1. If you
|
||||
use -E0 (the default), vlmcsd starts up as a fully "charged" KMS
|
||||
server. Clients activate immediately. -E1 lets you start up vlm-
|
||||
csd with an empty CMID list. Activation will start when the
|
||||
required minimum clients (25 for Windows Client OSses, 5 for
|
||||
Windows Server OSses and Office) have registered with the KMS
|
||||
server. As long as the minimum client count has not been
|
||||
reached, clients end up in HRESULT 0xC004F038 "The count
|
||||
reported by your Key Management Service (KMS) is insufficient.
|
||||
Please contact your system administrator". You may use vlmcs(1)
|
||||
or another KMS client emulator to "charge" vlmcsd. -E1 does not
|
||||
improve emulator detection prevention. It's primary purpose is
|
||||
to help developers of KMS clients to test "charging" a KMS
|
||||
server.
|
||||
|
||||
|
||||
-R renewal-interval
|
||||
Instructs clients to renew activation every renewal-interval.
|
||||
The renewal-interval is a number optionally immediately followed
|
||||
by a letter indicating the unit. Valid unit letters are s (sec-
|
||||
onds), m (minutes), h (hours), d (days) and w (weeks). If you do
|
||||
not specify a letter, minutes is assumed.
|
||||
|
||||
-R3d for instance instructs clients to renew activation every 3
|
||||
days. The default renewal-interval is 10080 (identical to 7d and
|
||||
1w).
|
||||
|
||||
Due to poor implementation of Microsofts KMS Client it cannot be
|
||||
guaranteed that activation is renewed on time as specfied by the
|
||||
-R option. Don't care about that. Renewal will happen well
|
||||
before your activation expires (usually 180 days).
|
||||
|
||||
Even though you can specify seconds, the granularity of this
|
||||
option is 1 minute. Seconds are rounded down to the next multi-
|
||||
ple of 60.
|
||||
|
||||
|
||||
-A activation-interval
|
||||
Instructs clients to retry activation every activation-interval
|
||||
if it was unsuccessful, e.g. because it could not reach the
|
||||
server. The default is 120 (identical to 2h). activation-inter-
|
||||
val follows the same syntax as renewal-interval in the -R
|
||||
option.
|
||||
|
||||
|
||||
-s Installs vlmcsd as a Windows service. This option only works
|
||||
with the native Windows version and Cygwin. Combine -s with
|
||||
other command line options. These will be in effect when you
|
||||
start the service. The service automatically starts when you
|
||||
reboot your machine. To start it manually, type "net start vlm-
|
||||
csd".
|
||||
|
||||
If you use Cygwin, you must include your Cygwin system DLL
|
||||
directory (usually C:\Cygwin\bin or C:\Cygwin64\bin) into the
|
||||
PATH environment variable or the service will not start.
|
||||
|
||||
You can reinstall the service anytime using vlmcsd -s again,
|
||||
e.g. with a different command line. If the service is running,
|
||||
it will be restarted with the new command line.
|
||||
|
||||
When using -s the command line is checked for basic syntax
|
||||
errors only. For example "vlmcsd -s -L 1.2.3.4" reports no error
|
||||
but the service will not start if 1.2.3.4 is not an IP address
|
||||
on your system.
|
||||
|
||||
|
||||
-S Uninstalls the vlmcsd service. Works only with the native Win-
|
||||
dows version and Cygwin. All other options will be ignored if
|
||||
you include -S in the command line.
|
||||
|
||||
|
||||
-U [domain\]username
|
||||
Can only be used together with -s. Starts the service as a dif-
|
||||
ferent user than the local SYSTEM account. This is used to run
|
||||
the service under an account with low privileges. If you omit
|
||||
the domain, an account from the local computer will be used.
|
||||
|
||||
You may use "NT AUTHORITY\NetworkService". This is a pseudo user
|
||||
with low privileges. You may also use "NT AUTHORITY\LocalSer-
|
||||
vice" which has more privileges but these are of no use for run-
|
||||
ning vlmcsd.
|
||||
|
||||
Make sure that the user you specify has at least execute permis-
|
||||
sion for your executable. "NT AUTHORITY\NetworkService" normally
|
||||
has no permission to run binaries from your home directory.
|
||||
|
||||
For your convenience you can use the special username "/l" as a
|
||||
shortcut for "NT AUTHORITY\LocalService" and "/n" for "NT
|
||||
AUTHORITY\NetworkService". "vlmcsd -s -U /n" installs the ser-
|
||||
vice to run as "NT AUTHORITY\NetworkService".
|
||||
|
||||
|
||||
-W password
|
||||
Can only be used together with -s. Specifies a password for the
|
||||
corresponding username you use with -U. SYSTEM, "NT AUTHOR-
|
||||
ITY\NetworkService", "NT AUTHORITY\LocalService" do not require
|
||||
a password.
|
||||
|
||||
If you specify a user with even lower privileges than "NT
|
||||
AUTHORITY\NetworkService", you must specify its password. You
|
||||
also have to grant the "Log on as a service" right to that user.
|
||||
|
||||
|
||||
SIGNALS
|
||||
The following signals differ from the default behavior:
|
||||
|
||||
|
||||
SIGTERM, SIGINT
|
||||
These signals cause vlmcsd to exit gracefully. All global sema-
|
||||
phores and shared memory pages will be released, the pid file
|
||||
will be unlinked (deleted) and a shutdown message will be
|
||||
logged.
|
||||
|
||||
|
||||
SIGHUP Causes vlmcsd to be restarted completely. This is useful if you
|
||||
started vlmcsd with an ini file. You can modify the ini file
|
||||
while vlmcsd is running and then sending SIGHUP, e.g. by typing
|
||||
"killall -SIGHUP vlmcsd" or "kill -SIGHUP `cat /var/run/vlm-
|
||||
csd.pid`".
|
||||
|
||||
The SIGHUP handler has been implemented relatively simple. It is
|
||||
virtually the same as stopping vlmcsd and starting it again
|
||||
immediately with the following exceptions:
|
||||
|
||||
|
||||
-- The new process does not get a new process id.
|
||||
|
||||
-- If you used a pid file, it is not deleted and recreated
|
||||
because the process id stays the same.
|
||||
|
||||
-- If you used the 'user' and/or 'group' directive in an ini
|
||||
file these are ignored. This is because once you switched to
|
||||
lower privileged users and groups, there is no way back. Any-
|
||||
thing else would be a severe security flaw in the OS.
|
||||
|
||||
Signaling is not available in the native Windows version and in the
|
||||
Cygwin version when vlmcsd runs as a Windows service.
|
||||
|
||||
|
||||
SUPPORTED OPERATING SYSTEMS
|
||||
vlmcsd compiles and runs on Linux, Windows (no Cygwin required but
|
||||
explicitly supported), Mac OS X, FreeBSD, NetBSD, OpenBSD, Dragonfly
|
||||
BSD, Minix, Solaris, OpenIndiana, Android and iOS. Other POSIX or
|
||||
unixoid OSses may work with unmodified sources or may require minor
|
||||
porting efforts.
|
||||
|
||||
|
||||
SUPPORTED PRODUCTS
|
||||
vlmcsd can answer activation requests for the following products: Win-
|
||||
dows Vista, Windows 7, Windows 8, Windows 8.1, Windows 10 (up to 1703),
|
||||
Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Win-
|
||||
dows Server 2012 R2, Windows Server 2016, Office 2010, Project 2010,
|
||||
Visio 2010, Office 2013, Project 2013, Visio 2013, Office 2016, Project
|
||||
2016, Visio 2016. Newer products may work as long as the KMS protocol
|
||||
does not change. A complete list of fully supported products can be
|
||||
obtained using the -x option of vlmcs(1).
|
||||
|
||||
Office, Project and Visio must be volume license versions.
|
||||
|
||||
|
||||
FILES
|
||||
vlmcsd.ini(5)
|
||||
|
||||
|
||||
EXAMPLES
|
||||
vlmcsd -De
|
||||
Starts vlmcsd in foreground. Useful if you use it for the first
|
||||
time and want to see what's happening when a client requests
|
||||
activation.
|
||||
|
||||
|
||||
vlmcsd -l /var/log/vlmcsd.log
|
||||
Starts vlmcsd as a daemon and logs everything to /var/log/vlm-
|
||||
csd.log.
|
||||
|
||||
|
||||
vlmcsd -L 192.168.1.17
|
||||
Starts vlmcsd as a daemon and listens on IP address 192.168.1.17
|
||||
only. This is useful for routers that have a public and a pri-
|
||||
vate IP address to prevent your KMS server from becoming public.
|
||||
|
||||
|
||||
vlmcsd -s -U /n -l C:\logs\vlmcsd.log
|
||||
Installs vlmcsd as a Windows service with low privileges and
|
||||
logs everything to C:\logs\vlmcsd.log when the service is
|
||||
started with "net start vlmcsd".
|
||||
|
||||
|
||||
BUGS
|
||||
An ePID specified in an ini file must not contain spaces.
|
||||
|
||||
|
||||
AUTHOR
|
||||
Written by crony12, Hotbird64 and vityan666. With contributions from
|
||||
DougQaid.
|
||||
|
||||
|
||||
CREDITS
|
||||
Thanks to abbodi1406, CODYQX4, deagles, eIcn, mikmik38, nosferati87,
|
||||
qad, Ratiborus, ...
|
||||
|
||||
|
||||
SEE ALSO
|
||||
vlmcsd.ini(5), vlmcsd(7), vlmcs(1), vlmcsdmulti(1)
|
||||
|
||||
|
||||
|
||||
Hotbird64 October 2018 VLMCSD(8)
|
@ -1,486 +0,0 @@
|
||||
VLMCSD.INI(5) KMS Activation Manual VLMCSD.INI(5)
|
||||
|
||||
|
||||
|
||||
NAME
|
||||
vlmcsd.ini - vlmcsd KMS emulator configuration file
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
vlmcsd.ini
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
vlmcsd.ini (or simply called the "ini file") is a configuration file
|
||||
for vlmcsd(8). By default vlmcsd does not use a configuration file. It
|
||||
is completely optional and for advanced users only. You must use the -i
|
||||
option on the vlmcsd command line to use an ini file. There is no
|
||||
default name or default location for the ini file.
|
||||
|
||||
Everything, that can be configured in the ini file, may also be speci-
|
||||
fied on the command line. Any configuration option specified on the
|
||||
command line takes precedence over the respective configuration line in
|
||||
the ini file.
|
||||
|
||||
Benefits of a configuration file
|
||||
|
||||
While you can use the configuration file to simply modify the default
|
||||
behavior of vlmcsd, it can also be used to change the configuration of
|
||||
vlmcsd after you sent a HUP signal(7). Whenever you send SIGHUP, the
|
||||
configuration file will be re-read. Any changes you made to the ini
|
||||
file will be reflected after vlmcsd received the hangup signal.
|
||||
|
||||
Differences between command line and configuration file
|
||||
|
||||
If you specify an illegal option or option argument on the command
|
||||
line, vlmcsd displays help and exits. If you specify an incorrect key-
|
||||
word or argument in the ini file, vlmcsd displays a warning with some
|
||||
information, ignores the respective line and continues. This is inten-
|
||||
tional and prevents vlmcsd from aborting after a SIGHUP if the configu-
|
||||
ration was modified incorrectly.
|
||||
|
||||
|
||||
SYNTAX
|
||||
vlmcsd.ini is a UTF-8 encoded text file with each line being in the
|
||||
format keyword = argument. The keyword is not case-sensitive. The argu-
|
||||
ment is treated literally. It is neither required nor allowed to
|
||||
enclose the argument in any form of quote characters except when quote
|
||||
characters are part of the argument itself. Whitespace characters are
|
||||
ignored only
|
||||
|
||||
- at the beginning of a line
|
||||
- between the keyword and '='
|
||||
- between '=' and the argument
|
||||
|
||||
Lines, that start with '#' or ';' are treated as comments. Empty lines
|
||||
are ignored as well. If a keyword is repeated in another line, vlmcsd
|
||||
will use the argument of the last occurence of the keyword. An excep-
|
||||
tion to this is the Listen keyword which can be specified multiple
|
||||
times and causes vlmcsd to listen on more than one IP address and/or
|
||||
port.
|
||||
|
||||
Some arguments are binary arguments that need to be either TRUE or
|
||||
FALSE. You can use "Yes", "On" or "1" as an alias for TRUE and "No",
|
||||
"Off" or "0" as an alias for FALSE. Binary arguments are case-insensi-
|
||||
tive.
|
||||
|
||||
|
||||
KEYWORDS
|
||||
The following keywords are defined (not all keywords may be available
|
||||
depending on the operating system and the options used when vlmcsd(8)
|
||||
was compiled):
|
||||
|
||||
|
||||
Listen This defines on what combinations of IP addresses and ports vlm-
|
||||
csd should listen. Listen can be specified more than once. The
|
||||
argument has the form ipaddress[:port]. If you omit the port,
|
||||
the default port of 1688 is used. If the ipaddress contains
|
||||
colons and a port is used, you must enclose the ipaddress in
|
||||
brackets. The default is to listen to 0.0.0.0:1688 and [::]:1688
|
||||
which means listen to all IPv4 and all IPv6 addresses. See the
|
||||
-L option in vlmcsd(8) for more info about the syntax. If you
|
||||
use -L or -P on the command line, all Listen keywords in the ini
|
||||
file will be ignored. The Listen keyword cannot be used if vlm-
|
||||
csd has been compiled to use Microsoft RPC (Windows and Cygwin
|
||||
only) or simple sockets.
|
||||
|
||||
Examples:
|
||||
|
||||
Listen = 192.168.1.123:1688
|
||||
Listen = 0.0.0.0:1234
|
||||
Listen = [fe80::1721:12ff:fe81:d36b%eth0]:1688
|
||||
|
||||
|
||||
Port Can only be used if vlmcsd has been compiled to use simple sock-
|
||||
ets or on Windows and Cygwin if vlmcsd(8) has been compiled to
|
||||
use Microsoft RPC. Otherwise you must use Listen instead. Causes
|
||||
vlmcsd to listen on that port instead of 1688.
|
||||
|
||||
|
||||
FreeBind
|
||||
Can be TRUE or FALSE. If TRUE, you can use the Listen keyword
|
||||
with IP addresses that are currently not defined on your system.
|
||||
vlmcsd(8) will start listening on these IP addresses as soon as
|
||||
they become available. This keyword is only available under
|
||||
Linux and FreeBSD because no other OS currently supports that
|
||||
feature. FreeBSD supports this only for IPv4 and requires the
|
||||
PRIV_NETINET_BINDANY privilege which is normally assigned to
|
||||
proccesses of the root user.
|
||||
|
||||
|
||||
PublicIPProtectionLevel
|
||||
Set the level of protection against KMS activations from public
|
||||
IP addresses.
|
||||
|
||||
0 = No protection (default)
|
||||
1 = Listen on private IP addresses only (plus those specified by
|
||||
one or more Listen statements)
|
||||
2 = Disconnect clients with public IP addresses without activat-
|
||||
ing
|
||||
3 = Combines 1 and 2
|
||||
|
||||
For details on public IP protection levels see vlmcsd(8) command
|
||||
line option -o.
|
||||
|
||||
|
||||
VPN Has to be in the form vpn-adapter-name[=ipv4-address][/cidr-
|
||||
mask][:dhcp-lease-duration].
|
||||
|
||||
Enables a compatible VPN adapter to create additional local IPv4
|
||||
addresses (like 127.0.0.1) that appear as remote IPv4 addresses
|
||||
to the system. This allows product activation using a local
|
||||
instance of vlmcsd. This feature is only available in Windows
|
||||
and Cygwin builds of vlmcsd since it is not of any use on other
|
||||
operating systems. Compatible VPN adapters are Tap-windows ver-
|
||||
sion 8.2 or higher (from OpenVPN) and the TeamViewer VPN
|
||||
adapter. There is a special vpn-adapter-name. A single period
|
||||
(.) instructs vlmcsd to use the first available compatible VPN
|
||||
adapter. The vpn-adapter-name is not case-sensitive. If the vpn-
|
||||
adapter-name contains spaces (e.g. Ethernet 3), do not enclose
|
||||
it in quotes.
|
||||
|
||||
The default ipv4-address is 10.10.10.9 and the default cidr-mask
|
||||
is 30. If you are using the default values, your VPN adapter
|
||||
uses an IPv4 address of 10.10.10.9 and you can set your activa-
|
||||
tion client to use the easy to remember address 10.10.10.10
|
||||
(e.g. slmgr /skms 10.10.10.10 or cscript ospp.vbs
|
||||
/sethst:10.10.10.10).
|
||||
|
||||
The dhcp-lease-duration is a number optionally followed by s, m,
|
||||
h, d or w to indicate seconds, minutes, hours, days or weeks.
|
||||
The default dhcp-lease-duration is 1d (one day). It is normally
|
||||
not required to change this value.
|
||||
|
||||
It is advised not to manually configure your OpenVPN TAP or
|
||||
TeamViewer VPN adapter in "Network Connections". If you set the
|
||||
IPv4 configuration manually anyway, the IPv4 address and the
|
||||
subnet mask must match the VPN= directive. It is safe leave the
|
||||
IPv4 configuration to automatic (DHCP). vlmcsd will wait up to
|
||||
four seconds for the DHCP configuration to complete before bind-
|
||||
ing to and listenin on any interfaces.
|
||||
|
||||
You should be aware that only one program can use a VPN adapter
|
||||
at a time. If you use the TeamViewer VPN adapter for example,
|
||||
you will not be able to use the VPN feature of TeamViewer as
|
||||
long as vlmcsd is running. The same applies to OpenVPN TAP
|
||||
adapters that are in use by other programs (for example OpenVPN,
|
||||
QEMU, Ratiborus VM, aiccu, etc.). The best way to avoid con-
|
||||
flicts is to install Tap-Windows from OpenVPN, cd to C:\Program
|
||||
Files\TAP-Windows\bin and run addtap.bat to install an addi-
|
||||
tional TAP adapter. Go to "Network Connections" and rename the
|
||||
new adapter to "vlmcsd" and specify VPN=vlmcsd to use it.
|
||||
|
||||
|
||||
ExitLevel
|
||||
Can be either 0 (the default) or 1. Controls under what circum-
|
||||
stances vlmcsd will exit. Using the default of 0 vlmcsd stays
|
||||
active as long as it can perform some useful operations. If vlm-
|
||||
csd is run by any form of a watchdog, e.g. NT service manager
|
||||
(Windows), systemd (Linux) or launchd (Mac OS / iOS), it may be
|
||||
desirable to end vlmcsd and let the watchdog restart it. This is
|
||||
especially true if some pre-requisites are not yet met but will
|
||||
be some time later, e.g. network is not yet fully setup.
|
||||
|
||||
By using ExitLevel = 0 vlmcsd will
|
||||
|
||||
exit if none of the listening sockets specified with -L can
|
||||
be used. It continues if at least one socket can be setup
|
||||
for listening.
|
||||
|
||||
exit any TAP mirror thread (Windows version only) if there
|
||||
is an error condition while reading or writing from or to
|
||||
the VPN adapter but continue to work without utilizing a
|
||||
VPN adapter.
|
||||
|
||||
By using ExitLevel = 1 vlmcsd will
|
||||
|
||||
exit if not all listening sockets specified with -L can be
|
||||
used.
|
||||
|
||||
exit completely if there is a problem with a VPN adapter it
|
||||
is using. This may happen for instance if the VPN adapter
|
||||
has been disabled using "Control Panel - Network - Adapter
|
||||
Settings" while vlmcsd is using it.
|
||||
|
||||
|
||||
Please note that ExitLevel = 1 is kind of a workaround option.
|
||||
While it may help under some circumstances, it is better to
|
||||
solve the problem at its origin, e.g. properly implementing
|
||||
dependencies in your startup script to ensure all network inter-
|
||||
faces and the VPN adapter you will use are completely setup
|
||||
before you start vlmcsd.
|
||||
|
||||
|
||||
UseNDR64
|
||||
Can be TRUE or FALSE. Specifies whether you want to use the
|
||||
NDR64 transfer syntax. See options -n0 and -n1 in vlmcsd(8). The
|
||||
default is TRUE.
|
||||
|
||||
|
||||
UseBTFN
|
||||
Can be TRUE or FALSE. Specifies whether you want to use bind
|
||||
time feature negotiation in RPC. See options -b0 and -b1 in vlm-
|
||||
csd(8). The default is TRUE.
|
||||
|
||||
|
||||
RandomizationLevel
|
||||
The argument must 0, 1 or 2. This specifies the ePID randomiza-
|
||||
tion level. See options -r0, -r1 and -r2 in vlmcsd(8). The
|
||||
default randomization level is 1. A RandomizationLevel of 2 is
|
||||
not recommended and should be treated as a debugging level.
|
||||
|
||||
|
||||
LCID Use a specific culture id (LCID) even if the ePID is randomized.
|
||||
The argument must be a number between 1 and 32767. While any
|
||||
number in that range is valid, you should use an offcial LCID. A
|
||||
list of assigned LCIDs can be found at http://msdn.micro-
|
||||
soft.com/en-us/goglobal/bb964664.aspx. On the command line you
|
||||
control this setting with option -C.
|
||||
|
||||
|
||||
HostBuild
|
||||
Use a specific host build number in the ePID even if it is ran-
|
||||
domized. The argument must be a number between 1 and 65535.
|
||||
While you can use any number you should only use build numbers
|
||||
that a released build numbers of Windows Servers, e.g. 17763 for
|
||||
Windows Server 2019.
|
||||
|
||||
|
||||
MaxWorkers
|
||||
The argument specifies the maximum number of worker processes or
|
||||
threads that will be used to serve activation requests concur-
|
||||
rently. This is the same as specifying -m on the command line.
|
||||
Minimum is 1. The maximum is platform specific and is at least
|
||||
32767 but is likely to be greater on most systems. The default
|
||||
is no limit.
|
||||
|
||||
|
||||
ConnectionTimeout
|
||||
Used to control when the vlmcsd disconnects idle TPC connec-
|
||||
tions. The default is 30 seconds. This is the same setting as -t
|
||||
on the command line.
|
||||
|
||||
|
||||
DisconnectClientsImmediately
|
||||
Set this to TRUE to disconnect a client after it got an activa-
|
||||
tion response regardless whether a timeout has occured or not.
|
||||
The default is FALSE. Setting this to TRUE is non-standard
|
||||
behavior. Use only if you are experiencing DoS or DDoS attacks.
|
||||
On the command line you control this behavior with options -d
|
||||
and -k.
|
||||
|
||||
|
||||
PidFile
|
||||
Write a pid file. The argument is the full pathname of a pid
|
||||
file. The pid file contains is single line containing the
|
||||
process id of the vlmcsd process. It can be used to stop
|
||||
(SIGTERM) or restart (SIGHUP) vlmcsd. This directive can be
|
||||
overriden using -p on the command line.
|
||||
|
||||
|
||||
LogFile
|
||||
Write a log file. The argument is the full pathname of a log
|
||||
file. On a unixoid OS and with Cygwin you can use the special
|
||||
filename 'syslog' to log to the syslog facility. This is the
|
||||
same as specifying -l on the command line.
|
||||
|
||||
|
||||
KmsData
|
||||
Use a KMS data file. The argument is the full pathname of a KMS
|
||||
data file. By default vlmcsd only contains the minimum product
|
||||
data that is required to perform all operations correctly. You
|
||||
may use a more complete KMS data file that contains all detailed
|
||||
product names. This is especially useful if you are logging KMS
|
||||
requests. If you don't log, there is no need to load an external
|
||||
KMS data file.
|
||||
|
||||
You may use KmsData = - to prevent the default KMS data file to
|
||||
be loaded.
|
||||
|
||||
|
||||
LogDateAndTime
|
||||
Can be TRUE or FALSE. The default is TRUE. If set to FALSE, log-
|
||||
ging output does not include date and time. This is useful if
|
||||
you log to stdout(3) which is redirected to another logging
|
||||
mechanism that already includes date and time in its output, for
|
||||
instance systemd-journald(8). If you log to syslog(3), LogDate-
|
||||
AndTime is ignored and date and time will never be included in
|
||||
the output sent to syslog(3). Using the command line you control
|
||||
this setting with options -T0 and -T1.
|
||||
|
||||
|
||||
LogVerbose
|
||||
Set this to either TRUE or FALSE. The default is FALSE. If set
|
||||
to TRUE, more details of each activation will be logged. You use
|
||||
-v and -q in the command line to control this setting. LogVer-
|
||||
bose has an effect only if you specify a log file or redirect
|
||||
logging to stdout(3).
|
||||
|
||||
|
||||
WhitelistingLevel
|
||||
Can be 0, 1, 2 or 3. The default is 0. Sets the whitelisting
|
||||
level to determine which products vlmcsd activates or refuses.
|
||||
|
||||
0: activate all products with an unknown, retail or
|
||||
beta/preview KMS ID.
|
||||
1: activate products with a retail or beta/preview KMS ID
|
||||
but refuse to activate products with an unknown KMS ID.
|
||||
2: activate products with an unknown KMS ID but refuse
|
||||
products with a retail or beta/preview KMS ID.
|
||||
3: activate only products with a known volume license RTM
|
||||
KMS ID and refuse all others.
|
||||
|
||||
|
||||
The SKU ID is not checked. Like a genuine KMS server vlmcsd
|
||||
activates a product that has a random or unknown SKU ID. If you
|
||||
select 1 or 3, vlmcsd also checks the Application ID for cor-
|
||||
rectness. If Microsoft introduces a new KMS ID for a new prod-
|
||||
uct, you cannot activate it if you used 1 or 3 until a new ver-
|
||||
sion of vlmcsd is available.
|
||||
|
||||
|
||||
CheckClientTime
|
||||
Can be TRUE or FALSE. The default is FALSE. If you set this to
|
||||
TRUE vlmcsd(8) checks if the client time differs no more than
|
||||
four hours from the system time. This is useful to prevent emu-
|
||||
lator detection. A client that tries to detect an emulator could
|
||||
simply send two subsequent request with two time stamps that
|
||||
differ more than four hours from each other. If both requests
|
||||
succeed, the server is an emulator. If you set this to TRUE on a
|
||||
system with no reliable time source, activations will fail. It
|
||||
is ok to set the correct system time after you started vlm-
|
||||
csd(8).
|
||||
|
||||
|
||||
MaintainClients
|
||||
Can be TRUE or FALSE (the default). Disables (FALSE) or enables
|
||||
(TRUE) maintaining a list of client machine IDs (CMIDs). TRUE is
|
||||
useful to prevent emulator detection. By maintaing a CMID list,
|
||||
vlmcsd(8) reports current active clients exactly like a genuine
|
||||
KMS emulator. This includes bug compatibility to the extent that
|
||||
you can permanently kill a genuine KMS emulator by sending an
|
||||
"overcharge request" with a required client count of 376 or more
|
||||
and then request activation for 671 clients. vlmcsd(8) can be
|
||||
reset from this condition by restarting it. If FALSE is used,
|
||||
vlmcsd(8) reports current active clients as good as possible. If
|
||||
no client sends an "overcharge request", it is not possible to
|
||||
detect vlmcsd(8) as an emulator with MaintainClients = FALSE.
|
||||
Maintaining clients requires the allocation of a buffer that is
|
||||
about 50 kB in size. On hardware with few memory resources use
|
||||
it only if you really need it.
|
||||
|
||||
If you start vlmcsd(8) from an internet superserver, this set-
|
||||
ting cannot be used. Since vlmcsd(8) exits after each activa-
|
||||
tion, it cannot maintain any state in memory.
|
||||
|
||||
|
||||
StartEmpty
|
||||
This setting is ignored if you do not also specify Maintain-
|
||||
Clients = TRUE. If you specify FALSE (the default), vlmcsd(8)
|
||||
starts up as a fully "charged" KMS server. Clients activate
|
||||
immediately. StartEmpty = TRUE lets you start up vlmcsd(8) with
|
||||
an empty CMID list. Activation will start when the required min-
|
||||
imum clients (25 for Windows Client OSses, 5 for Windows Server
|
||||
OSses and Office) have registered with the KMS server. As long
|
||||
as the minimum client count has not been reached, clients end up
|
||||
in HRESULT 0xC004F038 "The count reported by your Key Management
|
||||
Service (KMS) is insufficient. Please contact your system admin-
|
||||
istrator". You may use vlmcs(1) or another KMS client emulator
|
||||
to "charge" vlmcsd(8). Setting this parameter to TRUE does not
|
||||
improve emulator detection prevention. It's primary purpose is
|
||||
to help developers of KMS clients to test "charging" a KMS
|
||||
server.
|
||||
|
||||
|
||||
ActivationInterval
|
||||
This is the same as specifying -A on the command line. See vlm-
|
||||
csd(8) for details. The default is 2 hours. Example: Activation-
|
||||
Interval = 1h
|
||||
|
||||
|
||||
RenewalInterval
|
||||
This is the same as specifying -R on the command line. See vlm-
|
||||
csd(8) for details. The default is 7 days. Example: RenewalIn-
|
||||
terval = 3d. Please note that the KMS client decides itself when
|
||||
to renew activation. Even though vlmcsd sends the renewal inter-
|
||||
val you specify, it is no more than some kind of recommendation
|
||||
to the client. Older KMS clients did follow the recommendation
|
||||
from a KMS server or emulator. Newer clients do not.
|
||||
|
||||
|
||||
User Run vlmcsd as another, preferrably less privileged, user. The
|
||||
argument can be a user name or a numeric user id. You must have
|
||||
the required privileges (capabilities on Linux) to change the
|
||||
security context of a process without providing any credentials
|
||||
(a password in most cases). On most unixoid OSses 'root' is the
|
||||
only user who has these privileges in the default configuration.
|
||||
This setting is not available in the native Windows version of
|
||||
vlmcsd. See -u in vlmcsd(8). This setting cannot be changed on
|
||||
the fly by sending SIGHUP to vlmcsd.
|
||||
|
||||
|
||||
Group Run vlmcsd as another, preferrably less privileged, group. The
|
||||
argument can be a group name or a numeric group id. You must
|
||||
have the required privileges (capabilities on Linux) to change
|
||||
the security context of a process without providing any creden-
|
||||
tials (a password in most cases). On most unixoid OSses 'root'
|
||||
is the only user who has these privileges in the default config-
|
||||
uration. This setting is not available in the native Windows
|
||||
version of vlmcsd. See -g in vlmcsd(8). This setting cannot be
|
||||
changed on the fly by sending SIGHUP to vlmcsd.
|
||||
|
||||
|
||||
<csvlk-name>
|
||||
The argument has the form ePID [ / HwId ]. Always use ePID and
|
||||
HwId for activations with <csvlk-name>. If specified, Randomiza-
|
||||
tionLevel for the <csvlk-name> will be ignored. With the default
|
||||
vlmcsd.kmd database you can use the following <csvlk-name>s:
|
||||
Windows, Office2010, Office2013, Office2016, Office2019 and
|
||||
WinChinaGov. While vlmcsd is compatible with older databases,
|
||||
you must use at least database version 1.6 for this feature to
|
||||
work.
|
||||
|
||||
|
||||
VALID EPIDS
|
||||
The ePID is currently a comment only. You can specify any string up to
|
||||
63 bytes. In Windows 7 Microsoft has blacklisted few ( < 10 ) ePIDs
|
||||
that were used in KMSv5 versions of the "Ratiborus Virtual Machine".
|
||||
Microsoft has given up on blacklisting when KMS emulators appeared in
|
||||
the wild.
|
||||
|
||||
Even if you can use "Activated by cool hacker guys" as an ePID, you may
|
||||
wish to use ePIDs that cannot be detected as non-MS ePIDs. If you don't
|
||||
know how these "valid" ePIDs look like exactly, do not use GUIDS in
|
||||
vlmcsd.ini. vlmcsd provides internal mechanisms to generate valid
|
||||
ePIDs.
|
||||
|
||||
If you use non-ASCII characters in your ePID (you shouldn't do anyway),
|
||||
these must be in UTF-8 format. This is especially important when you
|
||||
run vlmcsd on Windows or cygwin because UTF-8 is not the default encod-
|
||||
ing for most editors.
|
||||
|
||||
If you are specifying an optional HWID it follows the same syntax as in
|
||||
the -H option in vlmcsd(8) ecxept that you must not enclose a HWID in
|
||||
quotes even if it contains spaces.
|
||||
|
||||
|
||||
FILES
|
||||
vlmcsd.ini(5)
|
||||
|
||||
|
||||
AUTHOR
|
||||
vlmcsd(8) was written by crony12, Hotbird64 and vityan666. With contri-
|
||||
butions from DougQaid.
|
||||
|
||||
|
||||
CREDITS
|
||||
Thanks to abbodi1406, CODYQX4, deagles, eIcn, mikmik38, nosferati87,
|
||||
qad, Ratiborus, ...
|
||||
|
||||
|
||||
SEE ALSO
|
||||
vlmcsd(8), vlmcsd(7), vlmcs(1), vlmcsdmulti(1)
|
||||
|
||||
|
||||
|
||||
Hotbird64 October 2018 VLMCSD.INI(5)
|
@ -1,726 +0,0 @@
|
||||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Sat Oct 20 09:49:39 2018 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title>VLMCSD.INI</title>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1 align="center">VLMCSD.INI</h1>
|
||||
|
||||
<a href="#NAME">NAME</a><br>
|
||||
<a href="#SYNOPSIS">SYNOPSIS</a><br>
|
||||
<a href="#DESCRIPTION">DESCRIPTION</a><br>
|
||||
<a href="#SYNTAX">SYNTAX</a><br>
|
||||
<a href="#KEYWORDS">KEYWORDS</a><br>
|
||||
<a href="#VALID EPIDS">VALID EPIDS</a><br>
|
||||
<a href="#FILES">FILES</a><br>
|
||||
<a href="#AUTHOR">AUTHOR</a><br>
|
||||
<a href="#CREDITS">CREDITS</a><br>
|
||||
<a href="#SEE ALSO">SEE ALSO</a><br>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<h2>NAME
|
||||
<a name="NAME"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>vlmcsd.ini</b>
|
||||
- vlmcsd KMS emulator configuration file</p>
|
||||
|
||||
<h2>SYNOPSIS
|
||||
<a name="SYNOPSIS"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>vlmcsd.ini</b></p>
|
||||
|
||||
<h2>DESCRIPTION
|
||||
<a name="DESCRIPTION"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>vlmcsd.ini</b>
|
||||
(or simply called the "ini file") is a
|
||||
configuration file for <b>vlmcsd</b>(8). By default vlmcsd
|
||||
does not use a configuration file. It is completely optional
|
||||
and for advanced users only. You must use the <b>-i</b>
|
||||
option on the vlmcsd command line to use an ini file. There
|
||||
is no default name or default location for the ini file.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">Everything,
|
||||
that can be configured in the ini file, may also be
|
||||
specified on the command line. Any configuration option
|
||||
specified on the command line takes precedence over the
|
||||
respective configuration line in the ini file.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>Benefits of
|
||||
a configuration file</b></p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">While you can
|
||||
use the configuration file to simply modify the default
|
||||
behavior of vlmcsd, it can also be used to change the
|
||||
configuration of vlmcsd after you sent a HUP
|
||||
<b>signal</b>(7). Whenever you send SIGHUP, the
|
||||
configuration file will be re-read. Any changes you made to
|
||||
the ini file will be reflected after vlmcsd received the
|
||||
hangup signal.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>Differences
|
||||
between command line and configuration file</b></p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">If you specify
|
||||
an illegal option or option argument on the command line,
|
||||
vlmcsd displays help and exits. If you specify an incorrect
|
||||
<i>keyword</i> or <i>argument</i> in the ini file, vlmcsd
|
||||
displays a warning with some information, ignores the
|
||||
respective line and continues. This is intentional and
|
||||
prevents vlmcsd from aborting after a SIGHUP if the
|
||||
configuration was modified incorrectly.</p>
|
||||
|
||||
<h2>SYNTAX
|
||||
<a name="SYNTAX"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">vlmcsd.ini is a
|
||||
UTF-8 encoded text file with each line being in the format
|
||||
<i>keyword</i> = <i>argument</i>. The <i>keyword</i> is not
|
||||
case-sensitive. The <i>argument</i> is treated literally. It
|
||||
is neither required nor allowed to enclose the
|
||||
<i>argument</i> in any form of quote characters except when
|
||||
quote characters are part of the argument itself. Whitespace
|
||||
characters are ignored only</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">- at the
|
||||
beginning of a line <br>
|
||||
- between the <i>keyword</i> and ’=’ <br>
|
||||
- between ’=’ and the <i>argument</i></p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">Lines, that
|
||||
start with ’#’ or ’;’ are treated as
|
||||
comments. Empty lines are ignored as well. If a
|
||||
<i>keyword</i> is repeated in another line, vlmcsd will use
|
||||
the <i>argument</i> of the last occurence of the
|
||||
<i>keyword</i>. An exception to this is the Listen
|
||||
<i>keyword</i> which can be specified multiple times and
|
||||
causes vlmcsd to listen on more than one IP address and/or
|
||||
port.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">Some
|
||||
<i>argument</i>s are binary arguments that need to be either
|
||||
TRUE or FALSE. You can use "Yes", "On"
|
||||
or "1" as an alias for TRUE and "No",
|
||||
"Off" or "0" as an alias for FALSE.
|
||||
Binary arguments are case-insensitive.</p>
|
||||
|
||||
<h2>KEYWORDS
|
||||
<a name="KEYWORDS"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">The following
|
||||
<i>keyword</i>s are defined (not all keywords may be
|
||||
available depending on the operating system and the options
|
||||
used when <b>vlmcsd</b>(8) was compiled):</p>
|
||||
|
||||
<table width="100%" border="0" rules="none" frame="void"
|
||||
cellspacing="0" cellpadding="0">
|
||||
<tr valign="top" align="left">
|
||||
<td width="11%"></td>
|
||||
<td width="9%">
|
||||
|
||||
|
||||
<p><b>Listen</b></p></td>
|
||||
<td width="2%"></td>
|
||||
<td width="78%">
|
||||
|
||||
|
||||
<p>This defines on what combinations of IP addresses and
|
||||
ports vlmcsd should listen. <b>Listen</b> can be specified
|
||||
more than once. The <i>argument</i> has the form
|
||||
<i>ipaddress</i>[:<i>port</i>]. If you omit the <i>port</i>,
|
||||
the default port of 1688 is used. If the <i>ipaddress</i>
|
||||
contains colons and a <i>port</i> is used, you must enclose
|
||||
the <i>ipaddress</i> in brackets. The default is to listen
|
||||
to 0.0.0.0:1688 and [::]:1688 which means listen to all IPv4
|
||||
and all IPv6 addresses. See the <b>-L</b> option in
|
||||
<b>vlmcsd</b>(8) for more info about the syntax. If you use
|
||||
<b>-L</b> or <b>-P</b> on the command line, all
|
||||
<b>Listen</b> keywords in the ini file will be ignored. The
|
||||
<b>Listen</b> keyword cannot be used if vlmcsd has been
|
||||
compiled to use Microsoft RPC (Windows and Cygwin only) or
|
||||
simple sockets.</p></td></tr>
|
||||
</table>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">Examples:</p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">Listen =
|
||||
192.168.1.123:1688 <br>
|
||||
Listen = 0.0.0.0:1234 <br>
|
||||
Listen = [fe80::1721:12ff:fe81:d36b%eth0]:1688</p>
|
||||
|
||||
<table width="100%" border="0" rules="none" frame="void"
|
||||
cellspacing="0" cellpadding="0">
|
||||
<tr valign="top" align="left">
|
||||
<td width="11%"></td>
|
||||
<td width="6%">
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>Port</b></p></td>
|
||||
<td width="5%"></td>
|
||||
<td width="78%">
|
||||
|
||||
|
||||
<p style="margin-top: 1em">Can only be used if vlmcsd has
|
||||
been compiled to use simple sockets or on Windows and Cygwin
|
||||
if <b>vlmcsd</b>(8) has been compiled to use Microsoft RPC.
|
||||
Otherwise you must use <b>Listen</b> instead. Causes vlmcsd
|
||||
to listen on that port instead of 1688.</p></td></tr>
|
||||
</table>
|
||||
|
||||
<p style="margin-left:11%;"><b>FreeBind</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Can be TRUE or FALSE. If TRUE,
|
||||
you can use the <b>Listen</b> keyword with IP addresses that
|
||||
are currently not defined on your system. <b>vlmcsd</b>(8)
|
||||
will start listening on these IP addresses as soon as they
|
||||
become available. This keyword is only available under Linux
|
||||
and FreeBSD because no other OS currently supports that
|
||||
feature. FreeBSD supports this only for IPv4 and requires
|
||||
the PRIV_NETINET_BINDANY privilege which is normally
|
||||
assigned to proccesses of the root user.</p>
|
||||
|
||||
|
||||
<p style="margin-left:11%;"><b>PublicIPProtectionLevel</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Set the level of protection
|
||||
against KMS activations from public IP addresses.</p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">0 = No
|
||||
protection (default) <br>
|
||||
1 = Listen on private IP addresses only (plus
|
||||
those specified by one or more <b>Listen</b> statements)
|
||||
<br>
|
||||
2 = Disconnect clients with public IP addresses
|
||||
without activating <br>
|
||||
3 = Combines 1 and 2</p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">For details on
|
||||
public IP protection levels see <b>vlmcsd</b>(8) command
|
||||
line option <b>-o</b>.</p>
|
||||
|
||||
<table width="100%" border="0" rules="none" frame="void"
|
||||
cellspacing="0" cellpadding="0">
|
||||
<tr valign="top" align="left">
|
||||
<td width="11%"></td>
|
||||
<td width="4%">
|
||||
|
||||
|
||||
<p><b>VPN</b></p></td>
|
||||
<td width="7%"></td>
|
||||
<td width="78%">
|
||||
|
||||
|
||||
<p>Has to be in the form
|
||||
<i>vpn-adapter-name</i>[=<i>ipv4-address</i>][/<i>cidr-mask</i>][:<i>dhcp-lease-duration</i>].</p> </td></tr>
|
||||
</table>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">Enables a
|
||||
compatible VPN adapter to create additional local IPv4
|
||||
addresses (like 127.0.0.1) that appear as remote IPv4
|
||||
addresses to the system. This allows product activation
|
||||
using a local instance of vlmcsd. This feature is only
|
||||
available in Windows and Cygwin builds of vlmcsd since it is
|
||||
not of any use on other operating systems. Compatible VPN
|
||||
adapters are Tap-windows version 8.2 or higher (from
|
||||
OpenVPN) and the TeamViewer VPN adapter. There is a special
|
||||
<i>vpn-adapter-name</i>. A single period (.) instructs
|
||||
vlmcsd to use the first available compatible VPN adapter.
|
||||
The <i>vpn-adapter-name</i> is <b>not</b> case-sensitive. If
|
||||
the <i>vpn-adapter-name</i> contains spaces (e.g. Ethernet
|
||||
3), do <b>not</b> enclose it in quotes.</p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">The default
|
||||
<i>ipv4-address</i> is 10.10.10.9 and the default
|
||||
<i>cidr-mask</i> is 30. If you are using the default values,
|
||||
your VPN adapter uses an IPv4 address of 10.10.10.9 and you
|
||||
can set your activation client to use the easy to remember
|
||||
address 10.10.10.10 (e.g. slmgr /skms 10.10.10.10 or cscript
|
||||
ospp.vbs /sethst:10.10.10.10).</p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">The
|
||||
<i>dhcp-lease-duration</i> is a number optionally followed
|
||||
by s, m, h, d or w to indicate seconds, minutes, hours, days
|
||||
or weeks. The default <i>dhcp-lease-duration</i> is 1d (one
|
||||
day). It is normally not required to change this value.</p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">It is advised
|
||||
not to manually configure your OpenVPN TAP or TeamViewer VPN
|
||||
adapter in "Network Connections". If you set the
|
||||
IPv4 configuration manually anyway, the IPv4 address and the
|
||||
subnet mask must match the <b>VPN=</b> directive. It is safe
|
||||
leave the IPv4 configuration to automatic (DHCP). vlmcsd
|
||||
will wait up to four seconds for the DHCP configuration to
|
||||
complete before binding to and listenin on any
|
||||
interfaces.</p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">You should be
|
||||
aware that only one program can use a VPN adapter at a time.
|
||||
If you use the TeamViewer VPN adapter for example, you will
|
||||
not be able to use the VPN feature of TeamViewer as long as
|
||||
vlmcsd is running. The same applies to OpenVPN TAP adapters
|
||||
that are in use by other programs (for example OpenVPN,
|
||||
QEMU, Ratiborus VM, aiccu, etc.). The best way to avoid
|
||||
conflicts is to install Tap-Windows from OpenVPN, cd to
|
||||
C:\Program Files\TAP-Windows\bin and run addtap.bat to
|
||||
install an additional TAP adapter. Go to "Network
|
||||
Connections" and rename the new adapter to
|
||||
"vlmcsd" and specify <b>VPN=vlmcsd</b> to use
|
||||
it.</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>ExitLevel</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Can be either 0 (the default)
|
||||
or 1. Controls under what circumstances vlmcsd will exit.
|
||||
Using the default of <b>0</b> vlmcsd stays active as long as
|
||||
it can perform some useful operations. If vlmcsd is run by
|
||||
any form of a watchdog, e.g. NT service manager (Windows),
|
||||
systemd (Linux) or launchd (Mac OS / iOS), it may be
|
||||
desirable to end vlmcsd and let the watchdog restart it.
|
||||
This is especially true if some pre-requisites are not yet
|
||||
met but will be some time later, e.g. network is not yet
|
||||
fully setup.</p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">By using
|
||||
<b>ExitLevel = 0</b> vlmcsd will</p>
|
||||
|
||||
<p style="margin-left:29%; margin-top: 1em">exit if none of
|
||||
the listening sockets specified with <b>-L</b> can be used.
|
||||
It continues if at least one socket can be setup for
|
||||
listening.</p>
|
||||
|
||||
<p style="margin-left:29%; margin-top: 1em">exit any TAP
|
||||
mirror thread (Windows version only) if there is an error
|
||||
condition while reading or writing from or to the VPN
|
||||
adapter but continue to work without utilizing a VPN
|
||||
adapter.</p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">By using
|
||||
<b>ExitLevel = 1</b> vlmcsd will</p>
|
||||
|
||||
<p style="margin-left:29%; margin-top: 1em">exit if not all
|
||||
listening sockets specified with <b>-L</b> can be used.</p>
|
||||
|
||||
<p style="margin-left:29%; margin-top: 1em">exit completely
|
||||
if there is a problem with a VPN adapter it is using. This
|
||||
may happen for instance if the VPN adapter has been disabled
|
||||
using "Control Panel - Network - Adapter Settings"
|
||||
while vlmcsd is using it.</p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">Please note
|
||||
that <b>ExitLevel = 1</b> is kind of a workaround option.
|
||||
While it may help under some circumstances, it is better to
|
||||
solve the problem at its origin, e.g. properly implementing
|
||||
dependencies in your startup script to ensure all network
|
||||
interfaces and the VPN adapter you will use are completely
|
||||
setup before you start vlmcsd.</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>UseNDR64</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Can be TRUE or FALSE. Specifies
|
||||
whether you want to use the NDR64 transfer syntax. See
|
||||
options <b>-n0</b> and <b>-n1</b> in <b>vlmcsd</b>(8). The
|
||||
default is TRUE.</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>UseBTFN</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Can be TRUE or FALSE. Specifies
|
||||
whether you want to use bind time feature negotiation in
|
||||
RPC. See options <b>-b0</b> and <b>-b1</b> in
|
||||
<b>vlmcsd</b>(8). The default is TRUE.</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>RandomizationLevel</b></p>
|
||||
|
||||
<p style="margin-left:22%;">The <i>argument</i> must 0, 1
|
||||
or 2. This specifies the ePID randomization level. See
|
||||
options <b>-r0</b>, <b>-r1</b> and <b>-r2</b> in
|
||||
<b>vlmcsd</b>(8). The default randomization level is 1. A
|
||||
<b>RandomizationLevel</b> of 2 is not recommended and should
|
||||
be treated as a debugging level.</p>
|
||||
|
||||
<table width="100%" border="0" rules="none" frame="void"
|
||||
cellspacing="0" cellpadding="0">
|
||||
<tr valign="top" align="left">
|
||||
<td width="11%"></td>
|
||||
<td width="6%">
|
||||
|
||||
|
||||
<p><b>LCID</b></p></td>
|
||||
<td width="5%"></td>
|
||||
<td width="78%">
|
||||
|
||||
|
||||
<p>Use a specific culture id (LCID) even if the ePID is
|
||||
randomized. The <i>argument</i> must be a number between 1
|
||||
and 32767. While any number in that range is valid, you
|
||||
should use an offcial LCID. A list of assigned LCIDs can be
|
||||
found at
|
||||
http://msdn.microsoft.com/en-us/goglobal/bb964664.aspx. On
|
||||
the command line you control this setting with option
|
||||
<b>-C</b>.</p> </td></tr>
|
||||
</table>
|
||||
|
||||
<p style="margin-left:11%;"><b>HostBuild</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Use a specific host build
|
||||
number in the ePID even if it is randomized. The
|
||||
<i>argument</i> must be a number between 1 and 65535. While
|
||||
you can use any number you should only use build numbers
|
||||
that a released build numbers of Windows Servers, e.g. 17763
|
||||
for Windows Server 2019.</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>MaxWorkers</b></p>
|
||||
|
||||
<p style="margin-left:22%;">The <i>argument</i> specifies
|
||||
the maximum number of worker processes or threads that will
|
||||
be used to serve activation requests concurrently. This is
|
||||
the same as specifying <b>-m</b> on the command line.
|
||||
Minimum is 1. The maximum is platform specific and is at
|
||||
least 32767 but is likely to be greater on most systems. The
|
||||
default is no limit.</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>ConnectionTimeout</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Used to control when the vlmcsd
|
||||
disconnects idle TPC connections. The default is 30 seconds.
|
||||
This is the same setting as <b>-t</b> on the command
|
||||
line.</p>
|
||||
|
||||
|
||||
<p style="margin-left:11%;"><b>DisconnectClientsImmediately</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Set this to TRUE to disconnect
|
||||
a client after it got an activation response regardless
|
||||
whether a timeout has occured or not. The default is FALSE.
|
||||
Setting this to TRUE is non-standard behavior. Use only if
|
||||
you are experiencing DoS or DDoS attacks. On the command
|
||||
line you control this behavior with options <b>-d</b> and
|
||||
<b>-k</b>.</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>PidFile</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Write a pid file. The
|
||||
<i>argument</i> is the full pathname of a pid file. The pid
|
||||
file contains is single line containing the process id of
|
||||
the vlmcsd process. It can be used to stop (SIGTERM) or
|
||||
restart (SIGHUP) vlmcsd. This directive can be overriden
|
||||
using <b>-p</b> on the command line.</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>LogFile</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Write a log file. The
|
||||
<i>argument</i> is the full pathname of a log file. On a
|
||||
unixoid OS and with Cygwin you can use the special filename
|
||||
’syslog’ to log to the syslog facility. This is
|
||||
the same as specifying <b>-l</b> on the command line.</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>KmsData</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Use a KMS data file. The
|
||||
<i>argument</i> is the full pathname of a KMS data file. By
|
||||
default vlmcsd only contains the minimum product data that
|
||||
is required to perform all operations correctly. You may use
|
||||
a more complete KMS data file that contains all detailed
|
||||
product names. This is especially useful if you are logging
|
||||
KMS requests. If you don’t log, there is no need to
|
||||
load an external KMS data file.</p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">You may use
|
||||
<b>KmsData = -</b> to prevent the default KMS data
|
||||
file to be loaded.</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>LogDateAndTime</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Can be TRUE or FALSE. The
|
||||
default is TRUE. If set to FALSE, logging output does not
|
||||
include date and time. This is useful if you log to
|
||||
<b>stdout</b>(3) which is redirected to another logging
|
||||
mechanism that already includes date and time in its output,
|
||||
for instance <b>systemd-journald</b>(8). If you log to
|
||||
<b>syslog</b>(3), <b>LogDateAndTime</b> is ignored and date
|
||||
and time will never be included in the output sent to
|
||||
<b>syslog</b>(3). Using the command line you control this
|
||||
setting with options <b>-T0</b> and <b>-T1</b>.</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>LogVerbose</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Set this to either TRUE or
|
||||
FALSE. The default is FALSE. If set to TRUE, more details of
|
||||
each activation will be logged. You use <b>-v</b> and
|
||||
<b>-q</b> in the command line to control this setting.
|
||||
<b>LogVerbose</b> has an effect only if you specify a log
|
||||
file or redirect logging to <b>stdout</b>(3).</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>WhitelistingLevel</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Can be 0, 1, 2 or 3. The
|
||||
default is 0. Sets the whitelisting level to determine which
|
||||
products vlmcsd activates or refuses.</p>
|
||||
|
||||
<p style="margin-left:29%; margin-top: 1em"><b>0</b>:
|
||||
activate all products with an unknown, retail or
|
||||
beta/preview KMS ID. <b><br>
|
||||
1</b>: activate products with a retail or beta/preview KMS
|
||||
ID but refuse to activate products with an unknown KMS ID.
|
||||
<b><br>
|
||||
2</b>: activate products with an unknown KMS ID but refuse
|
||||
products with a retail or beta/preview KMS ID. <b><br>
|
||||
3</b>: activate only products with a known volume license
|
||||
RTM KMS ID and refuse all others.</p>
|
||||
|
||||
<table width="100%" border="0" rules="none" frame="void"
|
||||
cellspacing="0" cellpadding="0">
|
||||
<tr valign="top" align="left">
|
||||
<td width="22%"></td>
|
||||
<td width="78%">
|
||||
|
||||
|
||||
<p>The SKU ID is not checked. Like a genuine KMS server
|
||||
vlmcsd activates a product that has a random or unknown SKU
|
||||
ID. If you select <b>1</b> or <b>3</b>, vlmcsd also checks
|
||||
the Application ID for correctness. If Microsoft introduces
|
||||
a new KMS ID for a new product, you cannot activate it if
|
||||
you used <b>1</b> or <b>3</b> until a new version of vlmcsd
|
||||
is available.</p></td></tr>
|
||||
</table>
|
||||
|
||||
<p style="margin-left:11%;"><b>CheckClientTime</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Can be TRUE or FALSE. The
|
||||
default is FALSE. If you set this to TRUE <b>vlmcsd</b>(8)
|
||||
checks if the client time differs no more than four hours
|
||||
from the system time. This is useful to prevent emulator
|
||||
detection. A client that tries to detect an emulator could
|
||||
simply send two subsequent request with two time stamps that
|
||||
differ more than four hours from each other. If both
|
||||
requests succeed, the server is an emulator. If you set this
|
||||
to TRUE on a system with no reliable time source,
|
||||
activations will fail. It is ok to set the correct system
|
||||
time after you started <b>vlmcsd</b>(8).</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>MaintainClients</b></p>
|
||||
|
||||
<p style="margin-left:22%;">Can be TRUE or FALSE (the
|
||||
default). Disables (FALSE) or enables (TRUE) maintaining a
|
||||
list of client machine IDs (CMIDs). TRUE is useful to
|
||||
prevent emulator detection. By maintaing a CMID list,
|
||||
<b>vlmcsd</b>(8) reports current active clients exactly like
|
||||
a genuine KMS emulator. This includes bug compatibility to
|
||||
the extent that you can permanently kill a genuine KMS
|
||||
emulator by sending an "overcharge request" with a
|
||||
required client count of 376 or more and then request
|
||||
activation for 671 clients. <b>vlmcsd</b>(8) can be reset
|
||||
from this condition by restarting it. If FALSE is used,
|
||||
<b>vlmcsd</b>(8) reports current active clients as good as
|
||||
possible. If no client sends an "overcharge
|
||||
request", it is not possible to detect <b>vlmcsd</b>(8)
|
||||
as an emulator with
|
||||
<b>MaintainClients </b>= FALSE. Maintaining
|
||||
clients requires the allocation of a buffer that is about 50
|
||||
kB in size. On hardware with few memory resources use it
|
||||
only if you really need it.</p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em">If you start
|
||||
<b>vlmcsd</b>(8) from an internet superserver, this setting
|
||||
cannot be used. Since <b>vlmcsd</b>(8) exits after each
|
||||
activation, it cannot maintain any state in memory.</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>StartEmpty</b></p>
|
||||
|
||||
<p style="margin-left:22%;">This setting is ignored if you
|
||||
do not also specify <b>MaintainClients </b>= TRUE.
|
||||
If you specify FALSE (the default), <b>vlmcsd</b>(8) starts
|
||||
up as a fully "charged" KMS server. Clients
|
||||
activate immediately. <b>StartEmpty </b>= TRUE
|
||||
lets you start up <b>vlmcsd</b>(8) with an empty CMID list.
|
||||
Activation will start when the required minimum clients (25
|
||||
for Windows Client OSses, 5 for Windows Server OSses and
|
||||
Office) have registered with the KMS server. As long as the
|
||||
minimum client count has not been reached, clients end up in
|
||||
HRESULT 0xC004F038 "The count reported by your Key
|
||||
Management Service (KMS) is insufficient. Please contact
|
||||
your system administrator". You may use <b>vlmcs</b>(1)
|
||||
or another KMS client emulator to "charge"
|
||||
<b>vlmcsd</b>(8). Setting this parameter to TRUE does not
|
||||
improve emulator detection prevention. It’s primary
|
||||
purpose is to help developers of KMS clients to test
|
||||
"charging" a KMS server.</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>ActivationInterval</b></p>
|
||||
|
||||
<p style="margin-left:22%;">This is the same as specifying
|
||||
<b>-A</b> on the command line. See <b>vlmcsd</b>(8) for
|
||||
details. The default is 2 hours. Example:
|
||||
ActivationInterval = 1h</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>RenewalInterval</b></p>
|
||||
|
||||
<p style="margin-left:22%;">This is the same as specifying
|
||||
<b>-R</b> on the command line. See <b>vlmcsd</b>(8) for
|
||||
details. The default is 7 days. Example: RenewalInterval =
|
||||
3d. Please note that the KMS client decides itself when to
|
||||
renew activation. Even though vlmcsd sends the renewal
|
||||
interval you specify, it is no more than some kind of
|
||||
recommendation to the client. Older KMS clients did follow
|
||||
the recommendation from a KMS server or emulator. Newer
|
||||
clients do not.</p>
|
||||
|
||||
<table width="100%" border="0" rules="none" frame="void"
|
||||
cellspacing="0" cellpadding="0">
|
||||
<tr valign="top" align="left">
|
||||
<td width="11%"></td>
|
||||
<td width="7%">
|
||||
|
||||
|
||||
<p><b>User</b></p></td>
|
||||
<td width="4%"></td>
|
||||
<td width="78%">
|
||||
|
||||
|
||||
<p>Run vlmcsd as another, preferrably less privileged,
|
||||
user. The <i>argument</i> can be a user name or a numeric
|
||||
user id. You must have the required privileges (capabilities
|
||||
on Linux) to change the security context of a process
|
||||
without providing any credentials (a password in most
|
||||
cases). On most unixoid OSses ’root’ is the only
|
||||
user who has these privileges in the default configuration.
|
||||
This setting is not available in the native Windows version
|
||||
of vlmcsd. See <b>-u</b> in <b>vlmcsd</b>(8). This setting
|
||||
cannot be changed on the fly by sending SIGHUP to
|
||||
vlmcsd.</p> </td></tr>
|
||||
<tr valign="top" align="left">
|
||||
<td width="11%"></td>
|
||||
<td width="7%">
|
||||
|
||||
|
||||
<p><b>Group</b></p></td>
|
||||
<td width="4%"></td>
|
||||
<td width="78%">
|
||||
|
||||
|
||||
<p>Run vlmcsd as another, preferrably less privileged,
|
||||
group. The <i>argument</i> can be a group name or a numeric
|
||||
group id. You must have the required privileges
|
||||
(capabilities on Linux) to change the security context of a
|
||||
process without providing any credentials (a password in
|
||||
most cases). On most unixoid OSses ’root’ is the
|
||||
only user who has these privileges in the default
|
||||
configuration. This setting is not available in the native
|
||||
Windows version of vlmcsd. See <b>-g</b> in
|
||||
<b>vlmcsd</b>(8). This setting cannot be changed on the fly
|
||||
by sending SIGHUP to vlmcsd.</p></td></tr>
|
||||
</table>
|
||||
|
||||
<p style="margin-left:11%;"><b><csvlk-name></b></p>
|
||||
|
||||
<p style="margin-left:22%;">The <i>argument</i> has the
|
||||
form <i>ePID</i> [ / <i>HwId</i> ]. Always use <i>ePID</i>
|
||||
and <i>HwId</i> for activations with
|
||||
<b><csvlk-name></b>. If specified,
|
||||
<b>RandomizationLevel</b> for the <b><csvlk-name></b>
|
||||
will be ignored. With the default vlmcsd.kmd database you
|
||||
can use the following <b><csvlk-name></b>s: Windows,
|
||||
Office2010, Office2013, Office2016, Office2019 and
|
||||
WinChinaGov. While vlmcsd is compatible with older
|
||||
databases, you must use at least database version 1.6 for
|
||||
this feature to work.</p>
|
||||
|
||||
<h2>VALID EPIDS
|
||||
<a name="VALID EPIDS"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">The ePID is
|
||||
currently a comment only. You can specify any string up to
|
||||
63 bytes. In Windows 7 Microsoft has blacklisted few ( <
|
||||
10 ) ePIDs that were used in KMSv5 versions of the
|
||||
"Ratiborus Virtual Machine". Microsoft has given
|
||||
up on blacklisting when KMS emulators appeared in the
|
||||
wild.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">Even if you can
|
||||
use "Activated by cool hacker guys" as an ePID,
|
||||
you may wish to use ePIDs that cannot be detected as non-MS
|
||||
ePIDs. If you don’t know how these "valid"
|
||||
ePIDs look like exactly, do not use GUIDS in vlmcsd.ini.
|
||||
vlmcsd provides internal mechanisms to generate valid
|
||||
ePIDs.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">If you use
|
||||
non-ASCII characters in your ePID (you shouldn’t do
|
||||
anyway), these must be in UTF-8 format. This is especially
|
||||
important when you run vlmcsd on Windows or cygwin because
|
||||
UTF-8 is not the default encoding for most editors.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">If you are
|
||||
specifying an optional HWID it follows the same syntax as in
|
||||
the <b>-H</b> option in <b>vlmcsd</b>(8) ecxept that you
|
||||
must not enclose a HWID in quotes even if it contains
|
||||
spaces.</p>
|
||||
|
||||
<h2>FILES
|
||||
<a name="FILES"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>vlmcsd.ini</b>(5)</p>
|
||||
|
||||
<h2>AUTHOR
|
||||
<a name="AUTHOR"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>vlmcsd</b>(8)
|
||||
was written by crony12, Hotbird64 and vityan666. With
|
||||
contributions from DougQaid.</p>
|
||||
|
||||
<h2>CREDITS
|
||||
<a name="CREDITS"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">Thanks to
|
||||
abbodi1406, CODYQX4, deagles, eIcn, mikmik38, nosferati87,
|
||||
qad, Ratiborus, ...</p>
|
||||
|
||||
<h2>SEE ALSO
|
||||
<a name="SEE ALSO"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>vlmcsd</b>(8),
|
||||
<b>vlmcsd</b>(7), <b>vlmcs</b>(1), <b>vlmcsdmulti</b>(1)</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
Binary file not shown.
@ -1,486 +0,0 @@
|
||||
VLMCSD.INI(5) KMS Activation Manual VLMCSD.INI(5)
|
||||
|
||||
|
||||
|
||||
NAME
|
||||
vlmcsd.ini - vlmcsd KMS emulator configuration file
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
vlmcsd.ini
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
vlmcsd.ini (or simply called the "ini file") is a configuration file
|
||||
for vlmcsd(8). By default vlmcsd does not use a configuration file. It
|
||||
is completely optional and for advanced users only. You must use the -i
|
||||
option on the vlmcsd command line to use an ini file. There is no
|
||||
default name or default location for the ini file.
|
||||
|
||||
Everything, that can be configured in the ini file, may also be speci-
|
||||
fied on the command line. Any configuration option specified on the
|
||||
command line takes precedence over the respective configuration line in
|
||||
the ini file.
|
||||
|
||||
Benefits of a configuration file
|
||||
|
||||
While you can use the configuration file to simply modify the default
|
||||
behavior of vlmcsd, it can also be used to change the configuration of
|
||||
vlmcsd after you sent a HUP signal(7). Whenever you send SIGHUP, the
|
||||
configuration file will be re-read. Any changes you made to the ini
|
||||
file will be reflected after vlmcsd received the hangup signal.
|
||||
|
||||
Differences between command line and configuration file
|
||||
|
||||
If you specify an illegal option or option argument on the command
|
||||
line, vlmcsd displays help and exits. If you specify an incorrect key-
|
||||
word or argument in the ini file, vlmcsd displays a warning with some
|
||||
information, ignores the respective line and continues. This is inten-
|
||||
tional and prevents vlmcsd from aborting after a SIGHUP if the configu-
|
||||
ration was modified incorrectly.
|
||||
|
||||
|
||||
SYNTAX
|
||||
vlmcsd.ini is a UTF-8 encoded text file with each line being in the
|
||||
format keyword = argument. The keyword is not case-sensitive. The argu-
|
||||
ment is treated literally. It is neither required nor allowed to
|
||||
enclose the argument in any form of quote characters except when quote
|
||||
characters are part of the argument itself. Whitespace characters are
|
||||
ignored only
|
||||
|
||||
- at the beginning of a line
|
||||
- between the keyword and '='
|
||||
- between '=' and the argument
|
||||
|
||||
Lines, that start with '#' or ';' are treated as comments. Empty lines
|
||||
are ignored as well. If a keyword is repeated in another line, vlmcsd
|
||||
will use the argument of the last occurence of the keyword. An excep-
|
||||
tion to this is the Listen keyword which can be specified multiple
|
||||
times and causes vlmcsd to listen on more than one IP address and/or
|
||||
port.
|
||||
|
||||
Some arguments are binary arguments that need to be either TRUE or
|
||||
FALSE. You can use "Yes", "On" or "1" as an alias for TRUE and "No",
|
||||
"Off" or "0" as an alias for FALSE. Binary arguments are case-insensi-
|
||||
tive.
|
||||
|
||||
|
||||
KEYWORDS
|
||||
The following keywords are defined (not all keywords may be available
|
||||
depending on the operating system and the options used when vlmcsd(8)
|
||||
was compiled):
|
||||
|
||||
|
||||
Listen This defines on what combinations of IP addresses and ports vlm-
|
||||
csd should listen. Listen can be specified more than once. The
|
||||
argument has the form ipaddress[:port]. If you omit the port,
|
||||
the default port of 1688 is used. If the ipaddress contains
|
||||
colons and a port is used, you must enclose the ipaddress in
|
||||
brackets. The default is to listen to 0.0.0.0:1688 and [::]:1688
|
||||
which means listen to all IPv4 and all IPv6 addresses. See the
|
||||
-L option in vlmcsd(8) for more info about the syntax. If you
|
||||
use -L or -P on the command line, all Listen keywords in the ini
|
||||
file will be ignored. The Listen keyword cannot be used if vlm-
|
||||
csd has been compiled to use Microsoft RPC (Windows and Cygwin
|
||||
only) or simple sockets.
|
||||
|
||||
Examples:
|
||||
|
||||
Listen = 192.168.1.123:1688
|
||||
Listen = 0.0.0.0:1234
|
||||
Listen = [fe80::1721:12ff:fe81:d36b%eth0]:1688
|
||||
|
||||
|
||||
Port Can only be used if vlmcsd has been compiled to use simple sock-
|
||||
ets or on Windows and Cygwin if vlmcsd(8) has been compiled to
|
||||
use Microsoft RPC. Otherwise you must use Listen instead. Causes
|
||||
vlmcsd to listen on that port instead of 1688.
|
||||
|
||||
|
||||
FreeBind
|
||||
Can be TRUE or FALSE. If TRUE, you can use the Listen keyword
|
||||
with IP addresses that are currently not defined on your system.
|
||||
vlmcsd(8) will start listening on these IP addresses as soon as
|
||||
they become available. This keyword is only available under
|
||||
Linux and FreeBSD because no other OS currently supports that
|
||||
feature. FreeBSD supports this only for IPv4 and requires the
|
||||
PRIV_NETINET_BINDANY privilege which is normally assigned to
|
||||
proccesses of the root user.
|
||||
|
||||
|
||||
PublicIPProtectionLevel
|
||||
Set the level of protection against KMS activations from public
|
||||
IP addresses.
|
||||
|
||||
0 = No protection (default)
|
||||
1 = Listen on private IP addresses only (plus those specified by
|
||||
one or more Listen statements)
|
||||
2 = Disconnect clients with public IP addresses without activat-
|
||||
ing
|
||||
3 = Combines 1 and 2
|
||||
|
||||
For details on public IP protection levels see vlmcsd(8) command
|
||||
line option -o.
|
||||
|
||||
|
||||
VPN Has to be in the form vpn-adapter-name[=ipv4-address][/cidr-
|
||||
mask][:dhcp-lease-duration].
|
||||
|
||||
Enables a compatible VPN adapter to create additional local IPv4
|
||||
addresses (like 127.0.0.1) that appear as remote IPv4 addresses
|
||||
to the system. This allows product activation using a local
|
||||
instance of vlmcsd. This feature is only available in Windows
|
||||
and Cygwin builds of vlmcsd since it is not of any use on other
|
||||
operating systems. Compatible VPN adapters are Tap-windows ver-
|
||||
sion 8.2 or higher (from OpenVPN) and the TeamViewer VPN
|
||||
adapter. There is a special vpn-adapter-name. A single period
|
||||
(.) instructs vlmcsd to use the first available compatible VPN
|
||||
adapter. The vpn-adapter-name is not case-sensitive. If the vpn-
|
||||
adapter-name contains spaces (e.g. Ethernet 3), do not enclose
|
||||
it in quotes.
|
||||
|
||||
The default ipv4-address is 10.10.10.9 and the default cidr-mask
|
||||
is 30. If you are using the default values, your VPN adapter
|
||||
uses an IPv4 address of 10.10.10.9 and you can set your activa-
|
||||
tion client to use the easy to remember address 10.10.10.10
|
||||
(e.g. slmgr /skms 10.10.10.10 or cscript ospp.vbs
|
||||
/sethst:10.10.10.10).
|
||||
|
||||
The dhcp-lease-duration is a number optionally followed by s, m,
|
||||
h, d or w to indicate seconds, minutes, hours, days or weeks.
|
||||
The default dhcp-lease-duration is 1d (one day). It is normally
|
||||
not required to change this value.
|
||||
|
||||
It is advised not to manually configure your OpenVPN TAP or
|
||||
TeamViewer VPN adapter in "Network Connections". If you set the
|
||||
IPv4 configuration manually anyway, the IPv4 address and the
|
||||
subnet mask must match the VPN= directive. It is safe leave the
|
||||
IPv4 configuration to automatic (DHCP). vlmcsd will wait up to
|
||||
four seconds for the DHCP configuration to complete before bind-
|
||||
ing to and listenin on any interfaces.
|
||||
|
||||
You should be aware that only one program can use a VPN adapter
|
||||
at a time. If you use the TeamViewer VPN adapter for example,
|
||||
you will not be able to use the VPN feature of TeamViewer as
|
||||
long as vlmcsd is running. The same applies to OpenVPN TAP
|
||||
adapters that are in use by other programs (for example OpenVPN,
|
||||
QEMU, Ratiborus VM, aiccu, etc.). The best way to avoid con-
|
||||
flicts is to install Tap-Windows from OpenVPN, cd to C:\Program
|
||||
Files\TAP-Windows\bin and run addtap.bat to install an addi-
|
||||
tional TAP adapter. Go to "Network Connections" and rename the
|
||||
new adapter to "vlmcsd" and specify VPN=vlmcsd to use it.
|
||||
|
||||
|
||||
ExitLevel
|
||||
Can be either 0 (the default) or 1. Controls under what circum-
|
||||
stances vlmcsd will exit. Using the default of 0 vlmcsd stays
|
||||
active as long as it can perform some useful operations. If vlm-
|
||||
csd is run by any form of a watchdog, e.g. NT service manager
|
||||
(Windows), systemd (Linux) or launchd (Mac OS / iOS), it may be
|
||||
desirable to end vlmcsd and let the watchdog restart it. This is
|
||||
especially true if some pre-requisites are not yet met but will
|
||||
be some time later, e.g. network is not yet fully setup.
|
||||
|
||||
By using ExitLevel = 0 vlmcsd will
|
||||
|
||||
exit if none of the listening sockets specified with -L can
|
||||
be used. It continues if at least one socket can be setup
|
||||
for listening.
|
||||
|
||||
exit any TAP mirror thread (Windows version only) if there
|
||||
is an error condition while reading or writing from or to
|
||||
the VPN adapter but continue to work without utilizing a
|
||||
VPN adapter.
|
||||
|
||||
By using ExitLevel = 1 vlmcsd will
|
||||
|
||||
exit if not all listening sockets specified with -L can be
|
||||
used.
|
||||
|
||||
exit completely if there is a problem with a VPN adapter it
|
||||
is using. This may happen for instance if the VPN adapter
|
||||
has been disabled using "Control Panel - Network - Adapter
|
||||
Settings" while vlmcsd is using it.
|
||||
|
||||
|
||||
Please note that ExitLevel = 1 is kind of a workaround option.
|
||||
While it may help under some circumstances, it is better to
|
||||
solve the problem at its origin, e.g. properly implementing
|
||||
dependencies in your startup script to ensure all network inter-
|
||||
faces and the VPN adapter you will use are completely setup
|
||||
before you start vlmcsd.
|
||||
|
||||
|
||||
UseNDR64
|
||||
Can be TRUE or FALSE. Specifies whether you want to use the
|
||||
NDR64 transfer syntax. See options -n0 and -n1 in vlmcsd(8). The
|
||||
default is TRUE.
|
||||
|
||||
|
||||
UseBTFN
|
||||
Can be TRUE or FALSE. Specifies whether you want to use bind
|
||||
time feature negotiation in RPC. See options -b0 and -b1 in vlm-
|
||||
csd(8). The default is TRUE.
|
||||
|
||||
|
||||
RandomizationLevel
|
||||
The argument must 0, 1 or 2. This specifies the ePID randomiza-
|
||||
tion level. See options -r0, -r1 and -r2 in vlmcsd(8). The
|
||||
default randomization level is 1. A RandomizationLevel of 2 is
|
||||
not recommended and should be treated as a debugging level.
|
||||
|
||||
|
||||
LCID Use a specific culture id (LCID) even if the ePID is randomized.
|
||||
The argument must be a number between 1 and 32767. While any
|
||||
number in that range is valid, you should use an offcial LCID. A
|
||||
list of assigned LCIDs can be found at http://msdn.micro-
|
||||
soft.com/en-us/goglobal/bb964664.aspx. On the command line you
|
||||
control this setting with option -C.
|
||||
|
||||
|
||||
HostBuild
|
||||
Use a specific host build number in the ePID even if it is ran-
|
||||
domized. The argument must be a number between 1 and 65535.
|
||||
While you can use any number you should only use build numbers
|
||||
that a released build numbers of Windows Servers, e.g. 17763 for
|
||||
Windows Server 2019.
|
||||
|
||||
|
||||
MaxWorkers
|
||||
The argument specifies the maximum number of worker processes or
|
||||
threads that will be used to serve activation requests concur-
|
||||
rently. This is the same as specifying -m on the command line.
|
||||
Minimum is 1. The maximum is platform specific and is at least
|
||||
32767 but is likely to be greater on most systems. The default
|
||||
is no limit.
|
||||
|
||||
|
||||
ConnectionTimeout
|
||||
Used to control when the vlmcsd disconnects idle TPC connec-
|
||||
tions. The default is 30 seconds. This is the same setting as -t
|
||||
on the command line.
|
||||
|
||||
|
||||
DisconnectClientsImmediately
|
||||
Set this to TRUE to disconnect a client after it got an activa-
|
||||
tion response regardless whether a timeout has occured or not.
|
||||
The default is FALSE. Setting this to TRUE is non-standard
|
||||
behavior. Use only if you are experiencing DoS or DDoS attacks.
|
||||
On the command line you control this behavior with options -d
|
||||
and -k.
|
||||
|
||||
|
||||
PidFile
|
||||
Write a pid file. The argument is the full pathname of a pid
|
||||
file. The pid file contains is single line containing the
|
||||
process id of the vlmcsd process. It can be used to stop
|
||||
(SIGTERM) or restart (SIGHUP) vlmcsd. This directive can be
|
||||
overriden using -p on the command line.
|
||||
|
||||
|
||||
LogFile
|
||||
Write a log file. The argument is the full pathname of a log
|
||||
file. On a unixoid OS and with Cygwin you can use the special
|
||||
filename 'syslog' to log to the syslog facility. This is the
|
||||
same as specifying -l on the command line.
|
||||
|
||||
|
||||
KmsData
|
||||
Use a KMS data file. The argument is the full pathname of a KMS
|
||||
data file. By default vlmcsd only contains the minimum product
|
||||
data that is required to perform all operations correctly. You
|
||||
may use a more complete KMS data file that contains all detailed
|
||||
product names. This is especially useful if you are logging KMS
|
||||
requests. If you don't log, there is no need to load an external
|
||||
KMS data file.
|
||||
|
||||
You may use KmsData = - to prevent the default KMS data file to
|
||||
be loaded.
|
||||
|
||||
|
||||
LogDateAndTime
|
||||
Can be TRUE or FALSE. The default is TRUE. If set to FALSE, log-
|
||||
ging output does not include date and time. This is useful if
|
||||
you log to stdout(3) which is redirected to another logging
|
||||
mechanism that already includes date and time in its output, for
|
||||
instance systemd-journald(8). If you log to syslog(3), LogDate-
|
||||
AndTime is ignored and date and time will never be included in
|
||||
the output sent to syslog(3). Using the command line you control
|
||||
this setting with options -T0 and -T1.
|
||||
|
||||
|
||||
LogVerbose
|
||||
Set this to either TRUE or FALSE. The default is FALSE. If set
|
||||
to TRUE, more details of each activation will be logged. You use
|
||||
-v and -q in the command line to control this setting. LogVer-
|
||||
bose has an effect only if you specify a log file or redirect
|
||||
logging to stdout(3).
|
||||
|
||||
|
||||
WhitelistingLevel
|
||||
Can be 0, 1, 2 or 3. The default is 0. Sets the whitelisting
|
||||
level to determine which products vlmcsd activates or refuses.
|
||||
|
||||
0: activate all products with an unknown, retail or
|
||||
beta/preview KMS ID.
|
||||
1: activate products with a retail or beta/preview KMS ID
|
||||
but refuse to activate products with an unknown KMS ID.
|
||||
2: activate products with an unknown KMS ID but refuse
|
||||
products with a retail or beta/preview KMS ID.
|
||||
3: activate only products with a known volume license RTM
|
||||
KMS ID and refuse all others.
|
||||
|
||||
|
||||
The SKU ID is not checked. Like a genuine KMS server vlmcsd
|
||||
activates a product that has a random or unknown SKU ID. If you
|
||||
select 1 or 3, vlmcsd also checks the Application ID for cor-
|
||||
rectness. If Microsoft introduces a new KMS ID for a new prod-
|
||||
uct, you cannot activate it if you used 1 or 3 until a new ver-
|
||||
sion of vlmcsd is available.
|
||||
|
||||
|
||||
CheckClientTime
|
||||
Can be TRUE or FALSE. The default is FALSE. If you set this to
|
||||
TRUE vlmcsd(8) checks if the client time differs no more than
|
||||
four hours from the system time. This is useful to prevent emu-
|
||||
lator detection. A client that tries to detect an emulator could
|
||||
simply send two subsequent request with two time stamps that
|
||||
differ more than four hours from each other. If both requests
|
||||
succeed, the server is an emulator. If you set this to TRUE on a
|
||||
system with no reliable time source, activations will fail. It
|
||||
is ok to set the correct system time after you started vlm-
|
||||
csd(8).
|
||||
|
||||
|
||||
MaintainClients
|
||||
Can be TRUE or FALSE (the default). Disables (FALSE) or enables
|
||||
(TRUE) maintaining a list of client machine IDs (CMIDs). TRUE is
|
||||
useful to prevent emulator detection. By maintaing a CMID list,
|
||||
vlmcsd(8) reports current active clients exactly like a genuine
|
||||
KMS emulator. This includes bug compatibility to the extent that
|
||||
you can permanently kill a genuine KMS emulator by sending an
|
||||
"overcharge request" with a required client count of 376 or more
|
||||
and then request activation for 671 clients. vlmcsd(8) can be
|
||||
reset from this condition by restarting it. If FALSE is used,
|
||||
vlmcsd(8) reports current active clients as good as possible. If
|
||||
no client sends an "overcharge request", it is not possible to
|
||||
detect vlmcsd(8) as an emulator with MaintainClients = FALSE.
|
||||
Maintaining clients requires the allocation of a buffer that is
|
||||
about 50 kB in size. On hardware with few memory resources use
|
||||
it only if you really need it.
|
||||
|
||||
If you start vlmcsd(8) from an internet superserver, this set-
|
||||
ting cannot be used. Since vlmcsd(8) exits after each activa-
|
||||
tion, it cannot maintain any state in memory.
|
||||
|
||||
|
||||
StartEmpty
|
||||
This setting is ignored if you do not also specify Maintain-
|
||||
Clients = TRUE. If you specify FALSE (the default), vlmcsd(8)
|
||||
starts up as a fully "charged" KMS server. Clients activate
|
||||
immediately. StartEmpty = TRUE lets you start up vlmcsd(8) with
|
||||
an empty CMID list. Activation will start when the required min-
|
||||
imum clients (25 for Windows Client OSses, 5 for Windows Server
|
||||
OSses and Office) have registered with the KMS server. As long
|
||||
as the minimum client count has not been reached, clients end up
|
||||
in HRESULT 0xC004F038 "The count reported by your Key Management
|
||||
Service (KMS) is insufficient. Please contact your system admin-
|
||||
istrator". You may use vlmcs(1) or another KMS client emulator
|
||||
to "charge" vlmcsd(8). Setting this parameter to TRUE does not
|
||||
improve emulator detection prevention. It's primary purpose is
|
||||
to help developers of KMS clients to test "charging" a KMS
|
||||
server.
|
||||
|
||||
|
||||
ActivationInterval
|
||||
This is the same as specifying -A on the command line. See vlm-
|
||||
csd(8) for details. The default is 2 hours. Example: Activation-
|
||||
Interval = 1h
|
||||
|
||||
|
||||
RenewalInterval
|
||||
This is the same as specifying -R on the command line. See vlm-
|
||||
csd(8) for details. The default is 7 days. Example: RenewalIn-
|
||||
terval = 3d. Please note that the KMS client decides itself when
|
||||
to renew activation. Even though vlmcsd sends the renewal inter-
|
||||
val you specify, it is no more than some kind of recommendation
|
||||
to the client. Older KMS clients did follow the recommendation
|
||||
from a KMS server or emulator. Newer clients do not.
|
||||
|
||||
|
||||
User Run vlmcsd as another, preferrably less privileged, user. The
|
||||
argument can be a user name or a numeric user id. You must have
|
||||
the required privileges (capabilities on Linux) to change the
|
||||
security context of a process without providing any credentials
|
||||
(a password in most cases). On most unixoid OSses 'root' is the
|
||||
only user who has these privileges in the default configuration.
|
||||
This setting is not available in the native Windows version of
|
||||
vlmcsd. See -u in vlmcsd(8). This setting cannot be changed on
|
||||
the fly by sending SIGHUP to vlmcsd.
|
||||
|
||||
|
||||
Group Run vlmcsd as another, preferrably less privileged, group. The
|
||||
argument can be a group name or a numeric group id. You must
|
||||
have the required privileges (capabilities on Linux) to change
|
||||
the security context of a process without providing any creden-
|
||||
tials (a password in most cases). On most unixoid OSses 'root'
|
||||
is the only user who has these privileges in the default config-
|
||||
uration. This setting is not available in the native Windows
|
||||
version of vlmcsd. See -g in vlmcsd(8). This setting cannot be
|
||||
changed on the fly by sending SIGHUP to vlmcsd.
|
||||
|
||||
|
||||
<csvlk-name>
|
||||
The argument has the form ePID [ / HwId ]. Always use ePID and
|
||||
HwId for activations with <csvlk-name>. If specified, Randomiza-
|
||||
tionLevel for the <csvlk-name> will be ignored. With the default
|
||||
vlmcsd.kmd database you can use the following <csvlk-name>s:
|
||||
Windows, Office2010, Office2013, Office2016, Office2019 and
|
||||
WinChinaGov. While vlmcsd is compatible with older databases,
|
||||
you must use at least database version 1.6 for this feature to
|
||||
work.
|
||||
|
||||
|
||||
VALID EPIDS
|
||||
The ePID is currently a comment only. You can specify any string up to
|
||||
63 bytes. In Windows 7 Microsoft has blacklisted few ( < 10 ) ePIDs
|
||||
that were used in KMSv5 versions of the "Ratiborus Virtual Machine".
|
||||
Microsoft has given up on blacklisting when KMS emulators appeared in
|
||||
the wild.
|
||||
|
||||
Even if you can use "Activated by cool hacker guys" as an ePID, you may
|
||||
wish to use ePIDs that cannot be detected as non-MS ePIDs. If you don't
|
||||
know how these "valid" ePIDs look like exactly, do not use GUIDS in
|
||||
vlmcsd.ini. vlmcsd provides internal mechanisms to generate valid
|
||||
ePIDs.
|
||||
|
||||
If you use non-ASCII characters in your ePID (you shouldn't do anyway),
|
||||
these must be in UTF-8 format. This is especially important when you
|
||||
run vlmcsd on Windows or cygwin because UTF-8 is not the default encod-
|
||||
ing for most editors.
|
||||
|
||||
If you are specifying an optional HWID it follows the same syntax as in
|
||||
the -H option in vlmcsd(8) ecxept that you must not enclose a HWID in
|
||||
quotes even if it contains spaces.
|
||||
|
||||
|
||||
FILES
|
||||
vlmcsd.ini(5)
|
||||
|
||||
|
||||
AUTHOR
|
||||
vlmcsd(8) was written by crony12, Hotbird64 and vityan666. With contri-
|
||||
butions from DougQaid.
|
||||
|
||||
|
||||
CREDITS
|
||||
Thanks to abbodi1406, CODYQX4, deagles, eIcn, mikmik38, nosferati87,
|
||||
qad, Ratiborus, ...
|
||||
|
||||
|
||||
SEE ALSO
|
||||
vlmcsd(8), vlmcsd(7), vlmcs(1), vlmcsdmulti(1)
|
||||
|
||||
|
||||
|
||||
Hotbird64 October 2018 VLMCSD.INI(5)
|
@ -1,76 +0,0 @@
|
||||
VLMCSDMULTI(1) KMS Activation Manual VLMCSDMULTI(1)
|
||||
|
||||
|
||||
|
||||
NAME
|
||||
vlmcsdmulti - a multi-call binary containing vlmcs(1) and vlmcsd(8)
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
vlmcsdmulti vlmcs [ options ] [ hostname|ip-address[:port] ] [ options
|
||||
] | vlmcsd [ options ]
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
vlmcsdmulti is a multi-call binary that contains vlmcs(1) and vlmcsd(8)
|
||||
in a single binary. Since both programs share a lot of code and data,
|
||||
the combined binary is significantly smaller than the sum of both
|
||||
files.
|
||||
|
||||
vlmcsdmulti should not be called directly. Instead you may want to cre-
|
||||
ate symbolic links named vlmcs and vlmcsd which point to vlmcsdmulti.
|
||||
You then use these links to call the respective program. You may how-
|
||||
ever call vlmcsdmulti followed by a complete command line of either
|
||||
vlmcs(1) or vlmcsd(8).
|
||||
|
||||
Creating symbolic links in unixoid operating systems
|
||||
cd to the directory containing vlmcsdmulti and type
|
||||
|
||||
ln -s vlmcsdmulti vlmcsd
|
||||
ln -s vlmcsdmulti vlmcs
|
||||
|
||||
You may use a destination directory, e.g.
|
||||
|
||||
ln -s vlmcsdmulti /usr/local/sbin/vlmcsd
|
||||
ln -s vlmcsdmulti /usr/local/bin/vlmcs
|
||||
|
||||
Ensure that vlmcsdmulti has execute permissions. You can do that by
|
||||
typing "chmod 755 vlmcsdmulti". See chmod(1) for details.
|
||||
|
||||
Creating symbolic links in Windows (Vista and higher only)
|
||||
cd to the directory containing vlmcsdmulti and type
|
||||
|
||||
mklink vlmcsd.exe vlmcsdmulti.exe
|
||||
mklink vlmcs.exe vlmcsdmulti.exe
|
||||
|
||||
You may use a destination directory, e.g.
|
||||
|
||||
mklink C:\tools\vlmcsd.exe vlmcsdmulti.exe
|
||||
mklink C:\tools\vlmcs.exe vlmcsdmulti.exe
|
||||
|
||||
Memory considerations
|
||||
While you definitely save disk space by using vlmcsdmulti you will need
|
||||
more RAM when you run vlmcsdmulti as a daemon (KMS server) instead of
|
||||
vlmcsd. You should consider running vlmcsdmulti via an internet super-
|
||||
server like inetd(8) or xinetd(8).
|
||||
|
||||
|
||||
BUGS
|
||||
vlmcsdmulti has the same bugs as vlmcs(1) and vlmcsd(8).
|
||||
|
||||
|
||||
AUTHOR
|
||||
Written by Hotbird64
|
||||
|
||||
|
||||
CREDITS
|
||||
Thanks to CODYQX4, crony12, deagles, DougQaid, eIcn, mikmik38, nos-
|
||||
ferati87, qad, vityan666, ...
|
||||
|
||||
|
||||
SEE ALSO
|
||||
vlmcs(1), vlmcsd(8), vlmcsd(7)
|
||||
|
||||
|
||||
|
||||
Hotbird64 February 2015 VLMCSDMULTI(1)
|
@ -1,158 +0,0 @@
|
||||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!-- CreationDate: Sat Oct 20 09:49:39 2018 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title>VLMCSDMULTI</title>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1 align="center">VLMCSDMULTI</h1>
|
||||
|
||||
<a href="#NAME">NAME</a><br>
|
||||
<a href="#SYNOPSIS">SYNOPSIS</a><br>
|
||||
<a href="#DESCRIPTION">DESCRIPTION</a><br>
|
||||
<a href="#BUGS">BUGS</a><br>
|
||||
<a href="#AUTHOR">AUTHOR</a><br>
|
||||
<a href="#CREDITS">CREDITS</a><br>
|
||||
<a href="#SEE ALSO">SEE ALSO</a><br>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<h2>NAME
|
||||
<a name="NAME"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">vlmcsdmulti - a
|
||||
multi-call binary containing <b>vlmcs</b>(1) and
|
||||
<b>vlmcsd</b>(8)</p>
|
||||
|
||||
<h2>SYNOPSIS
|
||||
<a name="SYNOPSIS"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>vlmcsdmulti</b>
|
||||
vlmcs [ <i>options</i> ] [
|
||||
<i>hostname</i>|<i>ip-address</i>[:<i>port</i>] ] [
|
||||
<i>options</i> ] | vlmcsd [ <i>options</i> ]</p>
|
||||
|
||||
<h2>DESCRIPTION
|
||||
<a name="DESCRIPTION"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>vlmcsdmulti</b>
|
||||
is a multi-call binary that contains <b>vlmcs</b>(1) and
|
||||
<b>vlmcsd</b>(8) in a single binary. Since both programs
|
||||
share a lot of code and data, the combined binary is
|
||||
significantly smaller than the sum of both files.</p>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>vlmcsdmulti</b>
|
||||
should not be called directly. Instead you may want to
|
||||
create symbolic links named vlmcs and vlmcsd which point to
|
||||
<b>vlmcsdmulti</b>. You then use these links to call the
|
||||
respective program. You may however call <b>vlmcsdmulti</b>
|
||||
followed by a complete command line of either
|
||||
<b>vlmcs</b>(1) or <b>vlmcsd</b>(8).</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>Creating
|
||||
symbolic links in unixoid operating systems</b> <br>
|
||||
cd to the directory containing <b>vlmcsdmulti</b> and
|
||||
type</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">ln -s
|
||||
vlmcsdmulti vlmcsd <br>
|
||||
ln -s vlmcsdmulti vlmcs</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">You may use a
|
||||
destination directory, e.g.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">ln -s
|
||||
vlmcsdmulti /usr/local/sbin/vlmcsd <br>
|
||||
ln -s vlmcsdmulti /usr/local/bin/vlmcs</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">Ensure that
|
||||
<b>vlmcsdmulti</b> has execute permissions. You can do that
|
||||
by typing "chmod 755 vlmcsdmulti". See
|
||||
<b>chmod</b>(1) for details.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>Creating
|
||||
symbolic links in Windows (Vista and higher only)</b> <br>
|
||||
cd to the directory containing <b>vlmcsdmulti</b> and
|
||||
type</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">mklink
|
||||
vlmcsd.exe vlmcsdmulti.exe <br>
|
||||
mklink vlmcs.exe vlmcsdmulti.exe</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">You may use a
|
||||
destination directory, e.g.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">mklink
|
||||
C:\tools\vlmcsd.exe vlmcsdmulti.exe <br>
|
||||
mklink C:\tools\vlmcs.exe vlmcsdmulti.exe</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>Memory
|
||||
considerations</b> <br>
|
||||
While you definitely save disk space by using
|
||||
<b>vlmcsdmulti</b> you will need more RAM when you run
|
||||
<b>vlmcsdmulti</b> as a daemon (KMS server) instead of
|
||||
vlmcsd. You should consider running <b>vlmcsdmulti</b> via
|
||||
an internet superserver like <b>inetd</b>(8) or
|
||||
<b>xinetd</b>(8).</p>
|
||||
|
||||
<h2>BUGS
|
||||
<a name="BUGS"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>vlmcsdmulti</b>
|
||||
has the same bugs as <b>vlmcs</b>(1) and
|
||||
<b>vlmcsd</b>(8).</p>
|
||||
|
||||
<h2>AUTHOR
|
||||
<a name="AUTHOR"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">Written by
|
||||
Hotbird64</p>
|
||||
|
||||
<h2>CREDITS
|
||||
<a name="CREDITS"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">Thanks to
|
||||
CODYQX4, crony12, deagles, DougQaid, eIcn, mikmik38,
|
||||
nosferati87, qad, vityan666, ...</p>
|
||||
|
||||
<h2>SEE ALSO
|
||||
<a name="SEE ALSO"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>vlmcs</b>(1)<b>,
|
||||
vlmcsd</b>(8)<b>, vlmcsd</b>(7)</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
Binary file not shown.
@ -1,76 +0,0 @@
|
||||
VLMCSDMULTI(1) KMS Activation Manual VLMCSDMULTI(1)
|
||||
|
||||
|
||||
|
||||
NAME
|
||||
vlmcsdmulti - a multi-call binary containing vlmcs(1) and vlmcsd(8)
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
vlmcsdmulti vlmcs [ options ] [ hostname|ip-address[:port] ] [ options
|
||||
] | vlmcsd [ options ]
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
vlmcsdmulti is a multi-call binary that contains vlmcs(1) and vlmcsd(8)
|
||||
in a single binary. Since both programs share a lot of code and data,
|
||||
the combined binary is significantly smaller than the sum of both
|
||||
files.
|
||||
|
||||
vlmcsdmulti should not be called directly. Instead you may want to cre-
|
||||
ate symbolic links named vlmcs and vlmcsd which point to vlmcsdmulti.
|
||||
You then use these links to call the respective program. You may how-
|
||||
ever call vlmcsdmulti followed by a complete command line of either
|
||||
vlmcs(1) or vlmcsd(8).
|
||||
|
||||
Creating symbolic links in unixoid operating systems
|
||||
cd to the directory containing vlmcsdmulti and type
|
||||
|
||||
ln -s vlmcsdmulti vlmcsd
|
||||
ln -s vlmcsdmulti vlmcs
|
||||
|
||||
You may use a destination directory, e.g.
|
||||
|
||||
ln -s vlmcsdmulti /usr/local/sbin/vlmcsd
|
||||
ln -s vlmcsdmulti /usr/local/bin/vlmcs
|
||||
|
||||
Ensure that vlmcsdmulti has execute permissions. You can do that by
|
||||
typing "chmod 755 vlmcsdmulti". See chmod(1) for details.
|
||||
|
||||
Creating symbolic links in Windows (Vista and higher only)
|
||||
cd to the directory containing vlmcsdmulti and type
|
||||
|
||||
mklink vlmcsd.exe vlmcsdmulti.exe
|
||||
mklink vlmcs.exe vlmcsdmulti.exe
|
||||
|
||||
You may use a destination directory, e.g.
|
||||
|
||||
mklink C:\tools\vlmcsd.exe vlmcsdmulti.exe
|
||||
mklink C:\tools\vlmcs.exe vlmcsdmulti.exe
|
||||
|
||||
Memory considerations
|
||||
While you definitely save disk space by using vlmcsdmulti you will need
|
||||
more RAM when you run vlmcsdmulti as a daemon (KMS server) instead of
|
||||
vlmcsd. You should consider running vlmcsdmulti via an internet super-
|
||||
server like inetd(8) or xinetd(8).
|
||||
|
||||
|
||||
BUGS
|
||||
vlmcsdmulti has the same bugs as vlmcs(1) and vlmcsd(8).
|
||||
|
||||
|
||||
AUTHOR
|
||||
Written by Hotbird64
|
||||
|
||||
|
||||
CREDITS
|
||||
Thanks to CODYQX4, crony12, deagles, DougQaid, eIcn, mikmik38, nos-
|
||||
ferati87, qad, vityan666, ...
|
||||
|
||||
|
||||
SEE ALSO
|
||||
vlmcs(1), vlmcsd(8), vlmcsd(7)
|
||||
|
||||
|
||||
|
||||
Hotbird64 February 2015 VLMCSDMULTI(1)
|
Reference in New Issue
Block a user