This is an old revision of the document!
KMS-активация
Общая информация
KMS-активация работает следующим образом.
На клиентах устанавливаются общедоступные GVLK-ключи, которые можно найти на сайте Microsoft. Они разные для разных редакций. KMS-сервер (отдельная роль) активируется CSVLK ключем, который клиент получает от MS. Клиенты стучатся на KMS-серввер через специальную DNS-запись. Через KMS можно активировать неограниченное количество лицензий. О них сервер передает информацию в MS.
Установка эмулятора KMS на Ubuntu 20.04
Существует проект эмулятора KMS-сервера для Linux: vlmcsd.
Ссылка: https://github.com/Wind4/vlmcsd
Из проекта нам нужны: binaries и source code. Из binaries нам нужен подходящий под нашу систему бинарник (в его имени должна быть буква “d”, чтобы он мог работать в качестве демона). Для ubuntu это:
\binaries\Linux\intel\glibc\vlmcsd-x64-glibc
Из source code\etc нам потребуются файлы конфигурации:
vlmcsd.ini vlmcsd.kmd
Эти три файла копируем в отдельную директорию (пусть будет kms-emul).
Разместим эту папку с тремя файлами по пути:
/usr/local/kms-emul/
Теперь можно попробовать запустить эмулятор следующим образом (с указанием лога):
/usr/local/kms-emul/vlmcsd-x64-glibc -i /usr/local/kms-emul/vlmcsd.ini -l /home/jp/vlmcsd.log
Чтобы понять, работает ли KMS-сервер - надо проверить подключения по порту tcp 1688.
Если всё ок, круто было бы добавить автоматический запуск при старте системы. Для этого создаем файл для запуска через systemd:
sudo nano /etc/systemd/system/vlmcsd.service
Со следующим содержанием:
[Unit] Description=vlmcsd After=syslog.target After=network.target [Service] Type=forking ExecStart=/usr/local/kms-emul/vlmcsd-x64-glibc -i /usr/local/kms-emul/vlmcsd.ini -l /home/jp/vlmcsd.log [Install] WantedBy=multi-user.target
Подключаем в systemd:
sudo systemctl daemon-reload sudo systemctl enable vlmcsd
Установка DNS-записи.
Теперь, чтобы клиенты могли найти KMS-сервер, нам нужно создать DNS-запись типа SRV в разделе tcp для него с указанием адреса и порта (1688).
Пример:
Теперь клиентам нужно установить GVLK-ключ, вот команда (данный ключ - это GVLK-ключ корпоративной версии Windows 10):
slmgr /ipk NPPR9-FWDCX-D2C8J-H872K-2YT43
Можно установить в тихом режиме и запустить активацию (полезно для удаленного выполнения):
cscript //B "c:\windows\system32\slmgr.vbs" /ipk N69G4-B89J2-4G8F4-WWYCC-J464C cscript //B "c:\windows\system32\slmgr.vbs" /ato
Активировать Windows можно командой:
slmgr -ato
Ключи GVLK для различных редакций Windows: https://docs.microsoft.com/en-us/windows-server/get-started/kms-client-activation-keys
А вот здесь ключи на самом проекте эмулятора (включая ключи на оффис): http://wind4.github.io/vlmcsd/
Управление активацией через Volume Activation Management Tool
Централизованно можно управлять активацией через Volume Activation Management Tool от MS. Она может подключаться удаленно и устанавливать ключи активации\производить процедуру активации.
Утилита может не находить компьютеры в домене через поиск AD. Тогда может помочь запрос LDAP. Пример запроса, который произведет поиск в домене всех компьютеров:
LDAP://office.contoso.com??sub?(&(objectClass=computer)(operatingSystemVersion=*)
Узнать статус активации командой
Без всплывающего графического окна:
Get-CimInstance SoftwareLicensingProduct -Filter "Name like 'Windows%'" | >> where { $_.PartialProductKey } | select Description, LicenseStatus
С всплывающим сообщением:
slmgr /xpr
Активировать с конкретного сервера
slmgr /skms kms_server.winitpro.ru:1688