Я пытаюсь создать пользовательский отчет в SCCM, который сообщит мне, установлен ли определенный КБ на пуле серверов, и вернет двоичный ответ (в этом случае да или нет).
Проблема в том, что я не могу заставить его вернуть статус только одного КБ. Я управляю этим:
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
, по одному для каждого обнаруженного обновления. Все записи для обновлений, которые не являются нужными КБ имеют значение 'No'
forKB Installed
, но они все еще перечислены. Я SELECT DISTINCT
пытался увидеть, если это дало мне другие результаты, но это не так.
Что я хочу, чтобы определить, если KB присутствует, и вернуться, если это или нет. Я чувствую, что даже не задаю фундаментальный вопрос «установлен или нет» с этим кодом, но я не могу придумать способ задать это по-другому. Это то, что я должен делать в Построителе отчетов, а не в запросе?
Отказ от ответственности: я не протестировал это на репрезентативном наборе данных, поскольку вы его не предоставили, но я думаю, что это должно сделать то, чего вы пытаетесь достичь:
Таким образом, это эффективно возвращает отдельный список всех компьютеров и
LEFT JOIN
s это к результирующему набору только записей для рассматриваемого обновления для каждого данного компьютера. Таким образом , когда поле возвращается изLEFT JOIN
isNULL
, обновление не было установлено и наоборот.И чтобы ответить на ваш вопрос, я лично думаю, что хорошо делать это в запросе (в отличие от вашего отчета) — это там, где я бы это сделал.
Пожалуйста, выполните этот запрос ниже:
В моей тестовой лаборатории есть несколько записей, соответствующих одному номеру КБ. Этот метод не может быть идеальным решением.

Можно попробовать встроенный отчет:
\Мониторинг\Обзор\Отчеты\Отчеты\Обновления Программного Обеспечения-Соответствие Требованиям\
Соответствие 8-компьютеры в определенном состоянии соответствия для обновления (вторичный)