The two most common operations now have clean, key-free commands (no $env:KMS_AUTO prefix) that delegate to kms-bootstrap.ps1: iwr .../scripts/activate-windows.ps1 | iex iwr .../scripts/activate-office.ps1 | iex activate-office is Office-only (Project/Visio excluded — bundling them would prompt to *install* products you don't have, given the new install-offer). Quick Start now leads with these two; the interactive bootstrap stays as the "activate everything" option. Dropped the redundant KMS_AUTO combo cards. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
357 lines
16 KiB
HTML
357 lines
16 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<meta name="description" content="{{ .Site.Params.description }}">
|
|
<meta name="color-scheme" content="dark light">
|
|
<title>{{ .Site.Title }} — KMS activation reference</title>
|
|
<link rel="stylesheet" href="{{ "css/style.css" | relURL }}">
|
|
<link rel="preconnect" href="https://rsms.me/">
|
|
<link rel="stylesheet" href="https://rsms.me/inter/inter.css">
|
|
</head>
|
|
<body>
|
|
|
|
<header class="site-header">
|
|
<div class="wrap">
|
|
<div class="brand">
|
|
<span class="logo">⊞</span>
|
|
<div>
|
|
<h1>kms.viktorbarzin.me</h1>
|
|
<p class="tag">Free public KMS · Windows · Office · Project · Visio · No signup, no tracking</p>
|
|
</div>
|
|
</div>
|
|
<nav>
|
|
<a href="#quickstart">Quick start</a>
|
|
<a href="#windows">Windows</a>
|
|
<a href="#server">Server</a>
|
|
<a href="#office">Office</a>
|
|
<a href="#downloads">Downloads</a>
|
|
<a href="#faq">FAQ</a>
|
|
</nav>
|
|
</div>
|
|
</header>
|
|
|
|
<section class="hero">
|
|
<div class="wrap">
|
|
<h2>Activate Microsoft Volume License products in seconds.</h2>
|
|
<p class="lede">
|
|
Public KMS host. Point any VL Windows / Office / Project / Visio at it and it activates —
|
|
no keys to remember, no account, no logs of personal data beyond the activation event itself.
|
|
Run the one-liner below, or use the GVLK tables further down.
|
|
</p>
|
|
<div class="kms-target">
|
|
<div class="kms-target-item">
|
|
<span class="muted">Public KMS host</span>
|
|
<code class="copy" data-copy="{{ .Site.Params.kmsHost }}:{{ .Site.Params.kmsPort }}">{{ .Site.Params.kmsHost }}:{{ .Site.Params.kmsPort }}</code>
|
|
</div>
|
|
<div class="kms-target-item">
|
|
<span class="muted">Reachable from</span>
|
|
<code>any IPv4 internet</code>
|
|
</div>
|
|
<div class="kms-target-item">
|
|
<span class="muted">Cost</span>
|
|
<code>free, forever</code>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<main class="wrap">
|
|
|
|
<section id="quickstart">
|
|
<h2>Quick start</h2>
|
|
<p>
|
|
Open <strong>PowerShell as Administrator</strong> and paste the command for what you
|
|
want. No key to enter — each one detects your edition, fetches the right key, points
|
|
it at <code>{{ .Site.Params.kmsHost }}:{{ .Site.Params.kmsPort }}</code>, activates, and
|
|
prints the result. Safe to re-run (already-licensed installs are left alone).
|
|
</p>
|
|
<div class="quickstart-grid">
|
|
<div class="card terminal">
|
|
<div class="card-head"><span>Activate Windows</span><button class="btn-copy" data-copy-target="quickstart-win">Copy</button></div>
|
|
<pre id="quickstart-win"><code>iwr -UseBasicParsing https://{{ .Site.Params.siteHost }}{{ .Site.Params.winURL }} | iex</code></pre>
|
|
</div>
|
|
<div class="card terminal">
|
|
<div class="card-head"><span>Activate Office</span><button class="btn-copy" data-copy-target="quickstart-office">Copy</button></div>
|
|
<pre id="quickstart-office"><code>iwr -UseBasicParsing https://{{ .Site.Params.siteHost }}{{ .Site.Params.officeURL }} | iex</code></pre>
|
|
</div>
|
|
</div>
|
|
<p class="hint">
|
|
Need more? To activate <strong>everything you have</strong> (Windows + Office +
|
|
Project + Visio) interactively, run the bootstrap and answer the prompts:
|
|
<code>iwr -UseBasicParsing https://{{ .Site.Params.siteHost }}{{ .Site.Params.bootstrapURL }} | iex</code>.
|
|
Prefer to read first?
|
|
<a href="{{ .Site.Params.winURL }}">activate-windows.ps1</a>,
|
|
<a href="{{ .Site.Params.officeURL }}">activate-office.ps1</a>,
|
|
<a href="{{ .Site.Params.bootstrapURL }}">kms-bootstrap.ps1</a>.
|
|
</p>
|
|
<p class="hint">Want to skip the script entirely? Two cmd.exe lines do the same job:</p>
|
|
<div class="card terminal">
|
|
<div class="card-head"><span>cmd.exe — manual</span><button class="btn-copy" data-copy-target="explicit-cmd">Copy</button></div>
|
|
<pre id="explicit-cmd"><code>slmgr /skms {{ .Site.Params.kmsHost }}:{{ .Site.Params.kmsPort }}
|
|
slmgr /ato
|
|
|
|
cscript "C:\Program Files\Microsoft Office\Office16\ospp.vbs" /sethst:{{ .Site.Params.kmsHost }}
|
|
cscript "C:\Program Files\Microsoft Office\Office16\ospp.vbs" /act</code></pre>
|
|
</div>
|
|
</section>
|
|
|
|
{{/* helper: build product family groupings */}}
|
|
{{ $windows := .Site.Data.products.windows }}
|
|
{{ $servers := .Site.Data.products.windows_server }}
|
|
{{ $office := .Site.Data.products.office }}
|
|
|
|
<section id="windows">
|
|
<h2>Windows desktop</h2>
|
|
<p class="muted">
|
|
Per-edition GVLKs. <strong>Volume License only</strong> — Home and retail SKUs cannot KMS-activate.
|
|
Click any key to copy.
|
|
</p>
|
|
|
|
{{ $order := slice "Windows 11 / 10" "Windows LTSC" }}
|
|
{{ range $family := $order }}
|
|
{{ $items := where $windows "family" $family }}
|
|
{{ if $items }}
|
|
<h3 class="family-head">{{ $family }}</h3>
|
|
<table class="key-table">
|
|
<thead><tr><th>Edition</th><th>GVLK</th><th class="notes-col">Notes</th></tr></thead>
|
|
<tbody>
|
|
{{ range $items }}
|
|
<tr{{ if .current }} class="current"{{ end }}>
|
|
<td>{{ .edition }}{{ if .current }} <span class="badge">current</span>{{ end }}</td>
|
|
<td><code class="copy" data-copy="{{ .gvlk }}">{{ .gvlk }}</code></td>
|
|
<td class="notes-col">{{ with .notes }}{{ . }}{{ else }}—{{ end }}</td>
|
|
</tr>
|
|
{{ end }}
|
|
</tbody>
|
|
</table>
|
|
{{ end }}
|
|
{{ end }}
|
|
|
|
<p class="hint">
|
|
<strong>Legacy desktop</strong> (Windows 8.1 / 8 / 7 / Vista) is out of support and omitted.
|
|
Those GVLKs still work against this KMS — look them up in Microsoft's
|
|
<a href="https://learn.microsoft.com/en-us/windows-server/get-started/kms-client-activation-keys" target="_blank" rel="noopener">KMS client key list</a>
|
|
and activate with the same <code>slmgr</code> steps below.
|
|
</p>
|
|
|
|
<details class="card">
|
|
<summary>How to use a GVLK on Windows</summary>
|
|
<pre><code>:: open cmd.exe as Administrator
|
|
slmgr /upk :: remove existing key
|
|
slmgr /ipk <PASTE-GVLK-HERE> :: install GVLK
|
|
slmgr /skms {{ .Site.Params.kmsHost }}:{{ .Site.Params.kmsPort }} :: point at this server
|
|
slmgr /ato :: activate
|
|
slmgr /dlv :: verify (look for "LICENSED")</code></pre>
|
|
</details>
|
|
</section>
|
|
|
|
<section id="server">
|
|
<h2>Windows Server</h2>
|
|
<p class="muted">Server SKUs need only 5 unique clients to satisfy the KMS activation count threshold (vs. 25 for desktop).</p>
|
|
|
|
{{ $serverOrder := slice "Windows Server 2025" "Windows Server 2022" "Windows Server 2019" "Windows Server 2016" }}
|
|
{{ range $family := $serverOrder }}
|
|
{{ $items := where $servers "family" $family }}
|
|
{{ if $items }}
|
|
<h3 class="family-head">{{ $family }}</h3>
|
|
<table class="key-table">
|
|
<thead><tr><th>Edition</th><th>GVLK</th><th class="notes-col">Notes</th></tr></thead>
|
|
<tbody>
|
|
{{ range $items }}
|
|
<tr{{ if .current }} class="current"{{ end }}>
|
|
<td>{{ .edition }}{{ if .current }} <span class="badge">current</span>{{ end }}</td>
|
|
<td><code class="copy" data-copy="{{ .gvlk }}">{{ .gvlk }}</code></td>
|
|
<td class="notes-col">{{ with .notes }}{{ . }}{{ else }}—{{ end }}</td>
|
|
</tr>
|
|
{{ end }}
|
|
</tbody>
|
|
</table>
|
|
{{ end }}
|
|
{{ end }}
|
|
<p class="hint">
|
|
<strong>Server 2012 R2 / 2012 / 2008 R2 / 2008</strong> are end-of-life and omitted.
|
|
Their GVLKs still activate here — see Microsoft's
|
|
<a href="https://learn.microsoft.com/en-us/windows-server/get-started/kms-client-activation-keys" target="_blank" rel="noopener">KMS client key list</a>.
|
|
</p>
|
|
</section>
|
|
|
|
<section id="office">
|
|
<h2>Office · Project · Visio</h2>
|
|
<p class="muted">
|
|
All listed editions are Volume License. Install via the
|
|
<a href="#downloads">Office Deployment Tool</a> with the matching <code>Configuration.xml</code> below
|
|
(use <code>Channel</code> shown in each row), or manually swap a retail key with
|
|
<code>ospp.vbs /unpkey:<LAST5></code> + <code>/inpkey:<GVLK></code> and <code>/act</code>.
|
|
</p>
|
|
|
|
{{ $officeOrder := slice "Office LTSC 2024" "Office LTSC 2021" "Office 2019" "Office 2016" }}
|
|
{{ range $family := $officeOrder }}
|
|
{{ $items := where $office "family" $family }}
|
|
{{ if $items }}
|
|
<h3 class="family-head">{{ $family }}</h3>
|
|
<table class="key-table">
|
|
<thead><tr><th>Edition</th><th>Product ID</th><th>GVLK</th><th class="notes-col">Channel</th></tr></thead>
|
|
<tbody>
|
|
{{ range $items }}
|
|
<tr{{ if .current }} class="current"{{ end }}>
|
|
<td>{{ .edition }}{{ if .current }} <span class="badge">current</span>{{ end }}</td>
|
|
<td><code class="muted">{{ .product }}</code></td>
|
|
<td><code class="copy" data-copy="{{ .gvlk }}">{{ .gvlk }}</code></td>
|
|
<td class="notes-col">{{ .channel }}</td>
|
|
</tr>
|
|
{{ end }}
|
|
</tbody>
|
|
</table>
|
|
{{ end }}
|
|
{{ end }}
|
|
|
|
<details class="card">
|
|
<summary>Sample Configuration.xml — Office Pro Plus 2024 + Project Pro 2024</summary>
|
|
<pre><code><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></code></pre>
|
|
</details>
|
|
|
|
<details class="card">
|
|
<summary>Activation — bare commands</summary>
|
|
<pre><code>cd "C:\Program Files\Microsoft Office\Office16"
|
|
cscript ospp.vbs /sethst:{{ .Site.Params.kmsHost }}
|
|
cscript ospp.vbs /setprt:{{ .Site.Params.kmsPort }}
|
|
cscript ospp.vbs /inpkey:<PASTE-GVLK>
|
|
cscript ospp.vbs /act
|
|
cscript ospp.vbs /dstatus :: verify --LICENSED--</code></pre>
|
|
</details>
|
|
</section>
|
|
|
|
<section id="downloads">
|
|
<h2>Downloads</h2>
|
|
|
|
<h3 class="family-head">Office Deployment Tool</h3>
|
|
<p>
|
|
Single binary that installs every Office VL edition listed above, driven by a
|
|
<code>Configuration.xml</code>.
|
|
</p>
|
|
<a class="dl" href="{{ .Site.Data.products.downloads.odt.url }}" target="_blank" rel="noopener">
|
|
{{ .Site.Data.products.downloads.odt.label }} ↗
|
|
</a>
|
|
<p class="hint">{{ .Site.Data.products.downloads.odt.notes }}</p>
|
|
|
|
<h3 class="family-head">Windows ISOs</h3>
|
|
<ul class="dl-list">
|
|
{{ range .Site.Data.products.downloads.windows }}
|
|
<li>
|
|
<a href="{{ .url }}" target="_blank" rel="noopener">{{ .label }} ↗</a>
|
|
{{ with .notes }}<span class="muted"> — {{ . }}</span>{{ end }}
|
|
</li>
|
|
{{ end }}
|
|
</ul>
|
|
|
|
<h3 class="family-head">PowerShell scripts</h3>
|
|
<p>Both scripts are open-source, single-file, no dependencies. Read before running.</p>
|
|
<ul class="dl-list">
|
|
<li>
|
|
<a href="{{ .Site.Params.bootstrapURL }}" download="kms-bootstrap.ps1" rel="noopener">kms-bootstrap.ps1 ↓</a>
|
|
<span class="muted"> — interactive: prompts for Windows / Office / Project / Visio and activates each.</span>
|
|
</li>
|
|
<li>
|
|
<a href="{{ .Site.Params.setupURL }}" download="setup-kms.ps1" rel="noopener">setup-kms.ps1 ↓</a>
|
|
<span class="muted"> — minimal: <code>slmgr /skms</code> + <code>/ato</code>. No Office install.</span>
|
|
</li>
|
|
</ul>
|
|
</section>
|
|
|
|
<section id="faq">
|
|
<h2>FAQ & gotchas</h2>
|
|
<div class="faq">
|
|
<details>
|
|
<summary>Why won't my retail Office activate?</summary>
|
|
<p>KMS only grants licenses to <strong>Volume License</strong> editions. Retail / OEM / Microsoft 365
|
|
keys reject KMS responses. Either reinstall as VL via ODT, or swap the key in place:
|
|
<code>cscript ospp.vbs /unpkey:<LAST5></code> followed by
|
|
<code>cscript ospp.vbs /inpkey:<GVLK></code> and <code>/act</code>.</p>
|
|
</details>
|
|
<details>
|
|
<summary>What about Windows Home?</summary>
|
|
<p>Home editions cannot be KMS-activated. Either upgrade to Pro/Enterprise/Education
|
|
(<code>DISM /Set-Edition</code> or in-place reinstall) or use a retail key.</p>
|
|
</details>
|
|
<details>
|
|
<summary>The first activation fails with 0xC004F038</summary>
|
|
<p>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.</p>
|
|
</details>
|
|
<details>
|
|
<summary>Office LTSC vs Microsoft 365 — can they coexist?</summary>
|
|
<p>No. The Click-to-Run installer refuses side-by-side. Run
|
|
<code>setup.exe /configure Remove.xml</code> with <code><Remove All="TRUE"/></code>
|
|
first, then install the VL edition.</p>
|
|
</details>
|
|
<details>
|
|
<summary>How does auto-discovery work? Do I need it?</summary>
|
|
<p>No — the Quick Start one-liner pins the host explicitly so auto-discovery is irrelevant
|
|
for internet visitors. It exists for managed corporate networks: the Software Protection
|
|
Service queries DNS for <code>_vlmcs._tcp.<primary-dns-suffix></code>, and if the SRV
|
|
resolves, Windows connects there on the returned port. If you want it on your own LAN,
|
|
publish a SRV record pointing at <code>{{ .Site.Params.kmsHost }}:{{ .Site.Params.kmsPort }}</code>
|
|
(or any vlmcsd you self-host) and set the matching DNS suffix on each client.</p>
|
|
</details>
|
|
<details>
|
|
<summary>Will my activation be logged? What about privacy?</summary>
|
|
<p>The KMS protocol itself sends your machine's hostname, your client IP (from the TCP
|
|
socket), and the product ID being activated. The server records the event in a log so
|
|
the operator can see overall traffic. No personal data beyond what the KMS protocol
|
|
itself transmits is collected; nothing is shared, sold, or retained beyond the operator's
|
|
monitoring. If that bothers you, run your own vlmcsd — it's a single binary, the source
|
|
is on <a href="https://github.com/Wind4/vlmcsd" target="_blank" rel="noopener">GitHub</a>.</p>
|
|
</details>
|
|
<details>
|
|
<summary>Is this legal? Can I use it for anything?</summary>
|
|
<p>KMS activates only <strong>Volume License (VL)</strong> editions of Microsoft software.
|
|
VL keys are licensed per-organization by Microsoft; using a VL edition without a real VL
|
|
agreement violates Microsoft's licensing terms. This server exists for personal lab /
|
|
learning / unsupported-OS-revival use. If you don't have a VL agreement, evaluate
|
|
Windows + Office through Microsoft's free trial channels instead. The site operator is
|
|
not responsible for how visitors use the host.</p>
|
|
</details>
|
|
<details>
|
|
<summary>How long does a KMS license last?</summary>
|
|
<p>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.</p>
|
|
</details>
|
|
<details>
|
|
<summary>Where can I see the GVLKs Microsoft publishes?</summary>
|
|
<p>Windows: <a href="https://learn.microsoft.com/en-us/windows-server/get-started/kms-client-activation-keys" target="_blank" rel="noopener">learn.microsoft.com/.../kms-client-activation-keys</a>.<br>
|
|
Office / Project / Visio: <a href="https://learn.microsoft.com/en-us/deployoffice/vlactivation/gvlks" target="_blank" rel="noopener">learn.microsoft.com/.../gvlks</a>.</p>
|
|
</details>
|
|
</div>
|
|
</section>
|
|
|
|
</main>
|
|
|
|
<footer>
|
|
<div class="wrap">
|
|
<p>
|
|
KMS host on this network · vlmcsd · Built with Hugo ·
|
|
<a href="https://forgejo.viktorbarzin.me/viktor/kms-website" target="_blank" rel="noopener">source</a>
|
|
</p>
|
|
</div>
|
|
</footer>
|
|
|
|
<script src="{{ "js/clipboard.js" | relURL }}"></script>
|
|
</body>
|
|
</html>
|