Usare script della shell nei dispositivi macOS in Intune

Usare gli script della shell per estendere le funzionalità di gestione dei dispositivi in Intune, oltre a quelle supportate dal sistema operativo macOS.

Nota

Rosetta 2 è necessario per eseguire la versione x64 (Intel) delle app su Apple Silicon Macs. Per installare automaticamente Rosetta 2 in Apple Silicon Macs, è possibile distribuire uno script della shell in Intune. Per visualizzare uno script di esempio, vedere Script di installazione di Rosetta 2.

Prerequisiti

Assicurarsi che i prerequisiti seguenti vengano soddisfatti durante la composizione degli script della shell e l'assegnazione a dispositivi macOS.

  • I dispositivi eseguono macOS 12.0 o versione successiva.
  • I dispositivi sono gestiti da Intune.
  • I dispositivi sono connessi direttamente a Internet. La connessione tramite un proxy non è supportata.
  • Gli script della shell iniziano con #! e devono trovarsi in una posizione valida, ad #!/bin/sh esempio o #!/usr/bin/env zsh.
  • Vengono installati interpreti della riga di comando per le shell applicabili.

Considerazioni importanti prima di usare gli script della shell

  • Gli script della shell richiedono che l'agente di gestione Microsoft Intune sia installato correttamente nel dispositivo macOS. Per altre informazioni, vedere Microsoft Intune agente di gestione per macOS.
  • Gli script della shell vengono eseguiti in parallelo nei dispositivi come processi separati.
  • Gli script della shell eseguiti come utente connesso verranno eseguiti per tutti gli account utente attualmente connessi nel dispositivo al momento dell'esecuzione.
  • Un utente finale deve accedere al dispositivo per eseguire script in esecuzione come utente connesso.
  • I privilegi utente radice sono necessari se lo script richiede modifiche non consentite da un account utente standard.
  • Gli script della shell tenteranno di essere eseguiti più frequentemente della frequenza di script scelta per determinate condizioni, ad esempio se il disco è pieno, se il percorso di archiviazione viene manomesso, se la cache locale viene eliminata o se il dispositivo Mac viene riavviato.
  • Gli script della shell in esecuzione per più di 60 minuti vengono arrestati e segnalati come "non riusciti".

Creare e assegnare criteri di script della shell

  1. Accedere all'interfaccia di amministrazione Microsoft Intune.

  2. Selezionare DispositivimacOS Shell scripts Add (Dispositivi >macOS>Shell scripts>Add).

  3. In Nozioni di base immettere le proprietà seguenti e selezionare Avanti:

    • Nome: immettere un nome per lo script della shell.
    • Descrizione: immettere una descrizione per lo script della shell. Questa impostazione è facoltativa ma consigliata.
  4. In Impostazioni script immettere le proprietà seguenti e selezionare Avanti:

    • Carica script: passare allo script della shell. Il file di script deve avere dimensioni inferiori a 200 KB.
    • Eseguire lo script come utente connesso: selezionare per eseguire lo script con le credenziali dell'utente nel dispositivo. Scegliere No (impostazione predefinita) per eseguire lo script come utente radice.
    • Nascondere le notifiche degli script nei dispositivi: Per impostazione predefinita, le notifiche degli script vengono visualizzate per ogni script eseguito. Gli utenti finali vedono che un IT sta configurando la notifica del computer da Intune nei dispositivi macOS.
    • Frequenza degli script: Selezionare la frequenza di esecuzione dello script. Scegliere Non configurato (impostazione predefinita) per eseguire uno script una sola volta. Gli script con un set di frequenza verranno eseguiti anche dopo il riavvio di un dispositivo.
    • Numero massimo di tentativi in caso di errore dello script: Selezionare il numero di volte in cui lo script deve essere eseguito se restituisce un codice di uscita diverso da zero (zero significa esito positivo). Scegliere Non configurato (impostazione predefinita) per non ripetere i tentativi in caso di errore di uno script.
  5. In Tag ambito aggiungere facoltativamente tag di ambito per lo script e selezionare Avanti. È possibile usare i tag di ambito per determinare chi può visualizzare gli script in Intune. Per informazioni dettagliate sui tag di ambito, vedere Usare il controllo degli accessi in base al ruolo e i tag di ambito per l'IT distribuito.

  6. Selezionare AssegnazioniSelezionare i >gruppi da includere. Viene visualizzato un elenco esistente di gruppi di Microsoft Entra. Selezionare uno o più gruppi di utenti o dispositivi che riceveranno lo script. Scegliere Seleziona. I gruppi scelti vengono visualizzati nell'elenco e riceveranno i criteri script.

    Nota

    • Gli script della shell assegnati ai gruppi di utenti si applicano a qualsiasi utente che accede al Mac.
    • L'aggiornamento delle assegnazioni per gli script della shell aggiorna anche le assegnazioni per Microsoft Intune'agente MDM per macOS.
  7. In Rivedi e aggiungi viene visualizzato un riepilogo delle impostazioni configurate. Selezionare Aggiungi per salvare lo script. Quando si seleziona Aggiungi, i criteri di script vengono distribuiti ai gruppi scelti.

Lo script creato viene visualizzato nell'elenco di script. Se necessario, è possibile visualizzare il contenuto degli script della shell macOS dopo averli caricati in Intune.

Monitorare i criteri di script della shell

È possibile monitorare lo stato di esecuzione di tutti gli script assegnati per utenti e dispositivi scegliendo uno dei report seguenti:

  • Script>selezionare lo script da monitorare>Stato del dispositivo
  • Script>selezionare lo script da monitorare>Stato utente

Importante

Indipendentemente dalla frequenza di script selezionata, lo stato di esecuzione dello script viene segnalato solo la prima volta che viene eseguito uno script. Lo stato di esecuzione dello script non viene aggiornato nelle esecuzioni successive. Tuttavia, gli script aggiornati vengono considerati come nuovi script e segnalano nuovamente lo stato di esecuzione.

Dopo l'esecuzione di uno script, restituisce uno degli stati seguenti:

  • Lo stato di esecuzione dello script non riuscito indica che lo script ha restituito un codice di uscita diverso da zero o che lo script non è valido.
  • Lo stato di esecuzione dello script success indica che lo script ha restituito zero come codice di uscita.

Risolvere i problemi relativi ai criteri di script della shell macOS usando la raccolta di log

È possibile raccogliere i log dei dispositivi per risolvere i problemi di script nei dispositivi macOS.

Requisiti per la raccolta dei log

Per raccogliere i log in un dispositivo macOS sono necessari gli elementi seguenti:

  • È necessario specificare il percorso completo del file di log assoluto.
  • I percorsi dei file devono essere separati usando solo un punto e virgola (;).
  • Le dimensioni massime della raccolta log da caricare sono 60 MB (compresse) o 25 file, a seconda di quale si verifichi per primo.
  • I tipi di file consentiti per la raccolta dei log includono le estensioni seguenti: .log, .zip, .gz, .tar, .txt, .xml, crash, .rtf

Raccogliere i log dei dispositivi

  1. Accedere all'interfaccia di amministrazione Microsoft Intune.

  2. Passare a Script dispositivi> e selezionare uno script della shell macOS.

  3. In Stato dispositivo o Report stato utente selezionare un dispositivo.

  4. Selezionare Raccogli log, specificare i percorsi delle cartelle dei file di log separati solo da un punto e virgola (;) senza spazi o nuove linee tra i percorsi.
    Ad esempio, più percorsi devono essere scritti come /Path/to/logfile1.zip;/Path/to/logfile2.log.

    Importante

    Più percorsi di file di log separati da virgole, punti, nuove righe o virgolette con o senza spazi genereranno un errore di raccolta log. Gli spazi non sono inoltre consentiti come separatori tra percorsi.

  5. Seleziona OK. I log vengono raccolti la volta successiva che l'agente di gestione di Intune nel dispositivo esegue l'accesso con Intune. Questo check-in si verifica in genere ogni 8 ore.

    Nota

    • I log raccolti vengono crittografati nel dispositivo, trasmessi e archiviati nell'archiviazione di Microsoft Azure per 30 giorni. I log archiviati vengono decrittografati su richiesta e scaricati usando Microsoft Intune'interfaccia di amministrazione.
    • Oltre ai log specificati dall'amministratore, i log dell'agente di gestione di Intune vengono raccolti anche da queste cartelle: /Library/Logs/Microsoft/Intune e ~/Library/Logs/Microsoft/Intune. I nomi dei file di log dell'agente sono IntuneMDMDaemon date--time.log e IntuneMDMAgent date--time.log.
    • Se manca un file specificato dall'amministratore o l'estensione di file non è corretta, questi nomi di file sono elencati in LogCollectionInfo.txt.

Errori di raccolta log

La raccolta dei log potrebbe non riuscire a causa di uno dei motivi seguenti indicati nella tabella seguente. Per risolvere questi errori, seguire la procedura di correzione.

Codice di errore (esadecimale) Codice di errore (dec) Messaggio di errore Passaggi di correzione
0X87D300D1 2016214834 Le dimensioni del file di log non possono superare i 60 MB. Assicurarsi che le dimensioni dei log compressi siano inferiori a 60 MB.
0X87D300D1 2016214831 Il percorso del file di log specificato deve esistere. La cartella utente di sistema non è un percorso valido per i file di log. Assicurarsi che il percorso del file specificato sia valido e accessibile.
0X87D300D2 2016214830 Caricamento del file di raccolta log non riuscito a causa della scadenza dell'URL di caricamento. Ripetere l'azione Raccogli log .
0X87D300D3, 0X87D300D5, 0X87D300D7 2016214829, 2016214827, 2016214825 Caricamento del file di raccolta log non riuscito a causa di un errore di crittografia. Ripetere il caricamento del log. Ripetere l'azione Raccogli log .
2016214828 Il numero di file di log ha superato il limite consentito di 25 file. È possibile raccogliere solo fino a 25 file di log alla volta.
0X87D300D6 2016214826 Caricamento del file di raccolta log non riuscito a causa di un errore zip. Ripetere il caricamento del log. Ripetere l'azione Raccogli log .
2016214740 I log non possono essere crittografati perché non sono stati trovati log compressi. Ripetere l'azione Raccogli log .
2016214739 I log sono stati raccolti ma non possono essere archiviati. Ripetere l'azione Raccogli log .

Attributi personalizzati per macOS

È possibile creare profili di attributo personalizzati che consentono di raccogliere proprietà personalizzate dal dispositivo macOS gestito usando script della shell.

Creare e assegnare un attributo personalizzato per i dispositivi macOS

  1. Accedere all'interfaccia di amministrazione Microsoft Intune.

  2. Selezionare Dispositivi>macOS>Attributi> personalizzatiAggiungi.

  3. In Nozioni di base immettere le proprietà seguenti e selezionare Avanti:

    • Nome: immettere un nome per lo script.
    • Descrizione: immettere una descrizione per lo script. Questa impostazione è facoltativa ma consigliata.
  4. In Impostazioni attributo immettere le proprietà seguenti e selezionare Avanti:

    • Tipo di dati dell'attributo: selezionare il tipo di dati del risultato restituito dallo script. I valori disponibili sono String, Integer e Date.
    • Script: selezionare un file di script.

    Dettagli aggiuntivi:

    • Lo script della shell deve eseguire l'eco dell'attributo da segnalare e il tipo di dati dell'output deve corrispondere al tipo di dati dell'attributo nel profilo di attributo personalizzato.
    • Il risultato restituito dallo script della shell deve essere uguale o inferiore a 20 KB.

    Nota

    Quando si usano Date attributi di tipo, assicurarsi che lo script della shell restituisca le date in formato ISO-8601. Vedere gli esempi seguenti.

    Per stampare una data conforme a ISO-8601 con fuso orario:

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

    Per stampare una data conforme a ISO-8601 nell'ora UTC:

    #!/bin/sh
    var=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
    echo $var # Prints an ISO-8601 compliant date in UTC time
    
  5. In Assegnazioni fare clic su Seleziona gruppi da includere. Quando si sceglie Seleziona gruppi per includere un elenco esistente di Microsoft Entra gruppi viene visualizzato. Selezionare uno o più gruppi di utenti o dispositivi che riceveranno lo script. Scegliere Seleziona. I gruppi scelti vengono visualizzati nell'elenco e riceveranno i criteri script. In alternativa, è possibile scegliere di selezionare Tutti gli utenti, Tutti i dispositivi o Tutti gli utenti e tutti i dispositivi selezionando una di queste opzioni nella casella a discesa accanto a Assegna a.

    Nota

    • Gli script assegnati ai gruppi di utenti si applicano a qualsiasi utente che accede al Mac.
  6. In Rivedi e aggiungi viene visualizzato un riepilogo delle impostazioni configurate. Selezionare Aggiungi per salvare lo script. Quando si seleziona Aggiungi, i criteri di script vengono distribuiti ai gruppi scelti.

Lo script creato viene ora visualizzato nell'elenco degli attributi personalizzati. Se necessario, è possibile visualizzare il contenuto degli attributi personalizzati dopo averli caricati in Intune.

Monitorare un criterio di attributo personalizzato

È possibile monitorare lo stato di esecuzione di tutti i profili di attributo personalizzati assegnati per utenti e dispositivi scegliendo uno dei report seguenti:

  • Attributi> personalizzatiselezionare il profilo di attributo personalizzato da monitorare>Stato del dispositivo
  • Attributi> personalizzatiselezionare il profilo di attributo personalizzato da monitorare>Stato utente

Importante

Gli script della shell forniti nei profili di attributo personalizzati vengono eseguiti ogni 8 ore su Mac gestiti e segnalati.

Dopo l'esecuzione di un profilo di attributo personalizzato, restituisce uno degli stati seguenti:

  • Lo stato Failed indica che lo script ha restituito un codice di uscita diverso da zero o che lo script non è valido. L'errore viene segnalato nella colonna Risultato .
  • Come stato success indica che lo script ha restituito zero come codice di uscita. L'output restituito dallo script viene segnalato nella colonna Risultato .

Domande frequenti

Perché gli script della shell assegnati non vengono eseguiti nel dispositivo?

I motivi potrebbero essere diversi:

  • Potrebbe essere necessario archiviare l'agente per ricevere script nuovi o aggiornati. Questo processo di archiviazione si verifica ogni 8 ore ed è diverso dall'archiviazione MDM. Assicurarsi che il dispositivo sia attivo e connesso a una rete per un check-in dell'agente e attendere che l'agente effettui il check-in. È anche possibile richiedere all'utente finale di aprire Portale aziendale nel Mac, selezionare il dispositivo e fare clic su Controlla impostazioni.
  • L'agente potrebbe non essere installato. Verificare che l'agente sia installato in /Library/Intune/Microsoft Intune Agent.app nel dispositivo macOS.
  • L'agente potrebbe non trovarsi in uno stato integro. L'agente tenterà di eseguire il ripristino per 24 ore, si rimuoverà e reinstallerà se gli script della shell sono ancora assegnati.

Con quale frequenza viene segnalato lo stato di esecuzione dello script?

Lo stato di esecuzione dello script viene segnalato all'interfaccia di amministrazione Microsoft Intune non appena viene completata l'esecuzione dello script. Se uno script viene pianificato per l'esecuzione periodica a una frequenza impostata, segnala solo lo stato alla prima esecuzione.

Quando vengono eseguiti di nuovo gli script della shell?

Uno script viene eseguito di nuovo solo quando l'impostazione Numero massimo di tentativi in caso di errore dello script viene configurata e lo script non riesce durante l'esecuzione. Se il numero massimo di tentativi in caso di errore dello script non è configurato e uno script non riesce durante l'esecuzione, non verrà eseguito di nuovo e lo stato di esecuzione verrà segnalato come non riuscito.

Quali autorizzazioni del ruolo di Intune sono necessarie per gli script della shell?

Il ruolo assegnato-intune richiede le autorizzazioni configurazioni del dispositivo per eliminare, assegnare, creare, aggiornare o leggere script della shell.

Problemi noti

  • Nessun stato di esecuzione dello script: Nell'improbabile caso in cui venga ricevuto uno script nel dispositivo e che il dispositivo passi offline prima che venga segnalato lo stato di esecuzione, il dispositivo non segnalerà lo stato di esecuzione per lo script nell'interfaccia di amministrazione.

Informazioni aggiuntive

Quando si distribuiscono script della shell o attributi personalizzati per i dispositivi macOS da Microsoft Intune, viene distribuita la nuova versione universale dell'app dell'agente di gestione di Intune che viene eseguita in modo nativo nei computer Apple Silicon Mac. La stessa distribuzione installerà la versione x64 dell'app nei computer Intel Mac. Rosetta 2 è necessario per eseguire la versione x64 (Intel) delle app su Apple Silicon Macs. Per installare automaticamente Rosetta 2 in Apple Silicon Macs, è possibile distribuire uno script della shell in Intune. Per visualizzare uno script di esempio, vedere Script di installazione di Rosetta 2.

Passaggi successivi