SCCM 报告服务器上的 return KB 状态

SCCM report to return KB status on servers

我正在尝试在 SCCM 中创建一个自定义报告,它将告诉我是否在服务器池上安装了特定的知识库,以及 return 二进制答案(在这种情况下,是或否)。

我遇到的问题是我无法将其设置为 return 只有一个 KB 的状态。我是运行这个:

SELECT
 SYS.Name0 'Computer',
 SYS.operatingSystem0 'OS',
 UIN.Title 'Update',
 CASE
  WHEN UIN.Title LIKE '%KB3092627%' THEN 'Yes'
  ELSE 'No'
  END 'KB Installed'

FROM v_R_System SYS
 INNER JOIN v_UpdateComplianceStatus UCS ON SYS.ResourceID = UCS.ResourceID
 INNER JOIN v_UpdateInfo UIN ON UCS.CI_ID = UIN.CI_ID

WHERE SYS.operatingSystem0 LIKE '%Server 2008%'

ORDER BY SYS.Name0

但每个 SYS.Name0 我都会得到数百个结果,每个检测到的更新都有一个。所有不是所需 KB 的更新记录的 KB Installed 的值为 'No',但它们仍被列出。我试过 SELECT DISTINCT 看看它是否给我带来了不同的结果,但没有。

我想要的是确定 KB 是否存在,以及 return 是否存在。我觉得我什至没有用这段代码问 "Is installed or not" 的基本问题,但我想不出一种不同的方式来问这个问题。这是我应该在 Report Builder 而不是查询中做的事情吗?

免责声明:我没有在代表性数据集上对此进行测试,因为您没有提供,但我认为这应该可以实现您想要实现的目标:

SELECT DISTINCT
    s1.Name0 'Computer',
    s1.operatingSystem0 'OS',
    CASE WHEN matches.Computer IS NULL THEN 'No' ELSE 'Yes' END 'KB Installed'
FROM v_R_System s1
LEFT JOIN
(
    SELECT s2.Name0 'Computer',
    FROM v_R_System s2
    INNER JOIN v_UpdateComplianceStatus UCS ON s2.ResourceID = UCS.ResourceID
    INNER JOIN v_UpdateInfo UIN ON UCS.CI_ID = UIN.CI_ID
    WHERE UIN.Title LIKE '%KB3092627%'
) AS matches ON s1.Name0 = matches.Computer
WHERE s1.operatingSystem0 LIKE '%Server 2008%'
ORDER BY s1.Name0

因此,这实际上是 returns 所有计算机的不同列表,并且 LEFT JOIN 将其添加到每个给定计算机的相关更新记录的结果集中。因此,当 LEFT JOIN 返回的字段是 NULL 时,更新尚未安装,反之亦然。

为了回答你的问题,我个人认为在查询中这样做很好(而不是在你的报告中以某种方式)——我会在这做。

请运行以下查询:

SELECT DISTINCT 
 SYS.Name0 'Computer',
 SYS.Operating_System_Name_and0 'OS',
 UIN.Title 'Update',
 CASE
  WHEN UIN.Title LIKE '%KB3079343%' THEN 'Yes'
  ELSE 'No'
  END 'KB Installed'

FROM v_R_System SYS
 left JOIN v_UpdateComplianceStatus UCS ON SYS.ResourceID = UCS.ResourceID
 left JOIN v_UpdateInfo UIN ON UCS.CI_ID = UIN.CI_ID

WHERE  UIN.Title LIKE '%KB3079343%'


ORDER BY SYS.Name0

在我的测试实验室中,有多个记录对应一个 KB 号。此方法可能不是完美的解决方案。

您可以试试内置报告: \Monitoring\Overview\Reporting\Reports\Software 更新 - 合规性\ 合规性 8 - 处于更新的特定合规性状态的计算机(次要)