Using MacOS custom attributes in Intune

macOS Custom Attributes in Intune verwenden

Dieser Beitrag ist ein praktischer Leitfaden zur Verwendung von macOS Custom Attributes in Microsoft Intune. Mit Custom Attributes kannst du beliebige Signale von deinen Macs erfassen – alles, was ein Shell-Skript zurückgeben kann – und sie als Geräteeigenschaften für Compliance, dynamische Gruppen und Reporting verfügbar machen.

Die macOS Custom Attributes in Microsoft Intune gehören zu den am meisten unterschätzten Funktionen der Plattform – ein schlankes Stück „verwaltete Jamf Extension Attributes“, mit dem du beliebige Signale von deinen Macs erfassen kannst (alles, was du aus einem Shell-Skript zurückgeben kannst: Hardware-Kennungen, Konfigurationszustand, installierte Apps, Sicherheitsstatus) und sie als Geräteeigenschaften für Compliance, dynamische Gruppen und Reporting verfügbar machst. Dieser Beitrag führt dich durch den gesamten Ablauf: wie du ein robustes Custom-Attribute-Shell-Skript schreibst, es über Intune bereitstellst und das Ergebnis in Compliance-Richtlinien und Microsoft-Graph-Abfragen nutzt.

Intune verfügt bereits über eine grundlegende Inventarisierung von macOS-Geräten. Auf der einen Seite gibt es ein Hardware-Inventar, in dem du alles von der Seriennummer bis zum freien Speicher findest, aber auch OS-Informationen. Zusätzlich kannst du in den Discovered Apps sehen, welche Anwendungen auf dem Gerät installiert sind. Wenn du jedoch mehr Informationen über die Geräte sammeln möchtest, bietet Intune hier eine wirklich coole Funktion. Die Funktion, von der ich spreche, heißt Custom Attribute. Das ist im Grunde ein Shell-Skript, das auf den Geräten ausgeführt wird, und der Rückgabewert wird als Custom Attribute gespeichert.

Warum macOS Custom Attributes in Intune verwenden

Wenn du aus der Jamf-Welt kommst, werden dir macOS Custom Attributes in Intune sofort vertraut vorkommen: Sie sind das Microsoft-Pendant zu den Extension Attributes. Das eingebaute Inventar deckt die Grundlagen gut ab, doch früher oder später stößt jede Organisation auf ein Signal, das Intune nicht von Haus aus erfasst – etwa den FileVault-Status, ein bestimmtes Konfigurationsprofil-Flag, die Akku-Ladezyklen oder die Frage, ob ein Drittanbieter-Agent läuft.

Mit Custom Attributes schließt du diese Lücke, ohne ein zusätzliches Inventar-Tool bezahlen zu müssen. Da das Ergebnis als echte Geräteeigenschaft gespeichert wird, kannst du in dynamischen Gerätegruppen danach filtern, es innerhalb von Compliance-Richtlinien auswerten und es über die Microsoft Graph API für eigene Dashboards und Reports abrufen.

So stellst du ein Custom Attribute bereit

  • Öffne das Intune Admin Center
  • Navigiere zu Devices -> macOS -> Custom attributes
  • Klicke auf +Add
  • Gib einen Name ein
  • Klicke auf Next
  • Wähle den Data type der Skriptausgabe aus
  • Lade das Script hoch (Beispielskripte findest du weiter unten)
  • Klicke auf Next
macOS Custom Attributes in Intune verwenden
  • Weise das Custom Attribute einer Gruppe zu
  • Klicke auf Next
  • Klicke auf Add
  • Warte, bis der Wert erfasst wurde, und überprüfe den Status in Intune

Ein robustes Shell-Skript schreiben

Die Qualität deiner Custom Attributes hängt vollständig von dem Skript ab, das du hochlädst. Ein Custom-Attribute-Skript läuft als root im Kontext des Intune-Management-Agenten, und Intune erfasst genau das, was das Skript auf die Standardausgabe schreibt. Behalte daher diese Regeln im Hinterkopf, damit der Wert zuverlässig erfasst wird:

  • Gib immer einen einzelnen, sauberen Wert aus – Intune speichert die letzte Zeile der Ausgabe.
  • Passe den Wert an den ausgewählten Datentyp an (String, Integer oder Datum).
  • Beende das Skript zügig; lang laufende Skripte können ein Timeout verursachen und das Attribut leer lassen.
  • Behandle den Fall „nicht gefunden“ sauber, damit das Attribut nie leer bleibt.

Da das Skript mit vollen Rechten läuft, erreichst du nahezu jedes Systemsignal. Werkzeuge wie system_profiler, profiles, fdesetup und defaults sind hier deine Freunde. Die offizielle Dokumentation zu macOS Shell-Skripten in Microsoft Learn ist die verbindliche Referenz für alle unterstützten Einstellungen.

Beispielskript

BatteryLoadingCycles.sh

#!/bin/bash
#set -x
echo $(system_profiler SPPowerDataType | grep "Cycle Count:" | sed 's/.*Cycle Count: //')

Den Wert in Compliance und Graph nutzen

Sobald ein Custom Attribute einen Wert erfasst hat, werden die Daten verwertbar. Du kannst eine Compliance-Richtlinie mit einem eigenen Skript erstellen, das das Attribut liest und ein Gerät als nicht konform markiert, wenn beispielsweise die Akku-Ladezyklen einen Schwellenwert überschreiten. Ebenso kannst du die Werte über die Microsoft Graph API abfragen, um externes Reporting, Power-BI-Dashboards oder deine eigene Automatisierung zu speisen.

Fazit

Ich finde, das ist eine sehr nützliche Funktion, die das Reporting oder das Sammeln von Informationen sehr einfach macht. Ich habe dir ein Beispielskript bereitgestellt, das du verwenden, aber auch als Vorlage zum Erstellen neuer Skripte nutzen kannst. Du hast hier unendlich viele Möglichkeiten, was und wie du diese Informationen von Mac-Geräten sammeln möchtest. Das Einzige, was du beachten musst, ist, dass dein Skript eine Ausgabe erzeugt.