使用 WMI 查询检查 Windows 许可证状态的最佳方法是什么

What is the best way to check Windows License Status using WMI query

我正在尝试找出使用 WMI 查询检查 Windows 许可证状态的最佳方法。查询应该 return 一行指示许可证状态,我希望它尽可能通用,以便我可以 运行 它在许多计算机和不同版本的操作系统上。

目前有以下一个:

SELECT LicenseStatus, Name, ApplicationID FROM SoftwareLicensingProduct

问题是它 return 有很多行。例如,如果安装了 Office,它也会包含在查询结果中,我不知道如何限制结果。

如果您最初不坚持纯 wmi 查询,请尝试下面给出的 CLI 命令,包括输出:

==>for /F "tokens=*" %G in ('where slmgr.vbs') do @cscript "%~G" /dli

Name: Windows(R), Core edition
Description: Windows(R) Operating System, OEM_COA_NSLP channel
Partial Product Key: ABCDE
License Status: Licensed

==>

现在您可以(在一个简单的 .bat 脚本中)将它与

结合起来
==>wmic path SoftwareLicensingProduct where "PartialProductKey='ABCDE'" get LicenseStatus, Name, ApplicationID, PartialProductKey, Description /value

ApplicationID=55c92734-d682-4d71-983e-d6ec3f16059f
Description=Windows(R) Operating System, OEM_COA_NSLP channel
LicenseStatus=1
Name=Windows(R), Core edition
PartialProductKey=ABCDE

==>

或者直接查看 slmgr.vbs 以了解 Microsoft 解决方案。