我需要获取 Office 已激活或需要激活,并且我在 WMI 中使用普通查询:
ManagementObjectSearcher searcher =
new ManagementObjectSearcher("root\\CIMV2",
"SELECT * FROM " + wmi + " WHERE Name LIKE \"%Office%\" ");
foreach (ManagementObject queryObj in searcher.Get())
{
queryObj["Name"].ToString() + "', '" + queryObj["LicenseStatus"].ToString();
但是这个查询有时需要 45/50 秒,现在我必须了解如何替换它或加快它,因为如果我使用 CMD 中的这个命令
WMIC /NAMESPACE:\\root\CIMV2 PATH SoftwareLicensingProduct WHERE LicenseStatus=1 GET Name
它会在 2 秒内响应!但是只有在运行外部命令并且从 CMD 中我没有完全查询访问权限时,我才能在 C# 中集成 CMD
此查询工作:
WMIC /NAMESPACE:\\root\CIMV2 PATH SoftwareLicensingProduct WHERE "name like '%Office%'" Get Name
现在添加 LicenseStatus=1
WMIC /NAMESPACE:\\root\CIMV2 PATH SoftwareLicensingProduct WHERE "name like '%Office%'" and LicenseStatus=1 Get Name
并且查询不起作用,为什么?