SCCM / WMI заявка за извличане на всички лаптопи в даден домейн

За да се организира специализиран софтуер за всички преносими устройства на компанията, беше необходимо да се изгради група от компютри или колекции SCCM, които да включват всички лаптопи (и други преносими мобилни системи), които работят в корпоративната мрежа. Задачата не беше толкова проста, колкото изглежда на пръв поглед. Веднага не можах да намеря системна собственост, която би идентифицирала уникално компютъра като лаптоп или десктоп.

Първо се опитах да филтрирам мобилни компютри, използвайки WMI GPO филтри, и да им възложа инсталиране на софтуер, използвайки групови правила. Имаше няколко опции за отправяне на WMI заявки чрез проверка:

  • състояние на батерията (само лаптопи имат): ИЗБЕРЕТЕ * ОТ Win32_Battery WHERE (BatteryStatus 0)
  • тип RAM (SODIMM за лаптопи): Изберете * от Win32_PhysicalMemory WHERE (FormFactor = 12))
  • Свойства на PCSystemType: ИЗБЕРЕТЕ * ОТ Win32_ComputerSystem WHERE PCSystemType = 2

забележка. Възможни стойности за PCSystemType

стойностТип на системата
0неуточнен
1Desktop
2подвижен
3Workstation
4Enterprise сървър
5Сървър за малък офис и домашен офис (SOHO)
6Уред бр
7Изпълняващ сървър
8максимален

Всяка от предложените заявки има своите плюсове и минуси. Най-правилната идея трябва да е филтрирането по стойността на PCSystemType, но, уви, този клас се появи само във Vista, а ние все още имаме доста компютри с остарял Windows XP, които няма да бъдат филтрирани от такава заявка.

По-интересно за мен беше WMI заявката за определяне на типа на шасито (ChassisTypes), съдържащи се в класа Win32_SystemEnclosure:

Възможни стойности ChassisTypes са дадени в таблицата:

ChassisTypes ValueТип на системата
1друг
2неизвестен
3Настолен компютър (включително виртуални машини)
4Работен плот с нисък профил
5Кутия за пица
6Мини кула
7кула
8портативен
9лаптоп
10тетрадка
11Ръчно държан
12Докинг станция
13Всичко в едно
14Sub бележник
15Пестящ място
16Кутия за обяд
17Основно шаси на системата
18Шаси за разширение
19Под шаси
20Шаси за разширяване на автобуса
21Периферно шаси
22Шаси за съхранение
23Шаси за монтиране на багажник
24Запечатан корпус бр

Значението на видовете шаси е:

  • за лаптопи: 8, 9, 10, 11, 12, 14, 18, 21
  • за настолни компютри: 3, 4, 5, 6, 7, 15, 16
  • за сървъри: 17.23

Получената WMI заявка ще бъде така

изберете * от Win32_SystemEnclosure, където ChassisTypes = "8" или ChassisTypes = "9" или ChassisTypes = "10" или ChassisTypes = "11" или ChassisTypes = "12" или ChassisTypes = "14" или ChassisTypes = "18" или ChassisTypes = " 21 "

Този WMI филтър може лесно да бъде преобразуван в SCCM заявка, което ви позволява да създадете колекция, която включва всички лаптопи в мрежата.

изберете SMS_R_SYSTEM.ResourceID, SMS_R_SYSTEM.ResourceType, SMS_R_SYSTEM.Name, SMS_R_SYSTEM.SMSUniqueIdentifier, SMS_R_SYSTEM.ResourceDomainORWorkgroup, SMS_R_SYSTEM.Client от SMS_R_System вътрешната присъединят SMS_G_System_SYSTEM_ENCLOSURE на SMS_G_System_SYSTEM_ENCLOSURE.ResourceID = SMS_R_System.ResourceId където
SMS_G_System_SYSTEM_ENCLOSURE.ChassisTypes in ("8", "9", "10", "11", "12", "14", "18", "21")

И накрая, за визуално представяне на информация за количественото съотношение на настолни компютри и лаптопи в мрежата, можете да създадете отчет за SCCM:

SELECT
CASE ChassisTypes0
КОГА '8' THEN 'Notebooks'
КОГА "9" ТОГА "Тетрадки"
КОГА '10' THEN 'Тетрадки'
КОГА '11' THEN 'Notebooks'
КОГА '12' THEN 'Notebooks'
КОГА '14' THEN 'Notebooks'
КОГА '18' THEN 'Notebooks'
ELSE „Настолни компютри“
КРАЙ КАТО "Тип работна станция", пребройте (различно sys.name0) като ClientCount от
v_GS_SYSTEM_ENCLOSURE ENC
ВЪТРЕШНО ПРИЛОЖЕНИЕ
v_R_System SYS ON ENC.ResourceID = SYS.ResourceID
КЪДЕ
sys.client0 = 1 И sys.obsolete0 = 0 AND active0 = 1
ГРУПА ПО
CASE ChassisTypes0
КОГА '8' THEN 'Notebooks'
КОГА "9" ТОГА "Тетрадки"
КОГА '10' THEN 'Тетрадки'
КОГА '11' THEN 'Notebooks'
КОГА '12' THEN 'Notebooks'
КОГА '14' THEN 'Notebooks'
КОГА '18' THEN 'Notebooks'
ELSE „Настолни компютри“
END
ПОРЪЧАЙТЕ С 2 дес

В нашия случай съотношението на настолни компютри и лаптопи е 2832 до 109.

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