В рамках инвентаризации ОС на ПК в нашей компании, возникла необходимость создать коллекцию SCCM, которая бы включала все ПК, исключая ПК с Windows 7 SP1. На первом этапе создадим коллекцию компьютеров, которая бы включала все компьютеры с Windows 7, независимо от установленного Service Pack-а.
Вот пример простого запроса для коллекции “All Windows 7 computers”:
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_OPERATING_SYSTEM on SMS_G_System_OPERATING_SYSTEM.ResourceId = SMS_R_System.ResourceId where SMS_G_System_OPERATING_SYSTEM.Caption like «%Windows 7%»
Запрос на создание коллекции с компьютерами Windows 7 без SP1 (“Windows 7 computers without SP1”) будет несколько сложнее, также область действия данного запроса необходимо ограничить ранее созданной коллекцией “All Windows 7 computers”, т.е. нам придется реализовать вложенный запрос:
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_COMPUTER_SYSTEM on SMS_G_System_COMPUTER_SYSTEM.ResourceID = SMS_R_System.ResourceId where SMS_G_System_COMPUTER_SYSTEM.Name not in (select distinct SMS_G_System_COMPUTER_SYSTEM.Name from SMS_R_System inner join SMS_G_System_COMPUTER_SYSTEM on SMS_G_System_COMPUTER_SYSTEM.ResourceID = SMS_R_System.ResourceId inner join SMS_G_System_OPERATING_SYSTEM on SMS_G_System_OPERATING_SYSTEM.ResourceId = SMS_R_System.ResourceId where SMS_G_System_OPERATING_SYSTEM.Caption like «%Windows 7%» and SMS_G_System_OPERATING_SYSTEM.CSDVersion = «Service Pack 1»)
Добрый день! Такой вопрос: а как создать, к примеру, коллекцию компьютеров с ОС Windows 7 x64 и на которых установлен Internet Explorer 9? Пробовал связывать SMS_R_SYSTEM с SMS_G_System_INSTALLED_SOFTWARE по ResourceId, но ничего не получилось.
Я бы сделал такое условие:
….. where SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName like «%Windows Internet Explorer 9%»
Вот эти два запроса по идее запрашивают количество рабочих станций и должны показать один результат? А у меня разница.(
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_OPERATING_SYSTEM on SMS_G_System_OPERATING_SYSTEM.ResourceId = SMS_R_System.ResourceId where SMS_G_System_OPERATING_SYSTEM.ProductType = 1
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.OperatingSystemNameandVersion like «%Workstation%»
Подозреваю, что первый wql запрос возвражает большее количество компьютеров. На мой взгляд он правильнее.
%Workstation% больше.