Задача: создать замену серверу Microsoft KMS предприятия на время санкций против РФ и прекращения поддержки компанией Microsoft, для активации ранее оплаченных продуктов Microsoft на компьютерах предприятия.
Решение
Проект vlmcsd - https://github.com/mikolatero/docker-vlmcsd
Docker: https://hub.docker.com/r/mikolatero/vlmcsd/
Vlmcsd — это замена сервера KMS от Microsoft. Он содержит vlmcs, тестовый клиент KMS, в основном для отладки, который также может «заряжать» настоящий сервер KMS, предназначенный для работы на постоянно или часто включаемом устройстве, например маршрутизаторе, NAS-боксе, ... и предназначенный для помощи людям, которые потеряли активацию своих лицензий, принадлежащих им на законных основаниях, например из-за замены оборудования (материнской платы, процессора, ...)
Важно! vlmcsd — это НЕ инструмент для активации в один клик или взлома, предназначенный для активации нелегальных копий программного обеспечения (Windows, Office, Project, Visio)
Стендовые испытания
alse181.lytkins.ru – виртуальная машина VMware Workstation, операционная система Astra Linux Special Edition 1.8.1.UU1, 8 ГБ RAM, 4 vCPU
1. Установка docker
sudo apt install docker.io
2. Запуск vlmcsd в docker-контейнере
docker run -d -p 1688:1688 --name vlmcsd mikolatero/vlmcsd
3. Установка Portainer для управления Docker
sudo docker volume create portainer_data
sudo docker run -d -p 8000:8000 -p 9443:9443 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:2.21.5
4. Проверка работы vlmcsd
Откройте Docker Portianer, URL https://alse181:9443, задайте первоначальный пароль логина admin.
Просмотрите журнал контейнера vlmcsd - должны быть подобные строки
2025-02-01 23:48:24: Read KMS data file version 2.0 //vlmcsd.kmd
2025-02-01 23:48:24: Listening on [::]:1688
2025-02-01 23:48:24: Listening on 0.0.0.0:1688
2025-02-01 23:48:24: Using CSVLK Windows (Windows Server 2019) with random ePID 03612-00206-557-001858-03-1153-14393.0000-0092023
2025-02-01 23:48:24: Using CSVLK Office2010 (Office 2010) with random ePID 03612-00096-211-035603-03-1153-14393.0000-1042019
2025-02-01 23:48:24: Using CSVLK Office2013 (Office 2013) with random ePID 03612-00206-234-875212-03-1153-14393.0000-3122016
2025-02-01 23:48:24: Using CSVLK Office2016 (Office 2016) with random ePID 03612-00206-451-975958-03-1153-14393.0000-2342017
2025-02-01 23:48:24: Using CSVLK WinChinaGov (Windows 10 China Government) with random ePID 03612-03858-783-451072-03-1153-14393.0000-0662020
2025-02-01 23:48:24: Using CSVLK Office2019 (Office 2019) with random ePID 03612-00206-666-692387-03-1153-14393.0000-3562019
2025-02-01 23:48:24: vlmcsd svn1113-3-g65228e5, built 2022-08-11 06:38:46 UTC started successfully
Проверка активации клиента
vm-igor2025.lytkins.ru – виртуальная машина VMware Workstation, операционная система Windows 11 Pro , 8 ГБ RAM, 4 vCPU
В окне cmd (запустить под администратором)
C:\Windows\System32>cscript slmgr.vbs /ipk W269N-WFGWX-YVC9B-4J6C9-T83GX
Сервер сценариев Windows (Microsoft ®) версия 5.812
Copyright (C) Корпорация Майкрософт 1996-2006, все права защищены.
Успешно установлен ключ продукта: W269N-WFGWX-YVC9B-4J6C9-T83GX.
C:\Windows\System32>cscript slmgr.vbs /skms alse181.lytkins.ru
Сервер сценариев Windows (Microsoft ®) версия 5.812
Copyright (C) Корпорация Майкрософт 1996-2006, все права защищены.
Задано имя компьютера со службой управления ключами: alse181.lytkins.ru.
C:\Windows\System32>cscript slmgr.vbs /ato
Сервер сценариев Windows (Microsoft ®) версия 5.812
Copyright (C) Корпорация Майкрософт 1996-2006, все права защищены.
Активация Windows(R), Professional edition (2de67392-b7a7-462a-b1ca-108dd189f588) ...
Активация выполнена успешно.
На сервере vlmcsd (контейнер vlmcsd)
2025-02-02 00:33:52: IPv4 connection accepted: 192.168.234.131:49992.
2025-02-02 00:33:52: <<< Incoming KMS request
2025-02-02 00:33:52: Protocol version : 6.0
2025-02-02 00:33:52: Client is a virtual machine : Yes
2025-02-02 00:33:52: Licensing status : 5 (Notification)
2025-02-02 00:33:52: Remaining time (0 = forever) : 0 minutes
2025-02-02 00:33:52: Application ID : 55c92734-d682-4d71-983e-d6ec3f16059f (Windows)
2025-02-02 00:33:52: SKU ID (aka Activation ID) : 2de67392-b7a7-462a-b1ca-108dd189f588 (Windows 10 Professional)
2025-02-02 00:33:52: KMS ID (aka KMS counted ID) : 58e2134f-8e11-4d17-9cb2-91069c151148 (Windows 10 2015 (Volume))
2025-02-02 00:33:52: Client machine ID : 10cbe600-9947-47fa-b224-531b64b029e3
2025-02-02 00:33:52: Previous client machine ID : 00000000-0000-0000-0000-000000000000
2025-02-02 00:33:52: Client request timestamp (UTC) : 2025-02-02 01:00:48
2025-02-02 00:33:52: Workstation name : vm-igor2025
2025-02-02 00:33:52: N count policy (minimum clients): 25
2025-02-02 00:33:52: >>> Sending response, ePID source = randomized at program start
2025-02-02 00:33:52: Protocol version : 6.0
2025-02-02 00:33:52: KMS host extended PID : 03612-00206-557-001858-03-1153-14393.0000-0092023
2025-02-02 00:33:52: KMS host Hardware ID : 3A1C049600B60076
2025-02-02 00:33:52: Client machine ID : 10cbe600-9947-47fa-b224-531b64b029e3
2025-02-02 00:33:52: Client request timestamp (UTC) : 2025-02-02 01:00:48
2025-02-02 00:33:52: KMS host current active clients : 50
2025-02-02 00:33:52: Renewal interval policy : 10080
2025-02-02 00:33:52: Activation interval policy : 120
2025-02-02 00:33:52: IPv4 connection closed: 192.168.234.131:49992.
Записи в DNS для поиска сервера KMS
Ключевые записи в DNS-домене, которые показывают KMS сервер — это SRV-записи (Service Location), которые автоматически создаются KMS сервером для обнаружения клиентами.
Основная SRV-запись
Полный формат записи:
*_vlmcs._tcp.<домен>.SRVПример: _vlmcs._tcp.company.local
Как проверить наличие записи KMS
nslookup -q=SRV _VLMCS._TCP.<домен>.local или nslookup -type=all _vlmcs._tcpПример вывода
_vlmcs._tcp.company.local SRV service location:
priority = 0
weight = 0
port = 1688
svr hostname = kms.company.local
kms.company.local internet address = 192.168.0.5Автоматическая публикация
-
KMS сервер автоматически создаёт SRV-запись на DNS-сервере при установке
-
Клиенты KMS находят сервер через DNS-запрос к SRV-записи
-
При первом запросе клиент выбирает KMS узел случайно из списка SRV-записей
Если DNS не поддерживает динамическую регистрацию:
Запись нужно добавить ручно в оснастке DNS:
-
Открыть диспетчер DNS → Forward Lookup Zones → ваш домен
-
Action → Other New Records → Service Location (SRV)
-
Вписать параметры: Service=
_VLMCS, Protocol=_TCP, Port=1688, Host=<FQDN_KMS>
Важные нюансы:
-
Запись
_VLMCSпринадлежит первому серверу, который её опубликовал -
Для прав на создание SRV-записей в AD нужно создать группу KMS-Hosts и добавить учётку компьютера KMS
-
В клиентах KMS может быть перечислен суффикс домена в параметре
DnsDomainPublishList
Это стандартный механизм обнаружения KMS в корпоративной сети Windows.