Una expresión de condición es la sintaxis empleada para definir cuándo activar las configuraciones de un proyecto. Cada expresión de condición evalúa los atributos del dispositivo o las propiedades definidas por Jamf para determinar si se activa una configuración en el dispositivo. Cuando la expresión de la condición es true, se activa la configuración. Cuando es false, la configuración se mantiene inactiva para ese dispositivo. Puede unir varias expresiones mediante operadores lógicos para crear condiciones más complejas.
Estructura de condiciones de elementos de estado
@property(jamf.device.groups), consulte la tabla de propiedades de Jamf.| Elemento | Sintaxis | Notas |
|---|---|---|
| Elemento de estado | @status(item.name) | Un hecho que el dispositivo declara sobre sí mismo. Siempre envuelto en @status(item.name). |
| Valor de cadena | 'iPhone' | Debe ir entre comillas simples. |
| Valor booleano | true / false | Sin comillas. Solo letras minúsculas. |
| Ninguna condición | (dejar en blanco) | El proyecto se activa en todos los dispositivos del ámbito. |
@status(device.model.family) == 'iPhone'Elementos de estado usados habitualmente
Los elementos de estado son los hechos declarados por el dispositivo que se pueden usar en las expresiones de una condición. Puede consultar la lista completa en el repositorio apple/device-management/declarative/status de GitHub.
| Elemento de estado | Tipo | Valores de ejemplo |
|---|---|---|
device.model.family | Cadena | iPhone, iPad, Mac, AppleTV |
device.model.identifier | Cadena | iPhone15,2 |
device.operating-system.version | Cadena | 17.4.1 |
device.identifier | Cadena | UDID del dispositivo |
passcode.is-compliant | Booleano | true, false |
device.is-supervised | Booleano | true, false |
Operadores admitidos
| Operador | Significado | Ejemplo |
|---|---|---|
== | Es igual a | @status(device.model.family) == 'iPhone' |
!= | No es igual a | @status(device.model.family) != 'Mac' |
IN {…} | Coincide con cualquier valor de la lista | @status(device.model.family) IN {'iPhone', 'iPad'} |
< > <= >= | Comparación numérica o de versión | @status(device.operating-system.version) >= '17.0' |
Operadores lógicos para unir condiciones
| Palabra clave | Significado | Ejemplo |
|---|---|---|
AND | Ambas condiciones deben ser true | @status(device.model.family) == 'iPhone' AND @status(passcode.is-compliant) == true |
OR | Cualquiera de las dos condiciones puede ser true | @status(device.model.family) == 'iPhone' OR @status(device.model.family) == 'iPad' |
NOT | La condición debe ser false | NOT @status(device.model.family) == 'Mac' |
Ejemplos de condiciones de elementos de estado
| Escenario | Expresión de condición |
|---|---|
| Solo dispositivos iPhone | @status(device.model.family) == 'iPhone' |
| Dispositivos iPhone o iPad | @status(device.model.family) IN {'iPhone', 'iPad'} |
| Dispositivos iPhone supervisados con código conforme | @status(device.model.family) == 'iPhone' AND @status(device.is-supervised) == true AND @status(passcode.is-compliant) == true |
| iOS 17 o posterior | @status(device.operating-system.version) >= '17.0' |
| Todos menos los ordenadores Mac | @status(device.model.family) != 'Mac' |
Errores de sintaxis habituales
| Error | Incorrecto | Correcto |
|---|---|---|
| Signo igual simple en lugar de signo igual doble | @status(device.model.family) = 'iPhone' | @status(device.model.family) == 'iPhone' |
| Faltan las comillas simples antes y después de valores de cadena | @status(device.model.family) == iPhone | @status(device.model.family) == 'iPhone' |
| Uso incorrecto de mayúsculas y minúsculas en valores de cadena | @status(device.model.family) == 'iphone' | @status(device.model.family) == 'iPhone' |
| Cadena OR en lugar de IN para valores múltiples | ... == 'iPhone' OR ... == 'iPad' | ... IN {'iPhone', 'iPad'} |
| Comillas antes y después de valores booleanos | @status(passcode.is-compliant) == 'true' | @status(passcode.is-compliant) == true |
Propiedades de Jamf
Use @property(jamf.device.groups) para incluir dispositivos en función de su pertenencia a grupos de dispositivos. Los grupos de dispositivos se definen en Jamf y no son elementos de estado de gestión declarativa de dispositivos de Apple. No puede usar @property(jamf.device.groups) con @status(jamf.device.groups).
| Operador | Significado | Ejemplo |
|---|---|---|
ANY … IN {…} | El dispositivo pertenece al menos a uno de los grupos enumerados | ANY @property(jamf.device.groups) IN {'groupA', 'groupB'} |
NONE … IN {…} | El dispositivo no pertenece a ninguno de los grupos enumerados | NONE @property(jamf.device.groups) IN {'groupA', 'groupB'} |