Verwenden von Shellskripts auf macOS-Geräten in Intune

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

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, stellen Sie ein Shell-Skript in Intune bereit. 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.
  • Intune verwaltet die Geräte.
  • Geräte stellen eine direkte Verbindung zum Internet her. Intune unterstützt keine Verbindung über einen Proxy.
  • Shellskripts beginnen mit #! und befinden sich an einem gültigen Speicherort, 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 erfordern, 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, für alle derzeit angemeldeten Benutzerkonten auf dem Gerät zum Zeitpunkt der Ausführung.
  • Ein Endbenutzer muss sich beim Gerät anmelden, um Skripts ausführen zu können, die als angemeldeter Benutzer ausgeführt werden.
  • Stammbenutzerrechte sind erforderlich, wenn das Skript Änderungen vornehmen muss, die ein Standardbenutzerkonto nicht ausführen kann.
  • Shell-Skripts versuchen, unter bestimmten Bedingungen häufiger als die gewählte Skripthäufigkeit ausgeführt zu werden, z. B. wenn der Datenträger voll ist, wenn 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 fehlerhaft 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. Wir empfehlen diese optionale Einstellung.
  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 "Die IT konfiguriert Ihren Computer " von Intune auf macOS-Geräten angezeigt.
    • Skripthäufigkeit: Wählen Sie aus, wie oft das Skript ausgeführt wird. 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 eines 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. Verwenden Sie Bereichstags, um zu bestimmen, wer Skripts in Intune sehen kann. Weitere Informationen finden Sie unter Verwenden von rollenbasierten Zugriffssteuerungen 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 der Microsoft Entra-Gruppen wird angezeigt. Wählen Sie mindestens eine Benutzer- oder Gerätegruppe aus, an die das Skript gesendet werden soll. Klicken Sie auf Auswählen. Die ausgewählten Gruppen werden in der Liste angezeigt. Sie erhalten Ihre Skriptrichtlinie.

    Hinweis

    Shellskripts, die Benutzergruppen zugewiesen sind, gelten für jeden Benutzer, der sich auf dem Mac anmeldet. Mit dem Aktualisieren von Zuweisungen für Shellskripts werden auch die 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 den Ausführungsstatus aller zugewiesenen Skripts für Benutzer und Geräte überwachen, indem Sie einen der folgenden Berichte auswählen:

  • Skripts>Zu überwachendes> Skript auswählenGerätestatus
  • Skripts>Zu überwachendes> Skript auswählenBenutzerstatus

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. einen Erfolg in einer Ausführung und einen 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 Skriptstatus nach Synchronisierungen nicht ändert, aktualisiert Intune den Zeitstempel der letzten Aktualisierung alle sieben Tage ab der ersten Ausführung.

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

  • Der Skriptausführungsstatus "Fehlgeschlagen " weist darauf hin, dass das Skript einen Exitcode ungleich NULL zurückgegeben hat oder dass das Skript ungültig ist.
  • Der erfolgreiche Status der Skriptausführung gibt an, 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

Um Protokolle auf einem macOS-Gerät zu sammeln, müssen Sie die folgenden Informationen angeben:

  • Den vollständigen absoluten Protokolldateipfad.
  • Dateipfade, die nur durch ein Semikolon (;) getrennt sind.
  • Eine maximale Protokollsammlungsgröße von 60 MB (komprimiert) oder 25 Dateien, je nachdem, was zuerst eintritt.
  • Zulässige Dateitypen für die Protokollsammlung sind 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. Wechseln Sie zu Geräte>Geräte verwalten>Skripts und Korrekturen>Platform Scripts , und wählen Sie ein macOS-Shellskript aus.

  3. Wählen Sie im Gerätestatus - oder Benutzerstatusbericht ein Gerät aus.

  4. Wählen Sie "Protokolle sammeln " aus, und geben Sie die Ordnerpfade der Protokolldateien ein, die nur durch ein Semikolon (;) getrennt sind, ohne Leerzeichen oder Zeilenumbrüche zwischen den Pfaden.

    Schreiben Sie z. B. mehrere Pfade als /Path/to/logfile1.zip;/Path/to/logfile2.log.

    Wichtig

    Die Verwendung von Kommas, Punkten, Zeilenumbrüchen oder Anführungszeichen mit oder ohne Leerzeichen zum Trennen mehrerer Protokolldateipfade führt zu einem Fehler bei der Protokollsammlung. Verwenden Sie keine Leerzeichen als Trennzeichen zwischen Pfaden.

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

    Hinweis

    • Das Gerät verschlüsselt gesammelte Protokolle, überträgt sie und speichert sie 30 Tage lang im Microsoft Azure-Speicher. Das Microsoft Intune Admin Center entschlüsselt und lädt gespeicherte Protokolle bei Bedarf herunter.
    • Zusätzlich zu den vom Administrator angegebenen Protokollen sammelt der Intune-Verwaltungs-Agent auch Protokolle aus diesen Ordnern: /Library/Logs/Microsoft/Intune und ~/Library/Logs/Microsoft/Intune. Die Namen der Agent-Protokolldateien lauten IntuneMDMDaemon date--time.log und IntuneMDMAgent date--time.log.
    • Wenn eine vom Administrator angegebene Datei fehlt oder die falsche Dateierweiterung hat, suchen Sie diese Dateinamen unter LogCollectionInfo.txtaufgeführt.

Fehler bei der Protokollsammlung

Die Protokollsammlung kann aus einem der folgenden Gründe nicht erfolgreich sein. 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. Sie können nur bis zu 25 Protokolldateien gleichzeitig sammeln.
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 sammeln 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 wiedergeben, 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. Weitere Informationen finden Sie in den folgenden Beispielen.

    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. Wählen Sie unter "Aufgaben" die Option "Wählen Sie Gruppen aus, die einbezogen werden sollen" aus. Wenn Sie "Gruppen auswählen" auswählen, die einbezogen werden sollen, wird eine vorhandene Liste von Microsoft Entra-Gruppen angezeigt. Wählen Sie mindestens eine Benutzer- oder Gerätegruppe aus, an die das Skript gesendet werden soll. Klicken Sie auf Auswählen. Die ausgewählten Gruppen werden in der Liste angezeigt. Sie 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 jeden Benutzer, der sich auf dem Mac anmeldet.

  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. Zeigen Sie den Inhalt benutzerdefinierter Attribute an, 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

Shell-Skripts, die in benutzerdefinierten Attributprofilen bereitgestellt werden, werden alle 8 Stunden auf verwalteten Macs ausgeführt und melden ihren Status.

Wenn 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.
  • Der Status Erfolg zeigt 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?

Dieses Problem kann mehrere Ursachen haben:

  • 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 bitten, das Unternehmensportal auf dem Mac zu öffnen, das Gerät auszuwählen und "Einstellungen überprüfen" auszuwählen.
  • 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?

Wenn ein Skript einen Exitcode ungleich NULL zurückgibt, versucht Intune es entsprechend der Einstellung Maximale Anzahl von Wiederholungsversuchen bei Skriptfehlern. Wenn diese Einstellung nicht konfiguriert ist, wiederholt Intune die fehlgeschlagene Ausführung nicht und meldet den Status als fehlgeschlagen. Skripts mit einer konfigurierten Häufigkeit können auch nach Zeitplan oder nach einem Neustart des Geräts erneut ausgeführt werden.

Welche Intune-Rollenberechtigungen sind für Shellskripts erforderlich?

Ihre zugewiesene Intune-Rolle benötigt Gerätekonfigurationsberechtigungen zum Löschen, Zuweisen, Erstellen, Aktualisieren oder Lesen von Shell-Skripts.

Bekannte Probleme

  • Kein Status der Skriptausführung: Wenn das Gerät ein Skript empfängt, aber offline geschaltet wird, bevor es den Ausführungsstatus meldet, meldet das Gerät den Ausführungsstatus 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, stellen Sie die neue universelle Version der Intune Management Agent-App bereit, die nativ auf Apple Silicon Mac-Computern ausgeführt wird. Dieselbe Bereitstellung installiert die x64-Version der App auf Intel Mac-Computern.

Sie benötigen Rosetta 2, um die x64 (Intel) Version von Apps auf Apple Silicon Macs auszuführen. Um Rosetta 2 automatisch auf Apple Silicon Macs zu installieren, können Sie ein Shell-Skript in Intune bereitstellen. Ein Beispielskript finden Sie unter Rosetta 2-Installationsskript.

Nächster Schritt