Para instalar un software especial en todos los dispositivos portátiles de la empresa, era necesario construir una colección SCCM, que incluiría todas las computadoras portátiles (y otros sistemas móviles portátiles) en una red corporativa. Inmediatamente no pude encontrar la propiedad del sistema para identificar explícitamente una computadora como una computadora portátil o una computadora de escritorio.
Para empezar, traté de filtrar dispositivos portátiles usando filtros WMI de GPO e instalarles software usando políticas de grupo. Había varias variantes para crear consultas WMI mediante comprobación:
- Estado de la batería (solo los portátiles la tienen):
SELECT * FROM Win32_Battery WHERE (BatteryStatus <> 0) - Tipo de RAM (SODIMM para portátiles):
Select * from Win32_PhysicalMemory WHERE (FormFactor = 12) - Propiedades de PCSystemType:
SELECT * FROM Win32_ComputerSystem WHERE PCSystemType = 2
| Valor | Tipo de sistema |
| 0 | Sin especificar |
| 1 | Escritorio |
| 2 | Móvil |
| 3 | Puesto de trabajo |
| 4 | Servidor empresarial |
| 5 | Servidor para pequeñas oficinas y oficinas en el hogar (SOHO) |
| 6 | PC del aparato |
| 7 | Servidor de rendimiento |
| 8 | Máximo |
Cada una de estas consultas tiene sus ventajas y desventajas. En teoría, la más óptima debería ser la filtración por valor de PCSystemType, pero esta clase apareció solo en Vista, y tenemos muchas computadoras ejecutando el obsoleto Windows XP, que no se filtrará usando estas consultas.
A consultas de WMI para determinar ChassisTypes, ser parte de Win32_SystemEnclosure la clase me ha parecido más interesante:
Los posibles valores de ChassisTypes se dan en la tabla siguiente.
| ChassisTypes Valor | Tipo de sistema |
| 1 | Otro |
| 2 | Desconocido |
| 3 | Escritorio (incluidas máquinas virtuales) |
| 4 | Escritorio de perfil bajo |
| 5 | Caja de pizza |
| 6 | Mini torre |
| 7 | Torre |
| 8 | Portátil |
| 9 | Computadora portátil |
| 10 | Computadora portátil |
| 11 | Mano |
| 12 | Estación de acoplamiento |
| 13 | Todo en uno |
| 14 | Cuaderno secundario |
| 15 | Ahorro de espacio |
| dieciséis | Caja de almuerzo |
| 17 | Chasis del sistema principal |
| 18 | Chasis de expansión |
| 19 | Sub chasis |
| 20 | Chasis de expansión de bus |
| 21 | Chasis periférico |
| 22 | Chasis de almacenamiento |
| 23 | Chasis de montaje en rack |
| 24 | PC con carcasa sellada |
Por lo tanto, los siguientes tipos de chasis son típicos para:
- computadoras portátiles: 8, 9, 10, 11, 12, 14, 18, 21
- escritorios: 3, 4, 5, 6, 7, 15, 16
- servidores: 17,23
La versión final de un filtro WMI se ve así:
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"
Este filtro WMI se puede transformar fácilmente en una consulta SCCM, lo que permite construir una colección con todos los portátiles de la red.
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")
Finalmente, para proporcionar una vista completa sobre la proporción cuantitativa de equipos de escritorio y portátiles en la red, puede realizar un informe de 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
En nuestro caso, la proporción de PC de escritorio y portátiles es de 2832 a 109.
Entonces, hemos considerado cómo crear una colección SCCM o un filtro GPO WMI que permita seleccionar todas las computadoras portátiles en la red usando el atributo ChassisTypes de la clase SystemEnclosure.





