kms-website: consequences-gated edition switch (Windows changepk + Office ODT)

When the installed product can't KMS-activate as-is, offer to fix it after
showing the consequences (default No; non-interactive needs explicit env consent):
- Windows non-VL edition (Home/retail) -> changepk.exe /ProductKey <target GVLK>
  (default Pro, $env:KMS_EDITION override). Warns: reboot required, one-way,
  re-run after reboot to activate.
- No VL Office/Project/Visio installed -> slim ODT setup.exe /configure to the
  target VL product (default ProPlus/ProjectPro/VisioPro 2024,
  $env:KMS_OFFICE_PRODUCT override). Warns: ~3 GB download, closes Office apps.
setup-kms.ps1 stays minimal: a non-VL edition is pointed at the bootstrap
one-liner (which can upgrade) rather than duplicating changepk.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Viktor Barzin 2026-06-01 14:35:56 +00:00
parent cf5f91c303
commit e38f34f146
2 changed files with 101 additions and 3 deletions

View file

@ -91,8 +91,10 @@ if ($null -eq $lic) {
Step "No Volume License key installed - detecting edition and fetching its GVLK"
$gvlk = Resolve-WindowsGvlk
if (-not $gvlk) {
Bad "Could not auto-select a GVLK for this edition."
Write-Host " Pick one from https://kms.viktorbarzin.me/#windows and run: slmgr /ipk <GVLK>"
Bad "This edition has no KMS GVLK - Home/retail can't KMS-activate as-is."
Write-Host " To UPGRADE it in place to a Volume License edition (e.g. Home -> Pro) and"
Write-Host " activate, run the interactive bootstrap (it shows the consequences first):"
Write-Host " iwr -UseBasicParsing https://kms.viktorbarzin.me/scripts/kms-bootstrap.ps1 | iex"
return
}
Step "Installing GVLK $gvlk"