如何在SQL中关联v_GS_Installed_Software与v_configurationitems或v_UpdateInfo
解决v_GS_Installed_Software与配置项/更新信息表的关联问题
直接关联方案:使用v_InstalledSoftware_CI_Map视图
SCCM内置了v_InstalledSoftware_CI_Map视图,专门用于关联已安装软件记录和对应的配置项(CI)。这个视图通过ResourceID、ProductCode、ProductVersion三个字段与v_GS_Installed_Software关联,同时提供CI_ID用于连接v_ConfigurationItems和v_UpdateInfo。
示例SQL查询:
SELECT gsis.ResourceID, gsis.ProductName, gsis.Publisher, gsis.Version, ci.IsLatest, ci.IsExpired, ui.IsSuperseded FROM v_GS_Installed_Software gsis INNER JOIN v_InstalledSoftware_CI_Map map ON gsis.ResourceID = map.ResourceID AND gsis.ProductCode = map.ProductCode AND gsis.ProductVersion = map.ProductVersion INNER JOIN v_ConfigurationItems ci ON map.CI_ID = ci.CI_ID LEFT JOIN v_UpdateInfo ui ON ci.CI_ID = ui.CI_ID
替代方案:基于软件属性的模糊匹配
如果v_InstalledSoftware_CI_Map中缺少部分映射数据,可以通过软件的核心标识字段(产品名称、发布商、版本)与v_UpdateInfo的对应字段进行匹配。注意这种方式可能存在匹配误差,需要根据实际数据调整匹配规则。
示例SQL查询:
SELECT gsis.ResourceID, gsis.ProductName, gsis.Publisher, gsis.Version, ci.IsLatest, ci.IsExpired, ui.IsSuperseded FROM v_GS_Installed_Software gsis LEFT JOIN v_UpdateInfo ui ON gsis.Publisher = ui.Publisher AND gsis.Version = ui.BulletinVersion AND gsis.ProductName LIKE '%' + ui.Title + '%' LEFT JOIN v_ConfigurationItems ci ON ui.CI_ID = ci.CI_ID
注意事项
v_InstalledSoftware_CI_Map仅包含被SCCM识别为配置项的已安装软件,部分自定义或非微软软件可能没有映射记录。- 模糊匹配时,建议优先使用
ProductCode(如果存在)进行精确匹配,避免名称相似导致的错误关联。
内容的提问来源于stack exchange,提问作者Serge Inácio
相关产品推荐
相关产品推荐

