Запрос коллекции пользователей SCCM: user=inADGroup & software=Installed

Я хотел бы написать запрос для пользовательской коллекции в SCCM. Наш ИТ-отдел хотел бы работать с тремя различными коллекциями пользователей для каждого программного пакета:

  • [softwareName] - Установлено
  • [softwareName] - Установить
  • [имя_программы] - удалить

В основном система работает следующим образом:

  • Установлено: содержит пользователей, которые находятся в группе программного обеспечения AD и имеют программное обеспечение, установленное на их компьютере
  • Установить: содержит пользователей, которые находятся в группе программного обеспечения AD, но еще не установили программное обеспечение (пакет будет назначен этой группе)
  • Удалить: содержит пользователей, у которых на компьютере установлено программное обеспечение, но они больше не входят в группу AD.

Я знаю, что состояние установки можно отслеживать с помощью "мониторинга", но я хотел бы иметь решение, как указано выше.

Вопрос: У меня проблемы с написанием запроса для "установленной" группы. Мой фрагмент кода выглядит следующим образом:

select
SMS_R_USER.ResourceID,SMS_R_USER.ResourceType,SMS_R_USER.Name,SMS_R_USER.UniqueUserName,SMS_R_USER.WindowsNTDomain 
from 
SMS_R_User 
where 
SMS_R_User.SecurityGroupName = "DOMAIN\\GROUP" 

Пока это работает, я теперь добавляю часть для запроса поиска продукта:

and 
select
SMS_R_System_ADD_REMOVE_PROGRAMS.ProdID
from
SMS_R_System_ADD_REMOVE_PROGRAMS
where
SMS_R_System_ADD_REMOVE_PROGRAMS.ProdID 
like 
"{PRODUCTCODE}"

Эта часть не работает, я получаю "синтаксическую ошибку или не поддерживается в представлении разработки SCCM для запросов". Мне хорошо известно, что может быть синтаксическая ошибка, но у меня также есть ощущение, что система SMS_R_System не поддерживается в дизайне запросов коллекции пользователей. Я новичок в SQL, но я надеялся на несколько советов. Спасибо!

РЕДАКТИРОВАТЬ: используя SCCM 1710

1 ответ

Решение

Решил сам

ПОЛЬЗОВАТЕЛИ В ГРУППЕ AD С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ, УСТАНОВЛЕННЫМ НА УСТРОЙСТВЕ

select
SMS_R_User.UniqueUserName, SMS_R_System.name,SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName, SMS_G_System_ADD_REMOVE_PROGRAMS.ProdID,SMS_G_System_ADD_REMOVE_PROGRAMS_64.DisplayName, SMS_G_System_ADD_REMOVE_PROGRAMS_64.ProdID
from SMS_R_System
INNER JOIN SMS_UserMachineRelationship ON SMS_UserMachineRelationship.ResourceId = SMS_R_System.ResourceId
INNER JOIN SMS_R_User ON SMS_UserMachineRelationship.UniqueUserName = SMS_R_User.UniqueUserName
LEFT OUTER JOIN SMS_G_System_ADD_REMOVE_PROGRAMS ON SMS_G_System_ADD_REMOVE_PROGRAMS.ResourceID = SMS_R_System.ResourceId AND SMS_G_System_ADD_REMOVE_PROGRAMS.ProdID = "{1441FE72-8D71-4B05-B89F-8C3DA0D2D3A6}"
LEFT OUTER JOIN SMS_G_System_ADD_REMOVE_PROGRAMS_64 ON SMS_G_System_ADD_REMOVE_PROGRAMS_64.ResourceID = SMS_R_System.ResourceId AND SMS_G_System_ADD_REMOVE_PROGRAMS_64.ProdID = "{1441FE72-8D71-4B05-B89F-8C3DA0D2D3A6}"
where (SMS_R_User.SecurityGroupName = "BAMBEL\\SCM_TST_BVO") 
AND 
SMS_UserMachineRelationship.Types = 1
AND 
( SMS_G_System_ADD_REMOVE_PROGRAMS_64.DisplayName <> "" OR SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName <> "" OR SMS_G_System_ADD_REMOVE_PROGRAMS_64.DisplayName <> NULL OR SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName <> NULL)

ПОЛЬЗОВАТЕЛИ В AD GROUP С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ, НЕ УСТАНОВЛЕННЫМ НА УСТРОЙСТВЕ

select
SMS_R_User.UniqueUserName, SMS_R_System.name,SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName, SMS_G_System_ADD_REMOVE_PROGRAMS.ProdID,SMS_G_System_ADD_REMOVE_PROGRAMS_64.DisplayName, SMS_G_System_ADD_REMOVE_PROGRAMS_64.ProdID
from SMS_R_System
INNER JOIN SMS_UserMachineRelationship ON SMS_UserMachineRelationship.ResourceId = SMS_R_System.ResourceId
INNER JOIN SMS_R_User ON SMS_UserMachineRelationship.UniqueUserName = SMS_R_User.UniqueUserName
LEFT OUTER JOIN SMS_G_System_ADD_REMOVE_PROGRAMS ON SMS_G_System_ADD_REMOVE_PROGRAMS.ResourceID = SMS_R_System.ResourceId AND SMS_G_System_ADD_REMOVE_PROGRAMS.ProdID = "{1441FE72-8D71-4B05-B89F-8C3DA0D2D3A6}"
LEFT OUTER JOIN SMS_G_System_ADD_REMOVE_PROGRAMS_64 ON SMS_G_System_ADD_REMOVE_PROGRAMS_64.ResourceID = SMS_R_System.ResourceId AND SMS_G_System_ADD_REMOVE_PROGRAMS_64.ProdID = "{1441FE72-8D71-4B05-B89F-8C3DA0D2D3A6}"
where (SMS_R_User.SecurityGroupName = "BAMBEL\\SCM_TST_BVO") 
AND 
SMS_UserMachineRelationship.Types = 1
AND 
( SMS_G_System_ADD_REMOVE_PROGRAMS_64.DisplayName IS NULL AND SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName IS NULL)
Другие вопросы по тегам