软件清单的 WQL 查询

Posted

技术标签:

【中文标题】软件清单的 WQL 查询【英文标题】:WQL Query for Software inventory 【发布时间】:2015-11-04 07:46:51 【问题描述】:

我必须在 sccm 中进行查询以获取所有安装了特定软件的客户端。但我不知道如何完成这项工作。 我试过了,但是不够准确。

select SMS_G_System_SYSTEM.Name from  SMS_R_System inner join SMS_G_System_SYSTEM on SMS_G_System_SYSTEM.ResourceID = SMS_R_System.ResourceId inner join SMS_G_System_SoftwareFile on SMS_G_System_SoftwareFile.ResourceID = SMS_R_System.ResourceId where SMS_G_System_SoftwareFile.FileName = "program.exe" and SMS_G_System_SoftwareFile.FileVersion > "version" and SMS_R_System.Client = 1

我想检查控制面板中的程序。我用这个查询试过这个:

select SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client from SMS_R_System  inner join SMS_G_System_COMPUTER_SYSTEM on SMS_G_System_COMPUTER_SYSTEM.ResourceID = SMS_R_System.ResourceId  where SMS_G_System_COMPUTER_SYSTEM.Name not in  (select distinct SMS_G_System_COMPUTER_SYSTEM.Name  from SMS_R_System  inner join SMS_G_System_COMPUTER_SYSTEM on SMS_G_System_COMPUTER_SYSTEM.ResourceID = SMS_R_System.ResourceId  inner join SMS_G_System_ADD_REMOVE_PROGRAMS on SMS_G_System_ADD_REMOVE_PROGRAMS.ResourceID = SMS_R_System.ResourceId  where SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName like "%program%")

但是这个没有给我任何结果。

感谢您的帮助!

【问题讨论】:

【参考方案1】:

SCCM 的内置报告提供了一种超级简单的方法来查看所有安装了特定应用程序的系统。那不适合你吗?

如果您需要查询,这里有一个基于谷歌浏览器的示例

select SCCM.Name0
,CAT.[ProductName0]
,CAT.[ProductVersion0]
,CAT.[Publisher0]
,CAT.[NormalizedName]</code>


FROM v_GS_INSTALLED_SOFTWARE_CATEGORIZED as CAT
join v_R_System as SCCM on CAT.ResourceID = SCCM.ResourceID
where CAT.[ProductName0] like '%Google Chrome%'

这将返回系统的名称,然后是有关应用程序的一堆信息。

【讨论】:

感谢您的回答,但如果我想保存它会出现语法错误。

以上是关于软件清单的 WQL 查询的主要内容,如果未能解决你的问题,请参考以下文章

WQL 子查询作为字段值,CIMV2 WMI WQL 查询用于 WMI-Filter

软件包管理RPM与YUM

Mac 神兵利器 极简软件清单

Linux 软件安装与卸载之RPM

SCCM2012软件清单收集问题(本人technet论坛转入)

软件清单