Установка KMS сервера vlmcsd на Linux для активации Windows и Office

На GitHub есть интересный open source проект vlmcsd (https://github.com/Wind4/vlmcsd) для эмуляции сервера KMS активации Microsoft. Вы можете использовать его для развертывания собственного KMS сервера на платформах, отличных от Windows Server (тем самым можно сэкономить на лицензии Windows Server, если вы его не используете). Такой KMS сервер можно установить на Linux, Android, FreeBSD, Mac OS. В этой статье мы покажем, как установить KMS сервер на базе vlmcsd в CentOS Linux и использовать его для сетевой активации компьютеров с десктопными версиями Windows, Windows Server и Microsoft Office.

Дисклаймер. Данная статья предоставляется в образовательных целях и не предполагает использование рассмотренного продукта для незаконной активации Windows или Office. Проект WinITPro не поддерживает использование нелицензионного ПО ни в каком виде.

Прежде чем начать, рекомендуем познакомится с технологией корпоративной KMS активации Microsoft. Почти вся необходимая информация есть в статье FAQ по KMS активации в Windows.

В данном примере мы используем CentOS 8 для установки KMS сервера, но вы можете использовать и другие ОС, например, Ubuntu, Debian, RHEL или даже ваш NAS (есть примеры успешной установки на NAS сервер Synology).

Подключитесь к своему серверу Linux и воспользуйтесь менеджером пакетов yum (dnf) для установки пакеты git и gcc:

# dnf update
# dnf install git gcc

Теперь скопируйте и установите пакет vlmcsd:

# git clone https://github.com/Wind4/vlmcsd

установка vlmcsd в centos linux - эмулятор KMS сервера

# cd vlmcsd
# make

компиляция vlmcsd

Перейдите в каталог bin:

# cd bin

Запустите KMS сервер:

# ./vlmcsd

запуск vlmcs KMS сервера в Linux

Должно появится сообщение:

Connecting to 127.0.0.1:1688 ... successful
Sending activation request (KMS V6) 1 of 1 -> 55041-00206-559-475403-03-1076-6002.0000-1482020 (3A1C049600B60076)

Это значит, что вы успешно скомпилировали и запустили KMS сервер на Linux.

По умолчанию vlmcsd слушает на стандартном порту KMS — TCP/1688. Поэтому вам нужно открыть порт в файерволе Linux, чтобы разрешить клиентам подключаться к нему. Для firewalld выполните следующие команды:

# firewall-cmd --zone=public --permanent --add-port=1688/tcp
# firewall-cmd –reload

Проверьте что порт 1688 открыт:

# firewall-cmd --list-port
# netstat -ntlp | grep LISTEN

открыть порт TCP 1688 для KMS

Чтобы не запускать vlmcsd вручную, вы можете создать собственный демон, которым можно управлять через systemd.

#cp vlmcsd /usr/bin
# cp vlmcs /usr/bin
# touch /etc/systemd/system/kms-script.service
# chmod 664 /etc/systemd/system/kms-script.service

# nano /etc/systemd/system/kms-script.service

Добавьте в файл следующее описание сервиса:

[Unit]
Description=Microsoft KMS Server
After=network.target
After=network-online.target
Wants=network-online.target
 
[Service]
Type=oneshot
ExecStart=/usr/bin/vlmcsd
RemainAfterExit=yes
LimitNOFILE=65536
 
[Install]
WantedBy=multi-user.target

Осталось запустить службу KMS и добавить ее в автозагрузку:

# systemctl daemon-reload
# systemctl start kms-script.service
# systemctl status kms-script.service
# systemctl enable kms-script.service

запуск службы KMS сервера в Linux CentOS

Расширенные настройки KMS сервера можно задать с помощью файла vlmcsd.ini (есть образец в каталоге ../vlmcsd/etc/. Тамже можно задать путь к файлу с логами KMS сервера (vlmcsd.log). Можно указать пути к файлам в аргументах запуска vlmcsd с помощью параметров:
-i /etc/vlmcsd.ini
-l /var/log/vlmcsd.log

Также вы можете запустить этот KMS сервер в docker контейнере:

sudo docker pull mikolatero/vlmcsd
sudo docker run -d -p 1688:1688 --restart=always --name kms_server mikolatero/vlmcsd /vlmcsd -D -d -t 3 -e -v -R172800 -A10080

Если у вас используется Microsoft DNS, вы можете создать _VLMCS запись для автоматического поиска KMS сервера клиентами в домене. Для создания записи в DNS используйте такую команду PowerShell:
Add-DnsServerResourceRecord -Srv -Name "_VLMCS._tcp" -ZoneName "winitpro.ri" -DomainName "192.168.14.147" -Priority 0 -Weight 0 -Port 1688

Где 192.168.14.147 – IP адрес вашего Linux сервера со службой KMS.

Теперь все хосты Windows (и Office) в домене будут автоматически активироваться на KMS сервере, если на них установлен публичный ключ корпоративной активации (GVLK). Полный список GVLK (Generic Volume License Keys) ключей для активации всех доступных версий Windows доступен на сайте Microsoft https://docs.microsoft.com/en-us/windows-server/get-started/kms-client-activation-keys.

Например, на этой странице найдите GVLK ключи для активации Windows Server 2022 Standard (VDYBN-27WPP-V4HQT-9VMD4-VMK7H) и Windows 10 Pro (W269N-WFGWX-YVC9B-4J6C9-T83GX).

Для ручной активации Windows нужно задать GVLK ключ для вашей версии Windows, адрес сервера KMS активации и выполнить команду активации. Используются следующие команды (например, для Windows Server 2022 Std):

slmgr.vbs -ipk VDYBN-27WPP-V4HQT-9VMD4-VMK7H
slmgr.vbs -skms 192.168.14.147
slmgr.vbs -ato

После того, как вы выполните последнюю команду, появится надпись Product activated successfully . Это значит ваша копия Windows успешно активирована.

slmgr.vbs команды активации Windows на KMS сервере

Проверить статус активации Windows можно командой:
slmgr.vbs -dlv

В моем примере при активации Windows Server появилась ошибка:

Error: 0xC004F069 On a computer running Microsoft Windows non-core edition, run 'slui.exe 0x2a 0xC004F069' to display the error text.

Причина в том, что у меня установлена ознакомительная (Evaluation) версия Windows Server 2022. Сначала нужно конвертировать ее в полноценную Standard согласностатье:

dism /online /set-edition:serverstandard /productkey:VDYBN-27WPP-V4HQT-9VMD4-VMK7H /accepteula

И только после этого можно активировать Windows.

Аналогичным образом вы можете активировать на KMS сервере корпоративные версии Microsoft Office 2019/2016/2013. Для этого используются такие команды:

cd C:\Program Files\Microsoft Office\Office16
cscript ospp.vbs /sethst: 192.168.14.147
cscript ospp.vbs /act

Проверить статус активации Office можно так:

cscript ospp.vbs /dstatusall

Итак, мы показали, как развернуть KMS сервер на Linux, на котором можно активировать все версии Windows включая последние Windows Server 2022 и Windows 11


Предыдущая статья Следующая статья


Комментариев: 49 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)