Verwenden von Shellskripts auf macOS-Geräten in Intune

Verwenden Sie Shellskripts, um die Geräteverwaltungsfunktionen in Intune über das hinaus zu erweitern, was vom macOS-Betriebssystem unterstützt wird.

Hinweis

Rosetta 2 ist erforderlich, um x64 (Intel)-Versionen von Apps auf Apple Silicon Macs auszuführen. Um Rosetta 2 automatisch auf Apple Silicon Macs zu installieren, können Sie ein Shellskript in Intune bereitstellen. Ein Beispielskript finden Sie unter Rosetta 2-Installationsskript.

Voraussetzungen

Stellen Sie sicher, dass die folgenden Voraussetzungen erfüllt sind, wenn Sie Shell-Skripts verfassen und macOS-Geräten zuweisen.

  • Auf den Geräten wird macOS 12.0 oder höher ausgeführt.
  • Geräte werden von Intune verwaltet.
  • Die Geräte sind direkt mit dem Internet verbunden. Die Verbindung über einen Proxy wird nicht unterstützt.
  • Shellskripts beginnen mit #! und müssen sich an einem gültigen Speicherort befinden, z. B #!/bin/sh . oder #!/usr/bin/env zsh.
  • Befehlszeileninterpreter für die entsprechenden Shells sind installiert.

Wichtige Überlegungen vor der Verwendung von Shellskripts

  • Shellskripts setzen voraus, dass der Microsoft Intune Verwaltungs-Agent erfolgreich auf dem macOS-Gerät installiert ist. Weitere Informationen finden Sie unter Microsoft Intune-Verwaltungs-Agent für macOS.
  • Shellskripts werden parallel auf Geräten als separate Prozesse ausgeführt.
  • Shellskripts, die als angemeldeter Benutzer ausgeführt werden, werden für alle derzeit angemeldeten Benutzerkonten auf dem Gerät zum Zeitpunkt der Ausführung ausgeführt.
  • Ein Endbenutzer muss sich auf dem Gerät anmelden, um Skripts ausführen zu können, die als angemeldeter Benutzer ausgeführt werden.
  • Stammbenutzerrechte sind erforderlich, wenn das Skript Änderungen erfordert, die mit einem Standardbenutzerkonto nicht möglich sind.
  • Shellskripts versuchen, unter bestimmten Bedingungen häufiger als die gewählte Skripthäufigkeit ausgeführt zu werden, beispielsweise wenn der Datenträger voll ist, der Speicherort manipuliert wurde, wenn der lokale Cache gelöscht wurde oder wenn das Mac-Gerät neu gestartet wird.
  • Shellskripts, die länger als 60 Minuten ausgeführt werden, werden angehalten und als "fehlgeschlagen" gemeldet.

Erstellen und Zuweisen einer Shellskriptrichtlinie

  1. Melden Sie sich beim Microsoft Intune Admin Center an.

  2. Geräte>auswählen Nach Plattform>macOS>Geräte> verwaltenSkripts>hinzufügen.

  3. Geben Sie unter Grundlegende Einstellungen die folgenden Eigenschaften ein, und klicken Sie auf Weiter:

    • Name: Geben Sie einen Namen für das Shell-Skript ein.
    • Beschreibung: Geben Sie eine Beschreibung für das Shell-Skript ein. Diese Einstellung ist optional, wird jedoch empfohlen.
  4. Geben Sie unter Skripteinstellungen die folgenden Eigenschaften ein, und klicken Sie auf Weiter:

    • Skript hochladen: Navigieren Sie zum Shellskript. Die Skriptdatei muss kleiner als 1 MB sein.
    • Skript als angemeldeter Benutzer ausführen: Wählen Sie "Ja " aus, um das Skript mit den Anmeldeinformationen des Benutzers auf dem Gerät auszuführen. Wählen Sie Nein (Standard) aus, um das Skript als Stammbenutzer auszuführen.
    • Skriptbenachrichtigungen auf Geräten ausblenden: Standardmäßig werden Skriptbenachrichtigungen für jedes Skript angezeigt, das ausgeführt wird. Endbenutzern wird eine Benachrichtigung "IT konfiguriert Ihren Computer" von Intune auf macOS-Geräten angezeigt.
    • Skripthäufigkeit: Wählen Sie aus, wie oft das Skript ausgeführt werden soll. Wählen Sie "Nicht konfiguriert (Standard)" aus, um ein Skript nur einmal auszuführen. Skripts mit einer festgelegten Häufigkeit werden auch nach einem Neustart des Geräts ausgeführt.
    • Maximale Anzahl von Wiederholungsversuchen bei Skriptfehlern: Wählen Sie aus, wie oft das Skript ausgeführt werden soll, wenn es einen Exitcode ungleich NULL zurückgibt (Null bedeutet Erfolg). Wählen Sie "Nicht konfiguriert (Standard)" aus, um es nicht zu wiederholen, wenn ein Skript fehlschlägt.
  5. Fügen Sie unter Bereichstags optional Bereichstags für das Skript hinzu, und wählen Sie Weiter aus. Sie können Bereichstags verwenden, um zu bestimmen, wer Skripts in Intune sehen kann. Ausführliche Informationen zu Bereichstags finden Sie unter Verwenden von rollenbasierter Zugriffssteuerung und Bereichstags für verteilte IT.

  6. Klicken Sie auf Zuweisungen>Select groups to include (Gruppen auswählen, die hinzugefügt werden sollen). Eine vorhandene Liste von Microsoft Entra-Gruppen wird angezeigt. Wählen Sie mindestens eine Benutzer- oder Gerätegruppe aus, die das Skript erhalten soll. Klicken Sie auf Auswählen. Die ausgewählten Gruppen werden in der Liste angezeigt und erhalten Ihre Skriptrichtlinie.

    Hinweis

    • Shell-Skripts, die Benutzergruppen zugewiesen sind, gelten für jeden Benutzer, der sich beim Mac anmeldet.
    • Durch das Aktualisieren von Zuweisungen für Shellskripts werden auch Zuweisungen für den Microsoft Intune MDM-Agent für macOS aktualisiert.
  7. Unter Überprüfen + hinzufügen wird eine Zusammenfassung der Einstellungen angezeigt, die Sie konfiguriert haben. Klicken Sie auf Hinzufügen, um das Skript zu speichern. Wenn Sie "Hinzufügen" auswählen, wird die Skriptrichtlinie den von Ihnen ausgewählten Gruppen bereitgestellt.

Das von Ihnen erstellte Skript wird nun in der Liste der Skripts angezeigt. Bei Bedarf können Sie den Inhalt von macOS-Shellskripts anzeigen, nachdem Sie sie in Intune hochgeladen haben.

Überwachen einer Shellskriptrichtlinie

Sie können die Ausführung status aller zugewiesenen Skripts für Benutzer und Geräte überwachen, indem Sie einen der folgenden Berichte auswählen:

  • Skripts>Zu überwachendes> Skript auswählenGeräte-Status
  • Skripts>Zu überwachendes> Skript auswählenBenutzer-Status

Wichtig

Unabhängig von der ausgewählten Skripthäufigkeit wird der Status der Skriptausführung nur dann gemeldet, wenn sich der Status gegenüber dem letzten Bericht geändert hat. Wenn ein Skript z. B. Erfolg in einer Ausführung und Fehler in der nächsten meldet, aktualisiert Intune sowohl den Status als auch den Zeitstempel der letzten Aktualisierung mit den Informationen zur aktuellen Ausführung. Wenn sich der Status des Skripts zwischen Synchronisierungen nicht ändert, aktualisiert Intune den Zeitstempel der letzten Aktualisierung alle 7 Tage ab der ersten Ausführung.

Sobald ein Skript ausgeführt wird, gibt es einen der folgenden Status zurück:

  • Der Status der Skriptausführung lautet "Fehlgeschlagen", dass das Skript einen Exitcode ungleich NULL zurückgegeben hat oder dass das Skript fehlerhaft ist.
  • Der Status der Skriptausführung war erfolgreich, dass das Skript Null als Beendigungscode zurückgegeben hat.

Problembehandlung bei macOS-Shellskriptrichtlinien mithilfe der Protokollsammlung

Sie können Geräteprotokolle sammeln, um Skriptprobleme auf macOS-Geräten zu beheben.

Anforderungen für die Protokollsammlung

Die folgenden Elemente sind erforderlich, um Protokolle auf einem macOS-Gerät zu sammeln:

  • Sie müssen den vollständigen absoluten Protokolldateipfad angeben.
  • Dateipfade dürfen nur durch ein Semikolon (;) getrennt werden.
  • Die maximal hochzuladende Protokollsammlungsgröße beträgt 60 MB (komprimiert) oder 25 Dateien, je nachdem, was zuerst auftritt.
  • Zu den Dateitypen, die für die Protokollsammlung zulässig sind, gehören die folgenden Erweiterungen: .log, .zip, .gz, .tar, .txt, .xml, .crash .rtf

Erfassen von Geräteprotokollen

  1. Melden Sie sich beim Microsoft Intune Admin Center an.

  2. Navigieren Sie zu "Geräte">Geräte> verwaltenSkripts und Korrekturen>Platform und wählen Sie ein macOS-Shellskript aus.

  3. Wählen Sie im Bericht "Geräte status oder "Benutzer status" ein Gerät aus.

  4. Wählen Sie Protokolle sammeln aus, und geben Sie Ordnerpfade mit Protokolldateien an, die nur durch ein Semikolon (;) getrennt sind, ohne Leerzeichen oder Zeilenumbrüche zwischen den Pfaden.
    Beispielsweise sollten mehrere Pfade als /Path/to/logfile1.zip;/Path/to/logfile2.loggeschrieben werden.

    Wichtig

    Mehrere Protokolldateipfade, die durch Kommas, Punkte, Zeilenumbrüche oder Anführungszeichen mit oder ohne Leerzeichen getrennt sind, führen zu einem Fehler bei der Protokollsammlung. Leerzeichen sind auch nicht als Trennzeichen zwischen Pfaden zulässig.

  5. Wählen Sie OK aus. Protokolle werden gesammelt, wenn der Intune-Verwaltungs-Agent auf dem Gerät das nächste Mal bei Intune eincheckt. Dieser Check-in erfolgt in der Regel alle 8 Stunden.

    Hinweis

    • Gesammelte Protokolle werden auf dem Gerät verschlüsselt, übertragen und 30 Tage lang im Microsoft Azure-Speicher gespeichert. Gespeicherte Protokolle werden bei Bedarf entschlüsselt und mithilfe des Microsoft Intune Admin Centers heruntergeladen.
    • Zusätzlich zu den vom Administrator angegebenen Protokollen werden auch die Protokolle des Intune-Verwaltungs-Agents aus diesen Ordnern gesammelt: /Library/Logs/Microsoft/Intune und ~/Library/Logs/Microsoft/Intune. Die Dateinamen des Agent-Protokolls lauten IntuneMDMDaemon date--time.log und IntuneMDMAgent date--time.log.
    • Wenn eine vom Administrator angegebene Datei fehlt oder die falsche Dateierweiterung hat, finden Sie diese Dateinamen aufgelistet in LogCollectionInfo.txt.

Fehler bei der Protokollsammlung

Die Protokollerfassung ist aus einem der folgenden Gründe in der nachstehenden Tabelle möglicherweise nicht erfolgreich. Führen Sie die Korrekturschritte aus, um diese Fehler zu beheben.

Fehlercode (Hexadezimal) Fehlercode (dec) Fehlermeldung Schritte zur Fehlerbehebung
0X87D300D1 2016214834 Die Protokolldateigröße darf 60 MB nicht überschreiten. Stellen Sie sicher, dass komprimierte Protokolle kleiner als 60 MB sind.
0X87D300D1 2016214831 Der angegebene Protokolldateipfad muss vorhanden sein. Der Systembenutzerordner ist ein ungültiger Speicherort für Protokolldateien. Stellen Sie sicher, dass der angegebene Dateipfad gültig und zugänglich ist.
0X87D300D2 2016214830 Fehler beim Hochladen der Protokollsammlungsdatei aufgrund des Ablaufs der Upload-URL. Wiederholen Sie die Aktion "Protokolle sammeln ".
0X87D300D3, 0X87D300D5 0X87D300D7 2016214829, 2016214827, 2016214825 Fehler beim Hochladen der Protokollsammlungsdatei aufgrund eines Verschlüsselungsfehlers. Versuchen Sie, das Protokoll hochzuladen. Wiederholen Sie die Aktion "Protokolle sammeln ".
2016214828 Die Anzahl der Protokolldateien hat das erlaubte Limit von 25 Dateien überschritten. Es können nur bis zu 25 Protokolldateien gleichzeitig gesammelt werden.
0X87D300D6 2016214826 Fehler beim Hochladen der Protokollsammlungsdatei aufgrund eines ZIP-Fehlers. Versuchen Sie, das Protokoll hochzuladen. Wiederholen Sie die Aktion "Protokolle sammeln ".
2016214740 Die Protokolle konnten nicht verschlüsselt werden, da komprimierte Protokolle nicht gefunden wurden. Wiederholen Sie die Aktion "Protokolle sammeln ".
2016214739 Die Protokolle wurden gesammelt, konnten aber nicht gespeichert werden. Wiederholen Sie die Aktion "Protokolle sammeln ".

Benutzerdefinierte Attribute für macOS

Sie können benutzerdefinierte Attributprofile erstellen, mit denen Sie mithilfe von Shellskripts benutzerdefinierte Eigenschaften von verwalteten macOS-Geräten erfassen können.

Erstellen und Zuweisen eines benutzerdefinierten Attributs für macOS-Geräte

  1. Melden Sie sich beim Microsoft Intune Admin Center an.

  2. Geräte>nach Plattform> auswählenmacOS>Geräte organisieren>Benutzerdefinierte Attribute für macOS>Add.

  3. Geben Sie unter Grundlegende Einstellungen die folgenden Eigenschaften ein, und klicken Sie auf Weiter:

    • Name: Geben Sie einen Namen für das Skript ein.
    • Beschreibung: Geben Sie eine Beschreibung für das Skript ein. Diese Einstellung ist optional, wird jedoch empfohlen.
  4. Geben Sie unter "Attributeinstellungen" die folgenden Eigenschaften ein, und wählen Sie "Weiter" aus:

    • Datentyp des Attributs: Wählen Sie den Datentyp des Ergebnisses aus, das das Skript zurückgibt. Verfügbare Werte sind Zeichenfolge, Ganzzahl und Datum.
    • Skript: Wählen Sie eine Skriptdatei aus.

    Weitere Details:

    • Das Shellskript muss das zu meldende Attribut widerspiegeln, und der Datentyp der Ausgabe muss mit dem Datentyp des Attributs im benutzerdefinierten Attributprofil übereinstimmen.
    • Das vom Shellskript zurückgegebene Ergebnis darf maximal 20 KB groß sein.

    Hinweis

    Stellen Sie bei Verwendung von Date Typattributen sicher, dass das Shellskript Datumsangaben im ISO-8601-Format zurückgibt. Sehen Sie sich die folgenden Beispiele unten an.

    So drucken Sie ein ISO-8601-kompatibles Datum mit Zeitzone:

    #!/bin/sh
    var=$(date +"%Y-%m-%dT%H:%M:%S%z")
    echo $var # Prints an ISO-8601 compliant date with time-zone
    

    So drucken Sie ein ISO-8601-kompatibles Datum in UTC-Zeit:

    #!/bin/sh
    var=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
    echo $var # Prints an ISO-8601 compliant date in UTC time
    
  5. Klicken Sie unter "Aufgaben" auf "Gruppen auswählen, die einbezogen werden sollen". Wenn Sie "Gruppen auswählen" auswählen, wird eine vorhandene Liste von Microsoft Entra-Gruppen angezeigt. Wählen Sie mindestens eine Benutzer- oder Gerätegruppe aus, die das Skript erhalten soll. Klicken Sie auf Auswählen. Die ausgewählten Gruppen werden in der Liste angezeigt und erhalten Ihre Skriptrichtlinie. Alternativ können Sie Alle Benutzer, Alle Geräte oder Alle Benutzer und Alle Geräte auswählen, indem Sie eine dieser Optionen im Dropdownfeld neben Zuweisen an auswählen.

    Hinweis

    • Skripts, die Benutzergruppen zugewiesen sind, gelten für alle Benutzer, die sich beim Mac anmelden.
  6. Unter Überprüfen + hinzufügen wird eine Zusammenfassung der Einstellungen angezeigt, die Sie konfiguriert haben. Klicken Sie auf Hinzufügen, um das Skript zu speichern. Wenn Sie "Hinzufügen" auswählen, wird die Skriptrichtlinie den von Ihnen ausgewählten Gruppen bereitgestellt.

Das von Ihnen erstellte Skript wird nun in der Liste der benutzerdefinierten Attribute angezeigt. Bei Bedarf können Sie den Inhalt benutzerdefinierter Attribute anzeigen, nachdem Sie sie in Intune hochgeladen haben.

Überwachen einer Richtlinie für benutzerdefinierte Attribute

Sie können die Ausführung status aller zugewiesenen benutzerdefinierten Attributprofile für Benutzer und Geräte überwachen, indem Sie einen der folgenden Berichte auswählen:

  • Benutzerdefinierte Attribute>Zu überwachendes >benutzerdefiniertes Attributprofil auswählenGeräte-Status
  • Benutzerdefinierte Attribute>Zu überwachendes >benutzerdefiniertes Attributprofil auswählenBenutzer-Status

Wichtig

In benutzerdefinierten Attributprofilen bereitgestellte Shellskripts werden alle 8 Stunden auf verwalteten Macs ausgeführt und gemeldet.

Sobald ein benutzerdefiniertes Attributprofil ausgeführt wird, gibt es einen der folgenden Status zurück:

  • Der Status Fehlgeschlagen weist darauf hin, dass das Skript einen Exitcode ungleich NULL zurückgegeben hat oder dass das Skript fehlerhaft ist. Der Fehler wird in der Spalte "Ergebnis" gemeldet.
  • Als Status von Erfolg gibt an, dass das Skript Null als Beendigungscode zurückgegeben hat. Die vom Skript zurückgegebene Ausgabe wird in der Spalte "Ergebnis" gemeldet.

Häufig gestellte Fragen

Warum werden zugewiesene Shellskripts nicht auf dem Gerät ausgeführt?

Dafür kann es mehrere Gründe geben:

  • Der Agent muss möglicherweise einchecken, um neue oder aktualisierte Skripts zu erhalten. Dieser Check-in-Prozess findet alle 8 Stunden statt und unterscheidet sich vom MDM-Check-in. Stellen Sie sicher, dass das Gerät für einen erfolgreichen Agent Check-in aktiv und mit einem Netzwerk verbunden ist, und warten Sie, bis der Agent eincheckt. Sie können den Endbenutzer auch auffordern, das Unternehmensportal auf dem Mac zu öffnen, das Gerät auszuwählen und auf "Einstellungen überprüfen" zu klicken.
  • Der Agent ist möglicherweise nicht installiert. Überprüfen Sie, ob der Agent auf dem macOS-Gerät installiert /Library/Intune/Microsoft Intune Agent.app ist.
  • Der Agent befindet sich möglicherweise nicht in einem fehlerfreien Zustand. Der Agent versucht 24 Stunden lang, sich selbst zu entfernen und neu zu installieren, wenn noch Shell-Skripts zugewiesen sind.

Wie häufig wird der Status der Skriptausführung gemeldet?

Der Status der Skriptausführung wird an das Microsoft Intune Admin Center gemeldet, sobald die Skriptausführung abgeschlossen ist. Wenn ein Skript regelmäßig mit einer bestimmten Häufigkeit ausgeführt werden soll, meldet es den Status nur bei der ersten Ausführung.

Wann werden Shellskripts wieder ausgeführt?

Ein Skript wird nur dann erneut ausgeführt, wenn die Einstellung Maximale Anzahl von Wiederholungsversuchen bei Skriptfehlern konfiguriert ist und das Skript bei der Ausführung fehlschlägt. Wenn die maximale Anzahl von Wiederholungsversuchen bei Skriptfehlern nicht konfiguriert ist und ein Skript bei der Ausführung fehlschlägt, wird es nicht erneut ausgeführt, und der AusführungsStatus wird als fehlgeschlagen gemeldet.

Welche Intune-Rollenberechtigungen sind für Shellskripts erforderlich?

Ihre zugewiesene Intune-Rolle erfordert Gerätekonfigurationsberechtigungen zum Löschen, Zuweisen, Erstellen, Aktualisieren oder Lesen von Shellskripts.

Bekannte Probleme

  • Kein Status der Skriptausführung: Falls der unwahrscheinliche Fall eintritt, dass ein Skript auf dem Gerät empfangen wird und das Gerät offline geht, bevor der Ausführungs-Status gemeldet wird, meldet das Gerät den Ausführungs-Status für das Skript nicht im Admin Center.

Weitere Informationen

Wenn Sie Shellskripts oder benutzerdefinierte Attribute für macOS-Geräte über Microsoft Intune bereitstellen, wird die neue universelle Version der Intune-Verwaltungs-Agent-App bereitgestellt, die nativ auf Apple Silicon Mac-Computern ausgeführt wird. Bei derselben Bereitstellung wird die x64-Version der App auf Intel Mac-Computern installiert. Rosetta 2 ist erforderlich, um x64 (Intel)-Versionen von Apps auf Apple Silicon Macs auszuführen. Um Rosetta 2 automatisch auf Apple Silicon Macs zu installieren, können Sie ein Shellskript in Intune bereitstellen. Ein Beispielskript finden Sie unter Rosetta 2-Installationsskript.

Nächste Schritte