Verwenden von Shellskripts auf macOS-Geräten in Intune

Verwenden Sie Shellskripts, um die Geräteverwaltungsfunktionen in Intune über die vom macOS-Betriebssystem unterstützten Funktionen hinaus zu erweitern.

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 Shellskripts erstellen und macOS-Geräten zuweisen.

  • Auf Geräten wird macOS 12.0 oder höher ausgeführt.
  • Geräte werden von Intune verwaltet.
  • 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 wie #!/bin/sh oder befinden #!/usr/bin/env zsh.
  • Befehlszeileninterpreter für die entsprechenden Shells werden 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 auf Geräten parallel als separate Prozesse ausgeführt.
  • Shellskripts, die als angemeldeter Benutzer ausgeführt werden, werden zum Zeitpunkt der Ausführung für alle aktuell angemeldeten Benutzerkonten auf dem Gerät ausgeführt.
  • Ein Endbenutzer muss sich beim Gerät anmelden, um Skripts auszuführen, die als angemeldeter Benutzer ausgeführt werden.
  • Stammbenutzerberechtigungen sind erforderlich, wenn das Skript Änderungen erfordert, die ein Standardbenutzerkonto nicht vornehmen kann.
  • Shellskripts versuchen, für bestimmte Bedingungen häufiger als die ausgewählte Skripthäufigkeit auszuführen, z. B. wenn der Datenträger voll ist, wenn der Speicherort manipuliert wird, wenn der lokale Cache gelöscht wird oder wenn das Mac-Gerät neu gestartet wird.
  • Shellskripts, die länger als 60 Minuten ausgeführt werden, werden beendet und als "fehler" gemeldet.

Erstellen und Zuweisen einer Shellskriptrichtlinie

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

  2. Wählen Sie Geräte>macOS-Shellskripts>>Hinzufügen aus.

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

    • Name: Geben Sie einen Namen für das Shellskript ein.
    • Beschreibung: Geben Sie eine Beschreibung für das Shellskript 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 200 KB 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.
    • Ausblenden von Skriptbenachrichtigungen auf Geräten: Standardmäßig werden Skriptbenachrichtigungen für jedes ausgeführte Skript angezeigt. Endbenutzern wird auf macOS-Geräten von Intune eine IT-Benachrichtigung zur Konfiguration Ihres Computers 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 Geräteneustart ausgeführt.
    • Maximale Anzahl von Wiederholungsversuchen, wenn das Skript fehlschlägt: Wählen Sie aus, wie oft das Skript ausgeführt werden soll, wenn es einen Exitcode ungleich 0 (null bedeutet Erfolg) zurückgibt. Wählen Sie Nicht konfiguriert (Standard) aus, um es nicht erneut zu versuchen, 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 der rollenbasierten Zugriffssteuerung und Bereichstags für verteilte IT.For full details about scope tags, see Use role-based access control and scope tags for distributed 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 einen oder mehrere Benutzer- oder Gerätegruppen aus, die das Skript erhalten sollen. Klicken Sie auf Auswählen. Die von Ihnen ausgewählten Gruppen werden in der Liste angezeigt und erhalten Ihre Skriptrichtlinie.

    Hinweis

  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 für die von Ihnen ausgewählten Gruppen bereitgestellt.

Das von Ihnen erstellte Skript wird jetzt 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>Auswählen des zu überwachenden> SkriptsGeräte status
  • Skripts>Auswählen des zu überwachenden> SkriptsBenutzer-status

Wichtig

Unabhängig von der ausgewählten Skripthäufigkeit wird die Skriptausführung status nur bei der ersten Ausführung eines Skripts gemeldet. Skriptausführung status bei nachfolgenden Ausführungen nicht aktualisiert wird. Aktualisierte Skripts werden jedoch als neue Skripts behandelt und melden die Ausführung status erneut.

Sobald ein Skript ausgeführt wird, wird einer der folgenden Status zurückgegeben:

  • Eine Skriptausführung status fehler gibt an, dass das Skript einen Exitcode ungleich Null zurückgegeben hat oder dass das Skript falsch formatiert ist.
  • Eine Skriptausführung status von Success hat angegeben, dass das Skript 0 (null) als Exitcode zurückgegeben hat.

Problembehandlung für 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 (;).
  • Die maximale Protokollsammlungsgröße, die hochgeladen werden soll, beträgt 60 MB (komprimiert) oder 25 Dateien, je nachdem, was zuerst eintritt.
  • Dateitypen, die für die Protokollsammlung zulässig sind, umfassen die folgenden Erweiterungen: .log, .zip, .gz, .tar, .txt, .xml, .crash, .rtf

Sammeln von Geräteprotokollen

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

  2. Navigieren Sie zuGeräteskripts>, und wählen Sie ein macOS-Shellskript aus.

  3. Wählen Sie im Bericht Device status oder User status (Benutzer) ein Gerät aus.

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

    Wichtig

    Mehrere Protokolldateipfade, die durch Kommas, Punkt, Zeilenumbruch oder Anführungszeichen mit oder ohne Leerzeichen getrennt sind, führen zu Protokollsammlungsfehlern. 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 über Microsoft Intune Admin Center heruntergeladen.
    • Zusätzlich zu den vom Administrator angegebenen Protokollen werden die Protokolle des Intune-Verwaltungs-Agents auch aus den folgenden Ordnern gesammelt: /Library/Logs/Microsoft/Intune und ~/Library/Logs/Microsoft/Intune. Die Namen der Agent-Protokolldateien sind IntuneMDMDaemon date--time.log und IntuneMDMAgent date--time.log.
    • Wenn eine vom Administrator angegebene Datei fehlt oder über die falsche Dateierweiterung verfügt, finden Sie diese Dateinamen in LogCollectionInfo.txtaufgeführt.

Protokollsammlungsfehler

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

Fehlercode (hex) Fehlercode (dec) Fehlermeldung Schritte zur Fehlerbehebung
0X87D300D1 2016214834 Die Protokolldatei 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. Wiederholen Sie den Protokollupload. Wiederholen Sie die Aktion Protokolle sammeln .
2016214828 Die Anzahl der Protokolldateien hat den zulässigen Grenzwert 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. Wiederholen Sie den Protokollupload. Wiederholen Sie die Aktion Protokolle sammeln .
2016214740 Die Protokolle konnten nicht verschlüsselt werden, da keine komprimierten Protokolle 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 einem verwalteten macOS-Gerät 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. Wählen Sie Geräte>macOS>Benutzerdefinierte Attribute>Hinzufügen aus.

  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 vom Skript zurückgegeben wird. Verfügbare Werte sind String, Integer und Date.
    • 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 muss 20 KB oder weniger 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 Zuweisungen auf Einzuschließende Gruppen auswählen. Wenn Sie Gruppen auswählen auswählen, um eine vorhandene Liste von Microsoft Entra Gruppen einzuschließen, wird angezeigt. Wählen Sie einen oder mehrere Benutzer- oder Gerätegruppen aus, die das Skript erhalten sollen. Klicken Sie auf Auswählen. Die von Ihnen 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 im Dropdownfeld neben Zuweisen zu eine dieser Optionen 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 für die von Ihnen ausgewählten Gruppen bereitgestellt.

Das skript, das Sie erstellt haben, wird jetzt 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 benutzerdefinierten Attributrichtlinie

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>Auswählen des zu überwachenden> benutzerdefinierten AttributprofilsGeräte status
  • Benutzerdefinierte Attribute>Auswählen des zu überwachenden> benutzerdefinierten AttributprofilsBenutzer-status

Wichtig

Shellskripts, die in benutzerdefinierten Attributprofilen bereitgestellt werden, werden alle 8 Stunden auf verwalteten Macs ausgeführt und gemeldet.

Sobald ein benutzerdefiniertes Attributprofil ausgeführt wird, wird einer der folgenden Status zurückgegeben:

  • Die status Fehler gibt an, dass das Skript einen Exitcode ungleich Null zurückgegeben hat oder dass das Skript falsch formatiert ist. Der Fehler wird in der Spalte Ergebnis gemeldet.
  • Wie status von Success an, dass das Skript null als Exitcode zurückgegeben hat. Die vom Skript wiedergegebene Ausgabe wird in der Spalte Ergebnis gemeldet.

Häufig gestellte Fragen

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

Es kann mehrere Gründe geben:

  • Der Agent muss möglicherweise einchecken, um neue oder aktualisierte Skripts zu erhalten. Dieser Check-In-Prozess erfolgt alle 8 Stunden und unterscheidet sich vom MDM-Check-In. Stellen Sie sicher, dass das Gerät aktiv ist und mit einem Netzwerk verbunden ist, um einen erfolgreichen Agent einzuchecken, und warten Sie, bis der Agent eingecheckt ist. Sie können den Endbenutzer auch auffordern, 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 unter /Library/Intune/Microsoft Intune Agent.app installiert ist.
  • Der Agent befindet sich möglicherweise nicht in einem fehlerfreien Zustand. Der Agent versucht, sich 24 Stunden lang wiederherzustellen, entfernt sich selbst und installiert neu, wenn noch Shellskripts zugewiesen sind.

Wie häufig werden Skriptausführungen status gemeldet?

Die Skriptausführung status wird Microsoft Intune Admin Center gemeldet, sobald die Skriptausführung abgeschlossen ist. Wenn geplant ist, dass ein Skript regelmäßig mit einer festgelegten Häufigkeit ausgeführt wird, meldet es nur status bei der ersten Ausführung.

Wann werden Shellskripts erneut ausgeführt?

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

Welche Intune-Rollenberechtigungen sind für Shellskripts erforderlich?

Ihre rolle assigned-intune erfordert Berechtigungen für Gerätekonfigurationen zum Löschen, Zuweisen, Erstellen, Aktualisieren oder Lesen von Shellskripts.

Bekannte Probleme

  • Keine Skriptausführung status: In dem unwahrscheinlichen Fall, dass ein Skript auf dem Gerät empfangen wird und das Gerät offline geschaltet wird, bevor die Ausführung status gemeldet wird, meldet das Gerät keine Ausführung status für das Skript im Admin Center.

Weitere Informationen

Wenn Sie Shellskripts oder benutzerdefinierte Attribute für macOS-Geräte von 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