Есть ли у кого-нибудь запрос, показывающий список серверов БЕЗ выбранной программы? т.е. агент SCOM, антивирус, агент резервного копирования.
Этот базовый SQL покажет все компьютеры, на которых не установлено программное обеспечение, соответствующее forefront
.
SELECT ResourceID, Name0, SMS_Unique_Identifier0
FROM v_R_System
WHERE ResourceID NOT IN
(
SELECT ResourceID
FROM v_GS_INSTALLED_SOFTWARE
WHERE ProductName0 LIKE '%forefront%'
)
Вы можете заменить forefront
с названием интересующей вас программы.
Идея состоит в том, чтобы создать запрос, который предоставит вам все компьютеры, делать установите программное обеспечение, затем используйте NOT IN
повернуть его и получить компьютеры, которые не установить программное обеспечение.
Вот он снова, но в WQL для запроса:
SELECT SMS_R_System.Name
FROM SMS_R_System
WHERE SMS_R_System.ResourceId NOT IN
(
SELECT SMS_G_System_Installed_Software.ResourceId
FROM SMS_G_System_Installed_Software
WHERE SMS_G_System_Installed_Software.ProductName LIKE "%forefront%"
)
Я нашел использование ARP более точным:
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
where SMS_R_System.ResourceId not in
(
select SMS_R_System.ResourceId from SMS_R_System inner join SMS_G_System_ADD_REMOVE_PROGRAMS on SMS_G_System_ADD_REMOVE_PROGRAMS.ResourceID = SMS_R_System.ResourceId where SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName LIKE "%<Application Name>%"
)
and SMS_R_System.Client = 1
and SMS_R_SYSTEM.OperatingSystemNameAndVersion like 'Microsoft Windows NT%Server%'