From 8bcb64bf998681d31f3dad081bdd882422704fc0 Mon Sep 17 00:00:00 2001 From: Viktor Barzin Date: Sat, 9 May 2026 22:12:21 +0000 Subject: [PATCH] kms-website: 3-up KMS_AUTO quick-start cards + save-as downloads + clean script comments - Replace single interactive one-liner with three side-by-side cards (Windows / Office+Project+Visio / Both) using $env:KMS_AUTO=...; the contract is already supported by kms-bootstrap.ps1 - Make Downloads links use the 'download' attribute so browsers prompt save-as instead of rendering .ps1 as text - Strip operator-side framing: kms-bootstrap.ps1 no longer says "this activation has been logged" and both scripts now point Source at the public mirror instead of forgejo.viktorbarzin.me --- layouts/index.html | 32 ++++++++++++++++++++++---------- static/css/style.css | 13 +++++++++++++ static/scripts/kms-bootstrap.ps1 | 4 ++-- static/scripts/setup-kms.ps1 | 2 +- 4 files changed, 38 insertions(+), 13 deletions(-) diff --git a/layouts/index.html b/layouts/index.html index bb87a63..fc3e4c4 100644 --- a/layouts/index.html +++ b/layouts/index.html @@ -63,18 +63,30 @@

Quick start

Open PowerShell as Administrator on a Volume License Windows install - and paste the one-liner. The script asks what you want to activate (Windows, Office, - Project, Visio), points each at {{ .Site.Params.kmsHost }}:{{ .Site.Params.kmsPort }}, + and paste one of the one-liners below. Each pre-selects what to activate, points + every product at {{ .Site.Params.kmsHost }}:{{ .Site.Params.kmsPort }}, runs the activation, and prints the result.

-
-
One-liner — interactive
-
iwr -UseBasicParsing https://{{ .Site.Params.kmsHost }}{{ .Site.Params.bootstrapURL }} | iex
+
+
+
Windows only
+
$env:KMS_AUTO='win'; iwr -UseBasicParsing https://{{ .Site.Params.kmsHost }}{{ .Site.Params.bootstrapURL }} | iex
+
+
+
Office / Project / Visio
+
$env:KMS_AUTO='office,project,visio'; iwr -UseBasicParsing https://{{ .Site.Params.kmsHost }}{{ .Site.Params.bootstrapURL }} | iex
+
+
+
Windows + Office
+
$env:KMS_AUTO='win,office,project,visio'; iwr -UseBasicParsing https://{{ .Site.Params.kmsHost }}{{ .Site.Params.bootstrapURL }} | iex
+

- Prefer to read the script first? View kms-bootstrap.ps1 - or setup-kms.ps1 (a smaller, non-interactive variant - that just points Windows at the KMS host and runs slmgr /ato). + Want to be asked instead? Drop the $env:KMS_AUTO=...; prefix — + the script will prompt for each product. Prefer to read it first? + View kms-bootstrap.ps1 or + setup-kms.ps1 (a smaller variant + that just runs slmgr /skms + slmgr /ato).

Want to skip the script entirely? Two cmd.exe lines do the same job:

@@ -241,11 +253,11 @@ cscript ospp.vbs /dstatus :: verify --LICENSED--

Both scripts are open-source, single-file, no dependencies. Read before running.

diff --git a/static/css/style.css b/static/css/style.css index 6470c91..ea4105e 100644 --- a/static/css/style.css +++ b/static/css/style.css @@ -142,6 +142,19 @@ section > p:first-of-type { margin-top: 0; } .card pre { margin: 0; padding: 18px 20px; overflow-x: auto; } .card pre code { color: var(--text); font-size: 13.5px; line-height: 1.6; } +.quickstart-grid { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 14px; + margin: 16px 0; +} +.quickstart-grid .card { margin: 0; } +.quickstart-grid .card pre { padding: 14px 16px; } +.quickstart-grid .card pre code { font-size: 12.5px; word-break: break-all; white-space: pre-wrap; } +@media (max-width: 980px) { + .quickstart-grid { grid-template-columns: 1fr; } +} + .card details summary, details summary { cursor: pointer; padding: 14px 18px; font-weight: 600; user-select: none; list-style: none; diff --git a/static/scripts/kms-bootstrap.ps1 b/static/scripts/kms-bootstrap.ps1 index 267b324..a02fdf9 100644 --- a/static/scripts/kms-bootstrap.ps1 +++ b/static/scripts/kms-bootstrap.ps1 @@ -17,7 +17,7 @@ # Custom KMS host: # $env:KMS_HOST = 'kms.example.com'; iwr ... | iex # -# Source: https://forgejo.viktorbarzin.me/viktor/kms-website +# Source: https://kms.viktorbarzin.me/scripts/kms-bootstrap.ps1 # Licence: MIT, no warranty, KMS activates Volume License SKUs only. [CmdletBinding()] @@ -183,4 +183,4 @@ if ($installList.Count -gt 0) { Install-Odt-Bundle $installList } Write-Host "" Step "Done." Write-Host " Re-run any time to re-check status. KMS licences renew automatically every 7 days." -Write-Host " Operator-side: this activation has been logged. Privacy notes: https://kms.viktorbarzin.me/#faq" +Write-Host " Privacy: see https://kms.viktorbarzin.me/#faq" diff --git a/static/scripts/setup-kms.ps1 b/static/scripts/setup-kms.ps1 index 46c7a05..3aee970 100644 --- a/static/scripts/setup-kms.ps1 +++ b/static/scripts/setup-kms.ps1 @@ -10,7 +10,7 @@ # Or with a custom KMS host (e.g. self-hosted): # $env:KMS_HOST = 'kms.example.com'; iwr ... | iex # -# Source: https://forgejo.viktorbarzin.me/viktor/kms-website +# Source: https://kms.viktorbarzin.me/scripts/setup-kms.ps1 # Licence: MIT, no warranty, KMS activates Volume License SKUs only. [CmdletBinding()]