powershell查看windows激活状态最推荐用get-ciminstance:执行get-ciminstance -classname softwarelicensingproduct -filter "name like '%windows%'" | where-object {$_.licensestatus -ne 0} | select-object name, licensestatus, activationstatus, description,其中licensestatus=1表示已授权激活。
powershell 提供了直接、高效的方式查看 windows 激活状态和详细信息,无需第三方工具或图形界面。核心命令是 slmgr.vbs 的 powershell 封装(通过 cscript 调用)以及 windows 自带的 get-ciminstance 和 get-wmiobject(旧版系统可用)。
使用 Get-CimInstance 查询激活状态(推荐,适用于 Win8.1 及以上)
这是最现代、最稳定的方式,基于 CIM(Common Information Model),无需启用 WMI 兼容性组件:
- 运行以下命令获取关键激活信息:
其中 LicenseStatus 值含义如下:
• 0 = 未授权
• 1 = 授权(已激活)
• 2 = 试用期
• 4 = 通知期(即将过期)
• 6 = 已延期(如 KMS 缓存激活)
- 要查看更完整的系统级激活信息(如 KMS 主机、剩余宽限期等),可运行:
调用 slmgr.vbs 获取传统详细报告
Windows 内置的 slmgr.vbs 脚本仍是最全面的诊断工具,PowerShell 可以安全调用它:
- 查看简明激活状态(是否已激活、许可证类型、ID):
- 显示完整许可证信息(含安装 ID、部分密钥、有效期、KMS 计数等):
- 检查当前 KMS 连接与响应(仅限企业批量激活环境):
快速判断是否真正激活(实用小技巧)
有时系统显示“已激活”,但实际可能只是“已授权”而非“已验证联网激活”。可结合以下方式交叉确认:
- 运行
(Get-CimInstance -ClassName SoftwareLicensingProduct -Filter "Name like '%Windows%'").LicenseStatus—— 返回 1 才代表真正激活成功; - 检查
ActivationStatus属性:若为 True,且RemainingGracePeriod为 0,则说明无宽限期,状态稳定; - 对比
OA3xOriginalProductKey(OEM 系统保留的原始密钥)与当前激活密钥是否匹配,有助于识别是否被替换或误激活。
注意事项与常见问题
执行上述命令需以管理员身份运行 PowerShell,否则部分属性(如原始密钥、KMS 地址)可能返回空值或拒绝访问。
- 在 Windows 10/11 家庭版中,
SoftwareLicensingService类可能受限,优先使用/dli和/dlv; -
Get-WmiObject在新版 PowerShell(7+)中默认禁用 WMI v1 支持,应改用Get-CimInstance; - 若返回 “No instance(s) available”,可能是系统未安装软件许可服务(极罕见),或当前用户权限不足。











