Tüm Dizüstü ve Masaüstü Bilgisayarları Bulmak İçin SCCM ve WMI Sorgusu


Şirketin tüm taşınabilir cihazlarına özel yazılım yüklemek için, kurumsal bir ağdaki tüm dizüstü bilgisayarları (diğer bir taşınabilir mobil sistem) içerecek bir SCCM koleksiyonu oluşturmak gerekiyordu. Bir bilgisayarı dizüstü veya masaüstü olarak açıkça tanımlayacak sistem özelliğini hemen bulamadım.

Başlangıç olarak, taşınabilir cihazları GPO'nun WMI filtrelerini kullanarak filtrelemeye ve onlara grup ilkelerini kullanarak yazılım yüklemeye çalıştım. Aşağıdakileri kontrol ederek WMI sorguları oluşturmanın birkaç çeşidi vardı:

  • Pil durumu (yalnızca dizüstü bilgisayarlarda bulunur):

    SELECT * FROM Win32_Battery WHERE (BatteryStatus <> 0)
  • RAM tipi (dizüstü bilgisayarlar için SODIMM):

    Select * from Win32_PhysicalMemory WHERE (FormFactor = 12)
  • PCSystemType özellikleri:

    SELECT * FROM Win32_ComputerSystem WHERE PCSystemType = 2

Not. Olası PCSystemType değerleri

ValueSystem Type
0Unspecified
1Desktop
2Mobile
3Workstation
4Enterprise Server
5Small Office and Home Office (SOHO) Server
6Appliance PC
7Performance Server
8Maximum

Bu sorguların her birinin avantajları ve dezavantajları vardır. Teorik olarak, en uygun olanı PCSystemType değerine göre filtreleme olmalıdır, ancak bu sınıf yalnızca Vista'da göründü ve bu sorgular kullanılarak filtrelenmeyecek olan eski Windows XP'yi çalıştıran birçok bilgisayarımız var.

Win32_SystemEnclosure sınıfının bir parçası olan ChassisTypes'ı belirlemeye yönelik bir WMI sorgusu daha ilginç göründü:

ChassisTypes'ın olası değerleri aşağıdaki tabloda verilmiştir.

ChassisTypes ValueSystem Type
1Other
2Unknown
3Desktop (including virtual machines)
4Low Profile Desktop
5Pizza Box
6Mini Tower
7Tower
8Portable
9Laptop
10Notebook
11Hand Held
12Docking Station
13All in One
14Sub Notebook
15Space-Saving
16Lunch Box
17Main System Chassis
18Expansion Chassis
19Sub Chassis
20Bus Expansion Chassis
21Peripheral Chassis
22Storage Chassis
23Rack Mount Chassis
24Sealed-Case PC

Bu nedenle, aşağıdaki Şasi Tipleri tipiktir:

  • dizüstü bilgisayarlar: 8 , 9, 10, 11, 12, 14, 18, 21

  • masaüstü bilgisayarlar: 3, 4, 5, 6, 7, 15, 16

  • sunucular: 17,23

Bir WMI filtresinin son sürümü şöyle görünür:

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"

Bu WMI filtresi, ağdaki tüm dizüstü bilgisayarlarla bir koleksiyon oluşturmaya izin veren bir SCCM sorgusuna kolayca dönüştürülebilir.

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") 

Son olarak, ağdaki masaüstü ve dizüstü bilgisayarların sayısal oranı hakkında kapsamlı bir görüş sağlamak için bir SCCM raporu hazırlayabilirsiniz:

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

Bizim durumumuzda, masaüstü bilgisayarların ve dizüstü bilgisayarların oranı 2832'ye 109'dur.

İlgili makaleler