SCCM / WMI запрос для выборки всех ноутбуков в домене

Для расстановки специализированного ПО на все переносные устройства компании потребовалась необходимость построения группы компьютеров или SCCM коллекции, которая бы включала в себя все ноутбуки (и другие переносные мобильные системы), работающие в корпоративной сети. Задача оказалась не так проста, как кажется на первый взгляд. Мне сразу не удалось найти свойство системы, которое бы однозначно определяло компьютер как ноутбук или десктоп.

Для начала попробовал отфильтровать мобильные компьютеры с помощью WMI фильтров GPO , и назначить на них установку ПО с помощью групповых политик . Было несколько вариантов составления WMI запросов путем проверки:

  • статуса батареи (она есть только у ноутбуков): SELECT * FROM Win32_Battery WHERE (BatteryStatus <> 0)
  • типа оперативной памяти (SODIMM для ноутбуков): Select * from Win32_PhysicalMemory WHERE (FormFactor = 12 )
  • свойства PCSystemType: SELECT * FROM Win32_ComputerSystem WHERE PCSystemType = 2

Примечание . Возможные значения PCSystemType

Значение Тип системы
0 Unspecified
1 Desktop
2 Mobile
3 Workstation
4 Enterprise Server
5 Small Office and Home Office (SOHO) Server
6 Appliance PC
7 Performance Server
8 Maximum

У каждого из предложенных запросов есть свои плюсы и минусы. Наиболее корректной по идее должна быть фильтрация по значению PCSystemType, но, увы этот класс появился только в Vista, а у нас осталось довольно много компьютеров с устаревшей Windows XP , которые не будут фильтроваться таким запросом.

Более интересным мне показался WMI запрос на определение типа шасси ( ChassisTypes ), содержащийся в классе Win32_SystemEnclosure :

Возможные значения ChassisTypes приведены в таблице:

Значение ChassisTypes Тип системы
1 Other
2 Unknown
3 Desktop (в том числе виртуальные машины)
4 Low Profile Desktop
5 Pizza Box
6 Mini Tower
7 Tower
8 Portable
9 Laptop
10 Notebook
11 Hand Held
12 Docking Station
13 All in One
14 Sub Notebook
15 Space-Saving
16 Lunch Box
17 Main System Chassis
18 Expansion Chassis
19 Sub Chassis
20 Bus Expansion Chassis
21 Peripheral Chassis
22 Storage Chassis
23 Rack Mount Chassis
24 Sealed-Case PC

Таким образом, значение Chassis Types:

  • для ноутбуков: 8 , 9, 10, 11, 12, 14, 18, 21
  • для десктопов: 3, 4, 5, 6, 7, 15, 16
  • для серверов: 17,23

Итоговый WMI запрос будет таким

select * from Win32_SystemEnclosure where ChassisTypes = "8" or ChassisTypes = "9" or ChassisTypes = "10" or ChassisTypes = "11" or ChassisTypes = "12" or ChassisTypes = "14" or ChassisTypes = "18" or ChassisTypes = "21"

Этот WMI фильтр можно легко преобразовать в запрос SCCM, позволяющий построить коллекцию, включающую в себя все ноутбуки в сети.

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_SYSTEM_ENCLOSURE on SMS_G_System_SYSTEM_ENCLOSURE.ResourceID = SMS_R_System.ResourceId where
SMS_G_System_SYSTEM_ENCLOSURE.ChassisTypes in ( "8", "9", "10","11", "12", "14","18","21")

Ну и, наконец, для наглядного представления информации о количественном соотношении десктопов и лаптов в сети, можно построить SCCM отчет:

SELECT
CASE ChassisTypes0
WHEN '8' THEN 'Notebooks'
WHEN '9' THEN 'Notebooks'
WHEN '10' THEN 'Notebooks'
WHEN '11' THEN 'Notebooks'
WHEN '12' THEN 'Notebooks'
WHEN '14' THEN 'Notebooks'
WHEN '18' THEN 'Notebooks'
ELSE 'Desktops'
END AS "Workstation Type", count(distinct sys.name0) as ClientCount from
v_GS_SYSTEM_ENCLOSURE ENC
INNER JOIN
v_R_System SYS ON ENC.ResourceID = SYS.ResourceID
WHERE
sys.client0=1 AND sys.obsolete0=0 AND active0=1
GROUP BY
CASE ChassisTypes0
WHEN '8' THEN 'Notebooks'
WHEN '9' THEN 'Notebooks'
WHEN '10' THEN 'Notebooks'
WHEN '11' THEN 'Notebooks'
WHEN '12' THEN 'Notebooks'
WHEN '14' THEN 'Notebooks'
WHEN '18' THEN 'Notebooks'
ELSE 'Desktops'
END
ORDER BY 2 desc

В нашем случае соотношение настольных ПК и ноутбуков 2832 к 109.

Итак, мы рассмотрели, как с помощью значения атрибута ChassisTypes класса SystemEnclosure построить SCCM коллекцию или создать WMI фильтр групповой политики, позволяющий выбрать все ноутбуки сети.

admin

Share
Published by
admin

Recent Posts

Лучшие дистрибутивы Linux

Если говорить о том, какие лучшие дистрибутивы Linux мы знаем, то этот список может быть…

1 неделя ago

Лучшие браузеры для Ubuntu

Хотя Ubuntu и поставляется со встроенным обозревателем Firefox многие пользователи считают что это не самая…

1 неделя ago

Установка Remmina Ubuntu 16.04 или 16.10

Что такое Remmina? Remmina — это совершенно бесплатный и свободный клиент так называемого удаленного рабочего…

1 неделя ago

Плюсы Ubuntu

Как мы знаем, Ubuntu это самая популярная сборка из систем на базе ядра Linux. У…

1 неделя ago

Выбираем ноутбук для Linux

Выбор ноутбука для каждого пользователя это довольно кропотливый процесс. Люди стараются подобрать ноутбук который будет…

1 неделя ago

Установка Linux рядом с Windows 10

Если вы решили ознакомиться с операционной системой Linux более детально и задались вопросом как установить…

1 неделя ago