--- name: reference_windows_edition_upgrade_rmm description: Verified fleet procedure to upgrade a Windows machine Home->Pro/Pro-for-Workstations via RMM, with the three gotchas (DISM error 50, shutdown /t drop, PfW MAK auto-upgrade). metadata: type: reference --- Verified on ACG-Tech03L 2026-07-06 (Home 26200 -> Win 11 Pro for Workstations, permanently activated). **Procedure (all steps as SYSTEM via `/rmm`, byte-exact via -EncodedCommand):** 1. Probe: EditionID/LicenseStatus (`.rmm-key-probe.ps1` pattern), confirm no logged-in user (`query user`) so a reboot is safe. 2. Flip edition: `changepk.exe /ProductKey VK7JG-NPHTM-C97JM-9MPGT-3V66T` (generic Pro key). Flips EditionID Core->Professional **live** (registry) + sets CBS RebootPending. exit 0. 3. Reboot to finalize (see gotcha #2). 4. Install MAK + activate: `slmgr /ipk ` then `slmgr /ato`; verify `slmgr /xpr` = "permanently activated" and WMI SoftwareLicensingProduct LicenseStatus=1. **Gotcha 1 — DISM is a dead end for online edition change.** `DISM /online /Set-Edition:Professional` returns **Error 50 "Setting an edition is not supported with online images"** even though `/Get-TargetEditions` lists Professional. Use `changepk.exe`, not DISM, for online Home->Pro. **Gotcha 2 — `shutdown /r /t N` is silently DROPPED in the SYSTEM service session.** The command returns exit 0 but the box never reboots (verified twice on tech03l). Also `shutdown /c "comment"` fails outright because the RMM->cmd.exe layer strips the quotes ([[feedback_windows_quote_stripping]]). Reboot reliably with `Restart-Computer -Force` (encoded PS) or `shutdown /r /t 0 /f` (no comment). NOTE: on a fast SSD the edition-upgrade reboot can be <30s of downtime — a 30s-interval last_seen monitor can miss the gap entirely; confirm the reboot by `LastBootUpTime` advancing, not by catching the offline window. `is_connected` is null fleet-wide — track `last_seen` age, never that flag. **Gotcha 3 — the ACG MAK `infrastructure/windows-pro-mak` is a Pro-for-WORKSTATIONS MAK** (mislabeled "Pro"). `slmgr /ipk` of it on a Professional machine AUTO-UPGRADES the edition to ProfessionalWorkstation (a strict superset of Pro), live, **no extra reboot** (verified DALLAS 2026-07-07). If a client genuinely needs *plain* Pro, this key will over-shoot to PfW — there is no plain-Pro MAK in the vault. Billing: each activation consumes one MAK count = $99 to the customer (ACG-internal machines: no invoice, still burns a count). **Gotcha 4 — `changepk.exe` TIMES OUT under SYSTEM but STILL flips the edition. Do NOT treat the timeout as failure — VERIFY EditionID.** Run as SYSTEM via `/rmm`, `changepk.exe /ProductKey ` does not return cleanly (the RMM command comes back `failed` / exit -1 `Command timeout`, or your Start-Process/`&` wrapper hangs to the agent timeout), yet the registry `EditionID` flip to `Professional` DID happen. Always confirm with a one-liner (`Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion' EditionID`) before concluding anything — if it reads `Professional`, proceed to the finalize reboot; the running OS still reports Home in `Win32_OperatingSystem.Caption` until that reboot. (Verified DALLAS 2026-07-07 — the `changepk` command timed out but EditionID was already `Professional`.) **Gotcha 5 — Modern Standby laptops (S0 Low Power Idle) drop the RMM/SC agent when idle/lid-closed, which mimics an endless reboot.** On a Core Ultra / S0-only machine, idle or a closed lid drops Wi-Fi -> agent offline for long stretches (looked like a 25-min "slow reboot"; the box had actually been up 25 days and never rebooted). Before a reboot-driven upgrade on a laptop, pin it awake first: `powercfg /change standby-timeout-ac 0; powercfg /setacvalueindex SCHEME_CURRENT SUB_BUTTONS LIDACTION 0; powercfg /setactive SCHEME_CURRENT` (AC only — safe; DON'T lid-nothing on DC/battery). A command dispatched to an already-offline agent goes `pending` and fires (uncontrolled) on next wake — cancel stale ones with `/rmm cancel`. NOTE: an RDP *target* laptop must STAY awake to be reachable, so keep the AC no-sleep in place.