Oamc

Windows Server 激活检查与 KMS 切换

本页目录

场景

服务器提示需要激活、右下角出「Windows 未激活」水印,或者要把 MAK 换成内网 KMS 统一管理。

前置条件

  • 管理员权限
  • 内网有 KMS 服务器,客户端能通 1688 端口
  • 知道 KMS 地址,或者域里已经发布了 _vlmcs._tcp 的 SRV 记录

配置

:: 看当前状态和剩余天数
slmgr /dli
slmgr /xpr

:: 看详细信息(到期时间、激活类型、密钥类型)
slmgr /dlv

:: 换成内网 KMS
slmgr /skms kms.corp.local:1688
slmgr /ato

MAK 换回来时要重新装密钥:

slmgr /ipk XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
slmgr /ato

验证

slmgr /xpr

应显示「计算机已永久激活」,或者 KMS 的 180 天周期。

# 域里找 KMS 的 SRV 记录
Resolve-DnsName -Name "_vlmcs._tcp" -Type SRV

回滚

:: 清掉手动设置的 KMS 地址,回到默认(DHCP / DNS 自动发现)
slmgr /ckms

坑

  • 时间不同步会导致激活失败,KMS 对时间偏差敏感,先 w32tm /resync。
  • KMS 客户端每 7 天续一次,一个周期 180 天;离线超过 180 天会掉激活。
  • 域里如果自动发布了 KMS,slmgr /ato 会自己找到,不用手填地址。
  • slmgr /dlv 里的「剩余 Windows 重置计数」是 sysprep 次数,和激活无关,别看错。
  • 虚拟机克隆后 CMID 重复可能激活异常,先 sysprep 再激活。
  • 批量服务器用 slmgr /skms 一台台敲很蠢,用组策略或者登录脚本推。