Ein Bedingungsausdruck ist die Syntax, die verwendet wird, um festzulegen, wann die Konfigurationen eines Blueprints aktiviert werden. Jeder Bedingungsausdruck wertet Geräteattribute oder von Jamf definierte Eigenschaften aus, um zu bestimmen, ob eine Konfiguration auf dem Gerät aktiviert wird. Wenn der Bedingungsausdruck wahr ist, wird die Konfiguration aktiviert. Wenn er falsch ist, bleibt die Konfiguration für dieses Gerät inaktiv. Sie können mehrere Ausdrücke mithilfe logischer Operatoren verknüpfen, um komplexere Bedingungen zu erstellen.
Struktur von Statuselement-Bedingungen
@property(jamf.device.groups) finden Sie in der Tabelle Jamf Eigenschaften.| Element | Syntax | Notizen |
|---|---|---|
| Statuselement | @status(item.name) | Eine Information, die das Gerät über sich selbst meldet. Immer in @status(item.name) eingeschlossen. |
| Zeichenkettenwert | 'iPhone' | Muss in einfache Anführungszeichen eingeschlossen werden. |
| Boolescher Wert | true / false | Keine Anführungszeichen. Nur Kleinbuchstaben. |
| Keine Bedingung | (leer lassen) | Der Blueprint wird auf allen Geräten im Bereich aktiviert. |
@status(device.model.family) == 'iPhone'Häufig verwendete Statuselemente
Statuselemente sind die Gerätefakten, die in Bedingungsausdrücken verwendet werden können. Die vollständige Liste finden Sie im Repository apple/device-management/declarative/status auf GitHub.
| Statuselement | Typ | Beispielwerte |
|---|---|---|
device.model.family | Zeichenfolge | iPhone, iPad, Mac, AppleTV |
device.model.identifier | Zeichenfolge | iPhone15,2 |
device.operating-system.version | Zeichenfolge | 17.4.1 |
device.identifier | Zeichenfolge | Geräte-UDID |
passcode.is-compliant | Boolescher Wert | true, false |
device.is-supervised | Boolescher Wert | true, false |
Unterstützte Operatoren
| Operator | Bedeutung | Beispiel |
|---|---|---|
== | Entspricht | @status(device.model.family) == 'iPhone' |
!= | Ist nicht gleich | @status(device.model.family) != 'Mac' |
IN {…} | Entspricht einem beliebigen Wert in der Liste | @status(device.model.family) IN {'iPhone', 'iPad'} |
< > <= >= | Numerischer/Versionsvergleich | @status(device.operating-system.version) >= '17.0' |
Logische Operatoren zum Verknüpfen von Bedingungen
| Schlüsselwort | Bedeutung | Beispiel |
|---|---|---|
AND | Beide Bedingungen müssen wahr sein | @status(device.model.family) == 'iPhone' AND @status(passcode.is-compliant) == true |
OR | Eine der Bedingungen kann wahr sein | @status(device.model.family) == 'iPhone' OR @status(device.model.family) == 'iPad' |
NOT | Bedingung muss falsch sein | NOT @status(device.model.family) == 'Mac' |
Beispiele für Statuselement-Bedingungen
| Szenario | Bedingungsausdruck |
|---|---|
| Nur iPhone Geräte | @status(device.model.family) == 'iPhone' |
| iPhone oder iPad Geräte | @status(device.model.family) IN {'iPhone', 'iPad'} |
| Betreute iPhone Geräte mit konformem Code | @status(device.model.family) == 'iPhone' AND @status(device.is-supervised) == true AND @status(passcode.is-compliant) == true |
| iOS 17 oder neuer | @status(device.operating-system.version) >= '17.0' |
| Alles außer Mac Computern | @status(device.model.family) != 'Mac' |
Häufige Erstellungsfehler
| Fehler | Falsch | Richtig |
|---|---|---|
| Einfaches Gleichheitszeichen statt doppeltem Gleichheitszeichen | @status(device.model.family) = 'iPhone' | @status(device.model.family) == 'iPhone' |
| Fehlende einfache Anführungszeichen um Zeichenkettenwerte | @status(device.model.family) == iPhone | @status(device.model.family) == 'iPhone' |
| Falsche Groß-/Kleinschreibung von Zeichenkettenwerten | @status(device.model.family) == 'iphone' | @status(device.model.family) == 'iPhone' |
| OR-Kette statt IN für mehrere Werte | ... == 'iPhone' OR ... == 'iPad' | ... IN {'iPhone', 'iPad'} |
| Anführungszeichen um boolesche Werte | @status(passcode.is-compliant) == 'true' | @status(passcode.is-compliant) == true |
Jamf Eigenschaften
Verwenden Sie @property(jamf.device.groups), um Geräte basierend auf ihrer Gerätegruppenmitgliedschaft gezielt auszuwählen. Gerätegruppen werden in Jamf definiert und sind keine Statuselemente der deklarativen Geräteverwaltung von Apple. Sie können @property(jamf.device.groups) nicht mit @status(jamf.device.groups) verwenden.
| Operator | Bedeutung | Beispiel |
|---|---|---|
ANY … IN {…} | Das Gerät gehört mindestens einer der aufgelisteten Gruppen an | ANY @property(jamf.device.groups) IN {'groupA', 'groupB'} |
NONE … IN {…} | Das Gerät gehört keiner der aufgelisteten Gruppen an | NONE @property(jamf.device.groups) IN {'groupA', 'groupB'} |