Quick start — fully automatic on a new machine
On the home / lab network, a freshly-installed Volume License edition will activate itself
once Windows can find the SRV record. The bootstrap script below sets the Primary DNS Suffix,
optionally installs Office + Project (LTSC 2024 VL), triggers slmgr /ato + ospp.vbs /act,
and prompts for a single reboot.
powershell -ExecutionPolicy Bypass -File "\\nas.viktorbarzin.lan\Emo shared\kms-bootstrap.ps1"
Off-LAN? Skip auto-discovery and pin the host explicitly:
slmgr /skms kms.viktorbarzin.me
slmgr /ato
cscript "C:\Program Files\Microsoft Office\Office16\ospp.vbs" /sethst:kms.viktorbarzin.me
cscript "C:\Program Files\Microsoft Office\Office16\ospp.vbs" /act
Windows desktop
Per-edition GVLKs. Volume License only — Home and retail SKUs cannot KMS-activate. Click any key to copy.
{{ $order := slice "Windows 11 / 10" "Windows LTSC" "Legacy desktop" }} {{ range $family := $order }} {{ $items := where $windows "family" $family }} {{ if $items }}{{ $family }}
| Edition | GVLK | Notes |
|---|---|---|
| {{ .edition }}{{ if .current }} current{{ end }} | {{ .gvlk }} |
{{ with .notes }}{{ . }}{{ else }}—{{ end }} |
How to use a GVLK on Windows
:: open cmd.exe as Administrator
slmgr /upk :: remove existing key
slmgr /ipk <PASTE-GVLK-HERE> :: install GVLK
slmgr /skms kms.viktorbarzin.me :: optional: skip auto-discovery
slmgr /ato :: activate
slmgr /dlv :: verify (look for "LICENSED")
Windows Server
Server SKUs need only 5 unique clients to satisfy the KMS activation count threshold (vs. 25 for desktop).
{{ $serverOrder := slice "Windows Server 2025" "Windows Server 2022" "Windows Server 2019" "Windows Server 2016" "Windows Server 2012 R2" "Windows Server 2012" "Windows Server 2008 R2" "Windows Server 2008" }} {{ range $family := $serverOrder }} {{ $items := where $servers "family" $family }} {{ if $items }}{{ $family }}
| Edition | GVLK | Notes |
|---|---|---|
| {{ .edition }}{{ if .current }} current{{ end }} | {{ .gvlk }} |
{{ with .notes }}{{ . }}{{ else }}—{{ end }} |
Office · Project · Visio
All listed editions are Volume License. Install via the
Office Deployment Tool with the matching Configuration.xml below
(use Channel shown in each row), or manually swap a retail key with
ospp.vbs /unpkey:<LAST5> + /inpkey:<GVLK> and /act.
{{ $family }}
| Edition | Product ID | GVLK | Channel |
|---|---|---|---|
| {{ .edition }}{{ if .current }} current{{ end }} | {{ .product }} |
{{ .gvlk }} |
{{ .channel }} |
Sample Configuration.xml — Office Pro Plus 2024 + Project Pro 2024
<Configuration>
<Add OfficeClientEdition="64" Channel="PerpetualVL2024">
<Product ID="ProPlus2024Volume" PIDKEY="XJ2XN-FW8RK-P4HMP-DKDBV-GCVGB">
<Language ID="en-us"/>
</Product>
<Product ID="ProjectPro2024Volume" PIDKEY="FQQ23-N4YCY-73HQ3-FM9WC-76HF4">
<Language ID="en-us"/>
</Product>
</Add>
<Updates Enabled="TRUE" Channel="PerpetualVL2024"/>
<Display Level="None" AcceptEULA="TRUE"/>
<Property Name="AUTOACTIVATE" Value="1"/>
<Property Name="FORCEAPPSHUTDOWN" Value="TRUE"/>
</Configuration>
Activation — bare commands
cd "C:\Program Files\Microsoft Office\Office16"
cscript ospp.vbs /sethst:kms.viktorbarzin.me
cscript ospp.vbs /inpkey:<PASTE-GVLK>
cscript ospp.vbs /act
cscript ospp.vbs /dstatus :: verify --LICENSED--
Downloads
Office Deployment Tool
Single binary that installs every Office VL edition listed above, driven by a
Configuration.xml.
{{ .Site.Data.products.downloads.odt.notes }}
Windows ISOs
-
{{ range .Site.Data.products.downloads.windows }}
- {{ .label }} ↗ {{ with .notes }} — {{ . }}{{ end }} {{ end }}
Bootstrap script
One-shot PowerShell that wires DNS suffix, Office install, and activation:
kms-bootstrap.ps1 ↗FAQ & gotchas
Why won't my retail Office activate?
KMS only grants licenses to Volume License editions. Retail / OEM / Microsoft 365
keys reject KMS responses. Either reinstall as VL via ODT, or swap the key in place:
cscript ospp.vbs /unpkey:<LAST5> followed by
cscript ospp.vbs /inpkey:<GVLK> and /act.
What about Windows Home?
Home editions cannot be KMS-activated. Either upgrade to Pro/Enterprise/Education
(DISM /Set-Edition or in-place reinstall) or use a retail key.
The first activation fails with 0xC004F038
That's the KMS count threshold: 25 unique clients (or 5 servers) must contact the host before desktop clients can activate. The host caches counts for 30 days. The vlmcsd implementation in this server bypasses that — but real Microsoft KMS hosts enforce it. If you ever swap to a hardware host you may need to pre-seed activations.
Office LTSC vs Microsoft 365 — can they coexist?
No. The Click-to-Run installer refuses side-by-side. Run
setup.exe /configure Remove.xml with <Remove All="TRUE"/>
first, then install the VL edition.
How does auto-discovery work?
The Software Protection Service queries DNS for
_vlmcs._tcp.<primary-dns-suffix>. If the SRV resolves it connects to that
host on the returned port (1688 by default). On this network the suffix is
viktorbarzin.lan and the SRV resolves to kms.viktorbarzin.lan:1688.
Set the suffix once via System Properties → Computer Name → More → Primary DNS suffix.
How long does a KMS license last?
180 days. The client tries to renew every 7 days; one successful renewal resets the 180-day clock. As long as a machine reaches the KMS once a quarter it stays activated indefinitely.
Where can I see the GVLKs Microsoft publishes?
Windows: learn.microsoft.com/.../kms-client-activation-keys.
Office / Project / Visio: learn.microsoft.com/.../gvlks.