У меня есть следующий WQL-запрос:
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_EndpointProtectionStatus on SMS_G_System_EndpointProtectionStatus.ResourceID = SMS_R_System.ResourceId where SMS_G_System_EndpointProtectionStatus.SignatureOlderThan7Days = 1
и я могу запустить его, используя
Invoke-CMWmiQuery -Query $WQL -Option Lazy
Но есть ли способ ограничить это запуском с определенной коллекцией устройств, как вы можете сделать в консоли SCCM?
Спасибо!
Вы можете создать запрос SCCM, а затем запустить его для коллекции устройств. https://docs.microsoft.com/en-us/sccm/core/servers/manage/create-queries
Я нашел ответ на Reddit, спасибо u / Johnny_Script:
Чтобы ограничить результаты одной коллекцией, вам нужно добавить
join SMS_FullCollectionMembership on SMS_FullCollectionMembership.ResourceID = SMS_R_System.ResourceID
в свой запрос, чтобы у вас был доступ к данным коллекции. Тогда вам нужно добавитьAND SMS_FullCollectionMembership.CollectionID = 'ABC0001'
до конца запроса, чтобы ограничить конкретную коллекцию. Обновите ABC0001 с помощью CollectionID одного из ваших CollectionID. Окончательный WQL-оператор должен выглядеть так:
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_EndpointProtectionStatus on SMS_G_System_EndpointProtectionStatus.ResourceID = SMS_R_System.ResourceId JOIN SMS_FullCollectionMembership on SMS_FullCollectionMembership.ResourceID = SMS_R_System.ResourceID
WHERE SMS_G_System_EndpointProtectionStatus.SignatureOlderThan7Days = 1 and SMS_FullCollectionMembership.CollectionID = 'ABC0001'