AB
AiBoss站
教程

用命令行激活 Windows:OSLicense 与 slmgr 的完整操作步骤

教程

用命令行激活 Windows:OSLicense 与 slmgr 的完整操作步骤

面向批量部署与终端操作场景,说明如何用 PowerShell 的 OSLicense 模块安装产品密钥并联网激活 Windows,附旧版 slmgr 命令对照、电话激活入口与常见错误码排查。

Windows 的激活通常在「设置」应用里点几下就能完成,但在需要管理一批机器、或者刚做完系统恢复、又或者习惯用终端操作的情况下,走命令行会更快、也更容易脚本化。这篇教程讲的就是这件事:在 PowerShell 里用 Invoke-OSLicense 系列命令安装产品密钥、连接 KMS 服务器并完成激活,同时给出旧版 slmgr 命令的对照关系,以及激活失败时的排查方向。

需要先说明适用范围:命令行激活主要面向批量授权(volume license)场景,比如企业统一部署、批量装机、出厂镜像恢复后的重新激活。普通个人用户如果手上有正规零售密钥,用「设置」应用激活更省事。本教程只讲「你已经有合法密钥或合法 KMS 服务器」时该怎么做,不涉及任何绕过授权的做法。

另外要提醒一点:从第三方站点下载的「激活工具」或泄露密钥风险很高,这类程序经常夹带恶意软件。请只使用自己购买或单位配发的密钥,以及单位内部的授权服务器。

准备工作

确认你属于哪种激活场景

动手之前先分清手上的凭据类型,后面的命令选择完全取决于它:

  • 零售或 OEM 密钥:从微软或正规经销商购买,密钥形如 XXXXX-XXXXX-XXXXX-XXXXX-XXXXX。部分品牌机把 OEM 密钥写在固件里,可以直接读出来。
  • 批量授权密钥 + KMS 服务器:单位统一采购,激活时需要先指定 KMS 服务器地址,再触发激活。
  • 已激活但需要换密钥:先卸载旧密钥、清理残留,再安装新密钥。

如果你不确定自己属于哪一类,先看密钥来源:随机器附带或单独购买的属于前两类中的零售/OEM;由 IT 部门统一下发的通常是批量授权。

环境与权限要求

  • 需要管理员权限的 PowerShell。普通权限下安装密钥和激活都会被拒绝。
  • 联网激活需要能访问微软的激活服务;使用 KMS 时需要能连通单位内部的 KMS 服务器(通常是 1688 端口,具体以你所在环境的配置为准)。
  • 系统版本会影响命令可用性:Invoke-OSLicense 属于较新的 OSLicense 模块,旧版本系统上可能不存在;旧版 slmgr 在较老的版本和特定企业配置下仍然可用,但已被官方标记为弃用。

打开管理员 PowerShell

在开始菜单搜索 PowerShell,在结果上右键选择「以管理员身份运行」。后续所有命令都在这个窗口里执行。窗口标题栏带「管理员」字样才说明权限到位。

操作步骤

第一步:从固件读取 OEM 密钥(可选)

如果机器是品牌整机、出厂时密钥已写入 BIOS/UEFI,可以先把密钥读出来,省去手动输入:

(Get-CimInstance -Query "select * from SoftwareLicensingService").OA3xOriginalProductKey

返回一串 25 位密钥说明固件里有 OEM 密钥;返回空值说明这台机器没有写入固件密钥,需要用手上的密钥继续下一步。读出来的密钥请妥善保管,不要贴到公开场合。

第二步:安装产品密钥

使用 OSLicense 模块安装密钥:

Invoke-OSLicense -InstallProductKey -ProductKey "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX"

把引号里的占位符换成你的真实密钥。命令执行成功一般不会有冗长的输出,失败则会返回错误码,错误码的含义见后面的排查一节。

第三步:联网激活

密钥装好之后触发激活:

Invoke-OSLicense -Activate

如果系统能连上微软激活服务,这一步会直接完成激活,系统随后会提示产品已成功激活。如果返回失败,先确认网络是否可达,再考虑是否需要改用 KMS 或电话激活。

第四步:指定 KMS 服务器(批量授权场景)

批量授权环境不走微软的公共激活服务,而是连单位内部的 KMS 主机。OSLicense 模块提供了对应的参数:

Invoke-OSLicense -KmsServer "kms.example.internal"

把地址换成你所在环境的 KMS 主机名或 IP。设置完服务器后再执行一次 Invoke-OSLicense -Activate 完成激活。KMS 激活有续期周期,机器需要定期能连上服务器,否则会掉激活——具体周期以你所在组织的授权条款为准。

第五步:更换密钥前先清理旧密钥

如果机器上已经装过别的密钥,直接装新密钥可能报错。这时先用旧命令卸载并清理:

slmgr /upk
slmgr /cpky

/upk 卸载当前产品密钥,/cpky 清除注册表中缓存的密钥信息。两条都执行完,再回到第二步安装新密钥。注意这两条命令属于旧版 slmgr 体系,虽然目前仍可用,但已被标记为弃用,未来版本可能移除。

旧版 slmgr 命令对照

很多现存的部署脚本、文档和运维习惯仍然基于 slmgr。如果你维护的脚本暂时不能改,或者所在环境只支持旧方式,可以按下表对应到 OSLicense 的等价写法:

任务旧版 slmgrOSLicense 等价写法
安装密钥slmgr /ipk KEYInvoke-OSLicense -InstallProductKey
激活slmgr /atoInvoke-OSLicense -Activate
设置 KMS 服务器slmgr /skms SERVERInvoke-OSLicense -KmsServer

迁移脚本时建议逐条替换并单独验证,不要一次性全改完再测——激活失败时很难定位是哪一步出的问题。

一个完整示例

下面是一台品牌整机做完系统恢复后,用固件里的 OEM 密钥重新激活的完整流程。所有命令都在管理员 PowerShell 中依次执行。

场景说明

机器是品牌整机,密钥写在 UEFI 里,系统重装后处于未激活状态,网络正常,不需要 KMS。

执行过程

# 1. 读取固件中的 OEM 密钥
(Get-CimInstance -Query "select * from SoftwareLicensingService").OA3xOriginalProductKey

# 2. 用读到的密钥安装(把返回值填入下面的占位符)
Invoke-OSLicense -InstallProductKey -ProductKey "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX"

# 3. 联网激活
Invoke-OSLicense -Activate

三步都无报错返回后,系统会提示产品已成功激活。可以在「设置 → 系统 → 激活」里确认状态,也可以回到 PowerShell 用旧命令查询当前授权详情:

slmgr /dlv

这条命令会弹出授权信息窗口,包含授权状态、密钥类型(零售、OEM、批量)、剩余激活天数等。批量授权环境下还能看到 KMS 主机地址和续期间隔。

换机或换密钥时的变体

如果这台机器之前装过别的密钥,把第 2 步之前插入清理动作:

slmgr /upk
slmgr /cpky
Invoke-OSLicense -InstallProductKey -ProductKey "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX"
Invoke-OSLicense -Activate

如果是批量授权环境,在第 2 步和第 3 步之间插入 KMS 服务器设置:

Invoke-OSLicense -KmsServer "kms.example.internal"
Invoke-OSLicense -Activate

激活失败时的排查

改用电话激活

联网激活走不通(比如网络受限、激活服务不可达)时,可以走电话激活通道。按 Windows + R 打开运行框,输入:

slui 4

回车后会弹出电话激活向导,按屏幕提示选择所在国家或地区、拨打对应号码,把向导里显示的分组数字报给语音系统,再把返回的确认号填回去即可完成激活。整个过程不需要联网。

常见错误码

命令行激活失败时会返回错误码,下面几个是较常见的:

  • 0xC004F025:产品密钥被阻止。通常与批量授权状态有关,需要检查单位的授权是否仍然有效、密钥是否已被吊销。
  • 0xC004F050:BIOS 中的密钥与当前安装的版本不匹配。常见于把家庭版机器重装成专业版,或反过来。解决办法是安装与固件密钥对应的版本,或者改用与该版本匹配的密钥。
  • 0x803F7001:密钥无效或未找到。先逐位核对密钥有没有输错、有没有把数字 0 和字母 O 弄混,再确认密钥是否适用于当前版本。

错误码只是线索,具体原因还要结合 slmgr /dlv 输出的授权状态一起看。

注意事项

  • 旧命令已被弃用:slmgr 属于旧版 VBScript 体系,已被官方标记为弃用。它目前在较老版本和特定企业配置下仍能工作,但新脚本应优先使用 OSLicense 模块,避免将来升级后失效。
  • 不要用第三方激活工具:网上流传的「激活器」和泄露密钥经常捆绑恶意软件,且随时可能失效。请使用正规渠道获得的密钥或单位配发的授权服务器。
  • 命令行激活不是给所有人的:它主要服务于批量部署和恢复场景。普通用户手上有零售密钥时,用「设置」应用激活更直接,也少一层出错可能。
  • KMS 需要持续连通:KMS 激活不是一次性的,机器需要周期性联系服务器续期。长期离线的机器会掉激活,部署时要考虑这一点。
  • 密钥属于敏感信息:从固件读出的 OEM 密钥、批量授权密钥都不要写进公开的脚本仓库或聊天记录。
  • 版本与功能以官网为准:OSLicense 模块的可用版本、参数名称、KMS 续期周期、各版本的授权政策都可能随更新变化,执行前请以微软官网当前公布的信息为准。