Använda shell-skript på macOS-enheter i Intune

Använd shell-skript för att utöka enhetshanteringsfunktionerna i Intune, utöver vad som stöds av macOS-operativsystemet.

Obs!

Rosetta 2 krävs för att köra x64-versionen (Intel) av appar på Apple Silicon Macs. Om du vill installera Rosetta 2 på Apple Silicon Macs automatiskt kan du distribuera ett gränssnittsskript i Intune. Information om hur du visar ett exempelskript finns i Installationsskript för Rosetta 2.

Förhandskrav

Se till att följande krav uppfylls när du skapar shell-skript och tilldelar dem till macOS-enheter.

  • Enheter kör macOS 12.0 eller senare.
  • Enheter hanteras av Intune.
  • Enheter är anslutna direkt till Internet. Anslutning via en proxy stöds inte.
  • Shell-skript börjar med #! och måste finnas på en giltig plats, #!/bin/sh till exempel eller #!/usr/bin/env zsh.
  • Kommandoradstolkar för tillämpliga gränssnitt installeras.

Viktiga överväganden innan du använder shell-skript

  • Shell-skript kräver att Microsoft Intune-hanteringsagenten har installerats på macOS-enheten. Mer information finns i Microsoft Intune-hanteringsagenten för macOS.
  • Shell-skript körs parallellt på enheter som separata processer.
  • Shell-skript som körs som den inloggade användaren körs för alla för närvarande inloggade användarkonton på enheten vid tidpunkten för körningen.
  • En slutanvändare måste logga in på enheten för att köra skript som körs som en inloggad användare.
  • Rotanvändarbehörigheter krävs om skriptet kräver ändringar som ett standardanvändarkonto inte kan göra.
  • Shell-skript försöker köras oftare än den valda skriptfrekvensen för vissa villkor, till exempel om disken är full, om lagringsplatsen har manipulerats, om den lokala cachen tas bort eller om Mac-enheten startas om.
  • Shell-skript som körs i mer än 60 minuter stoppas och rapporteras som "misslyckade".

Skapa och tilldela en gränssnittsskriptprincip

  1. Logga in på Microsoft Intune administrationscenter.

  2. Välj Enheter>Efter plattform>macOS>Hantera enheter>Skript>Lägg till.

  3. I Grundläggande anger du följande egenskaper och väljer Nästa:

    • Namn: Ange ett namn för shell-skriptet.
    • Beskrivning: Ange en beskrivning av shell-skriptet. Denna inställning är valfri, men rekommenderas.
  4. I Skriptinställningar anger du följande egenskaper och väljer Nästa:

    • Ladda upp skript: Bläddra till shell-skriptet. Skriptfilen måste vara mindre än 200 KB.
    • Kör skriptet som inloggad användare: Välj Ja om du vill köra skriptet med användarens autentiseringsuppgifter på enheten. Välj Nej (standard) för att köra skriptet som rotanvändare.
    • Dölj skriptmeddelanden på enheter: Som standard visas skriptmeddelanden för varje skript som körs. Slutanvändarna ser att EN IT konfigurerar datorns meddelande från Intune på macOS-enheter.
    • Skriptfrekvens: Välj hur ofta skriptet ska köras. Välj Inte konfigurerad (standard) om du bara vill köra ett skript en gång. Skript med en frekvensuppsättning körs också efter en omstart av enheten.
    • Maximalt antal gånger som skriptet misslyckas om skriptet misslyckas: Välj hur många gånger skriptet ska köras om det returnerar en slutkod som inte är noll (noll betyder lyckades). Välj Inte konfigurerad (standard) för att inte försöka igen när ett skript misslyckas.
  5. I Omfångstaggar kan du lägga till omfångstaggar för skriptet och välja Nästa. Du kan använda omfångstaggar för att avgöra vem som kan se skript i Intune. Fullständig information om omfångstaggar finns i Använda rollbaserad åtkomstkontroll och omfångstaggar för distribuerad IT.

  6. Välj TilldelningarVälj grupper som ska inkluderas>. En befintlig lista över Microsoft Entra-grupper visas. Välj en eller flera användar- eller enhetsgrupper som ska ta emot skriptet. Välj Välj. De grupper som du väljer visas i listan och får din skriptprincip.

    Obs!

    • Shell-skript som tilldelats användargrupper gäller för alla användare som loggar in på Mac.
    • Uppdatering av tilldelningar för shell-skript uppdaterar även tilldelningar för Microsoft Intune MDM-agenten för macOS.
  7. I Granska + lägg till visas en sammanfattning av de inställningar som du har konfigurerat. Välj Lägg till för att spara skriptet. När du väljer Lägg till distribueras skriptprincipen till de grupper som du har valt.

Skriptet som du skapade visas nu i listan över skript. Om det behövs kan du visa innehållet i macOS-gränssnittsskript när du har laddat upp dem till Intune.

Övervaka en gränssnittsskriptprincip

Du kan övervaka körningsstatusen för alla tilldelade skript för användare och enheter genom att välja någon av följande rapporter:

  • Skript>välj det skript som ska övervakas>Enhetsstatus
  • Skript>välj det skript som ska övervakas>Användarstatus

Viktigt

Oavsett vald skriptfrekvens rapporteras skriptkörningsstatusen bara första gången ett skript körs. Skriptkörningsstatus uppdateras inte vid efterföljande körningar. Uppdaterade skript behandlas dock som nya skript och rapporterar körningsstatusen igen.

När ett skript körs returneras någon av följande statusar:

  • Skriptkörningsstatusen Misslyckades anger att skriptet returnerade en slutkod som inte är noll eller att skriptet är felaktigt.
  • En skriptkörningsstatus för Lyckades visade att skriptet returnerade noll som slutkod.

Felsöka macOS-gränssnittsskriptprinciper med hjälp av loggsamling

Du kan samla in enhetsloggar för att felsöka skriptproblem på macOS-enheter.

Krav för logginsamling

Följande objekt krävs för att samla in loggar på en macOS-enhet:

  • Du måste ange den fullständiga absoluta loggfilsökvägen.
  • Filsökvägar får endast avgränsas med semikolon (;).
  • Den maximala loggsamlingsstorleken som ska laddas upp är 60 MB (komprimerad) eller 25 filer, beroende på vilket som inträffar först.
  • Filtyper som tillåts för logginsamling omfattar följande tillägg: .log, .zip, .gz, .tar, .txt, .xml, .crash, .rtf

Samla in enhetsloggar

  1. Logga in på Microsoft Intune administrationscenter.

  2. Gå till Enheter>Hantera enheter>Skript och reparation>Plattformsskript och välj ett macOS-gränssnittsskript.

  3. I Rapporten Enhetsstatus eller Användarstatus väljer du en enhet.

  4. Välj Samla in loggar, ange mappsökvägar för loggfiler som endast avgränsas med semikolon (;) utan blanksteg eller nya banor mellan sökvägarna.
    Till exempel ska flera sökvägar skrivas som /Path/to/logfile1.zip;/Path/to/logfile2.log.

    Viktigt

    Flera sökvägar för loggfiler avgränsade med kommatecken, punkt, ny rad eller citattecken med eller utan blanksteg resulterar i logginsamlingsfel. Blanksteg tillåts inte heller som avgränsare mellan sökvägar.

  5. Välj OK. Loggar samlas in nästa gång Intune-hanteringsagenten på enheten checkar in med Intune. Den här incheckningen sker vanligtvis var 8:e timme.

    Obs!

    • Insamlade loggar krypteras på enheten, överförs och lagras i Microsoft Azure Storage i 30 dagar. Lagrade loggar dekrypteras på begäran och laddas ned med hjälp av administrationscentret för Microsoft Intune.
    • Förutom de administratörsspecifika loggarna samlas loggarna för Intune-hanteringsagenten också in från dessa mappar: /Library/Logs/Microsoft/Intune och ~/Library/Logs/Microsoft/Intune. Agentloggfilnamnen är IntuneMDMDaemon date--time.log och IntuneMDMAgent date--time.log.
    • Om en administratörs angiven fil saknas eller har fel filnamnstillägg hittar du de här filnamnen i LogCollectionInfo.txt.

Logginsamlingsfel

Logginsamlingen kanske inte lyckas på grund av någon av följande orsaker som anges i tabellen nedan. Följ reparationsstegen för att lösa dessa fel.

Felkod (hex) Felkod (dec) Felmeddelande Reparationssteg
0X87D300D1 2016214834 Loggfilens storlek får inte överstiga 60 MB. Kontrollera att komprimerade loggar är mindre än 60 MB stora.
0X87D300D1 2016214831 Den angivna loggfilsökvägen måste finnas. Systemanvändarmappen är en ogiltig plats för loggfiler. Kontrollera att den angivna filsökvägen är giltig och tillgänglig.
0X87D300D2 2016214830 Det gick inte att ladda upp loggsamlingsfilen på grund av att uppladdnings-URL:en upphör att gälla. Försök igen med åtgärden Samla in loggar .
0X87D300D3, 0X87D300D5, 0X87D300D7 2016214829, 2016214827, 2016214825 Det gick inte att ladda upp loggsamlingsfilen på grund av krypteringsfel. Försök att ladda upp loggen igen. Försök igen med åtgärden Samla in loggar .
2016214828 Antalet loggfiler överskred den tillåtna gränsen på 25 filer. Endast upp till 25 loggfiler kan samlas in åt gången.
0X87D300D6 2016214826 Det gick inte att ladda upp loggsamlingsfilen på grund av zip-fel. Försök att ladda upp loggen igen. Försök igen med åtgärden Samla in loggar .
2016214740 Det gick inte att kryptera loggarna eftersom komprimerade loggar inte hittades. Försök igen med åtgärden Samla in loggar .
2016214739 Loggarna samlades in men kunde inte lagras. Försök igen med åtgärden Samla in loggar .

Anpassade attribut för macOS

Du kan skapa anpassade attributprofiler som gör att du kan samla in anpassade egenskaper från en hanterad macOS-enhet med hjälp av shell-skript.

Skapa och tilldela ett anpassat attribut för macOS-enheter

  1. Logga in på Microsoft Intune administrationscenter.

  2. Välj Enheter>Efter plattform>macOS>Organisera enheter>Anpassade attribut för macOS>Lägg till.

  3. I Grundläggande anger du följande egenskaper och väljer Nästa:

    • Namn: Ange ett namn för skriptet.
    • Beskrivning: Ange en beskrivning av skriptet. Denna inställning är valfri, men rekommenderas.
  4. I Attributinställningar anger du följande egenskaper och väljer Nästa:

    • Datatyp för attribut: Välj datatypen för resultatet som skriptet returnerar. Tillgängliga värden är Sträng, Heltal och Datum.
    • Skript: Välj en skriptfil.

    Ytterligare information:

    • Shell-skriptet måste upprepa attributet som ska rapporteras och datatypen för utdata måste matcha datatypen för attributet i den anpassade attributprofilen.
    • Resultatet som returneras av shell-skriptet måste vara 20 KB eller mindre.

    Obs!

    När du använder Date typattribut kontrollerar du att shell-skriptet returnerar datum i ISO-8601-format. Se exemplen nedan.

    Så här skriver du ut ett ISO-8601-kompatibelt datum med tidszon:

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

    Så här skriver du ut ett ISO-8601-kompatibelt datum i UTC-tid:

    #!/bin/sh
    var=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
    echo $var # Prints an ISO-8601 compliant date in UTC time
    
  5. I Tilldelningar klickar du på Välj grupper som ska inkluderas. När du väljer Välj grupper för att inkludera en befintlig lista över Microsoft Entra-grupper visas. Välj en eller flera användar- eller enhetsgrupper som ska ta emot skriptet. Välj Välj. De grupper som du väljer visas i listan och får din skriptprincip. Du kan också välja Alla användare, Alla enheter eller Alla användare och alla enheter genom att välja något av dessa alternativ i listrutan bredvid Tilldela till.

    Obs!

    • Skript som tilldelats till användargrupper gäller för alla användare som loggar in på Mac.
  6. I Granska + lägg till visas en sammanfattning av de inställningar som du har konfigurerat. Välj Lägg till för att spara skriptet. När du väljer Lägg till distribueras skriptprincipen till de grupper som du har valt.

Skriptet som du skapade visas nu i listan över anpassade attribut. Om det behövs kan du visa innehållet i anpassade attribut när du har laddat upp dem till Intune.

Övervaka en anpassad attributprincip

Du kan övervaka körningsstatusen för alla tilldelade anpassade attributprofiler för användare och enheter genom att välja någon av följande rapporter:

  • Anpassade attribut>välj den anpassade attributprofil som ska övervakas>Enhetsstatus
  • Anpassade attribut>välj den anpassade attributprofil som ska övervakas>Användarstatus

Viktigt

Shell-skript som tillhandahålls i anpassade attributprofiler körs var 8:e timme på hanterade Mac-datorer och rapporteras.

När en anpassad attributprofil körs returneras någon av följande statusar:

  • Statusen Misslyckades anger att skriptet returnerade en slutkod som inte är noll eller att skriptet är felaktigt. Felet rapporteras i kolumnen Resultat .
  • Statusen Lyckades anger att skriptet returnerade noll som slutkod. Utdata som upprepas av skriptet rapporteras i kolumnen Resultat .

Vanliga frågor och svar

Varför körs inte tilldelade shell-skript på enheten?

Det kan finnas flera orsaker:

  • Agenten kan behöva checka in för att få nya eller uppdaterade skript. Den här incheckningsprocessen sker var 8:e timme och skiljer sig från MDM-incheckningen. Kontrollera att enheten är aktiv och ansluten till ett nätverk för en lyckad agentkontroll och vänta tills agenten checkar in. Du kan också begära att slutanvändaren öppnar företagsportalen på Mac, markerar enheten och klickar på Kontrollera inställningar.
  • Agenten kanske inte är installerad. Kontrollera att agenten är installerad på /Library/Intune/Microsoft Intune Agent.app på macOS-enheten.
  • Agenten kanske inte är i ett felfritt tillstånd. Agenten försöker återställa i 24 timmar, ta bort sig själv och installera om om shell-skript fortfarande har tilldelats.

Hur ofta rapporteras skriptkörningsstatus?

Status för skriptkörning rapporteras till administrationscentret för Microsoft Intune så snart skriptkörningen är klar. Om ett skript är schemalagt att köras regelbundet med en angiven frekvens rapporterar det bara status första gången det körs.

När körs shell-skript igen?

Ett skript körs bara igen när inställningen Maximalt antal gånger att försöka igen om skriptet misslyckas har konfigurerats och skriptet misslyckas vid körning. Om maximalt antal gånger för att försöka igen om skriptet misslyckas inte har konfigurerats och ett skript misslyckas vid körning, körs det inte igen och körningsstatusen rapporteras som misslyckad.

Vilka Intune-rollbehörigheter krävs för shell-skript?

Din tilldelade intune-roll kräver behörigheter för enhetskonfigurationer för att ta bort, tilldela, skapa, uppdatera eller läsa gränssnittsskript.

Kända problem

  • Ingen körningsstatus för skript: I den osannolika händelsen att ett skript tas emot på enheten och enheten kopplas från innan körningsstatusen rapporteras rapporterar enheten inte körningsstatus för skriptet i administrationscentret.

Ytterligare information

När du distribuerar shell-skript eller anpassade attribut för macOS-enheter från Microsoft Intune distribueras den nya universella versionen av Intune-hanteringsagentappen som körs internt på Apple Silicon Mac-datorer. Samma distribution installerar x64-versionen av appen på Intel Mac-datorer. Rosetta 2 krävs för att köra x64-versionen (Intel) av appar på Apple Silicon Macs. Om du vill installera Rosetta 2 på Apple Silicon Macs automatiskt kan du distribuera ett gränssnittsskript i Intune. Information om hur du visar ett exempelskript finns i Installationsskript för Rosetta 2.

Nästa steg