Utilizar scripts de shell em dispositivos macOS no Intune

Utilize scripts de shell para expandir as capacidades de gestão de dispositivos no Intune, para além do que é suportado pelo sistema operativo macOS.

Observação

Rosetta 2 é necessário para executar a versão x64 (Intel) de aplicativos em Macs Apple Silicon. Para instalar a Rosetta 2 no Apple Silicon Macs automaticamente, pode implementar um script de shell no Intune. Para ver um script de exemplo, veja Rosetta 2 Installation Script (Script de Instalação rosetta 2).

Pré-requisitos

Certifique-se de que os seguintes pré-requisitos são cumpridos ao compor scripts de shell e atribuí-los a dispositivos macOS.

  • Os dispositivos estão a executar o macOS 12.0 ou posterior.
  • Os dispositivos são geridos pelo Intune.
  • Os dispositivos estão ligados diretamente à Internet. A ligação através de um proxy não é suportada.
  • Os scripts da shell começam com #! e têm de estar numa localização válida, como #!/bin/sh ou #!/usr/bin/env zsh.
  • Estão instalados intérpretes de linha de comandos para as shells aplicáveis.

Considerações importantes antes de utilizar scripts de shell

  • Os scripts da shell exigem que o agente de gestão do Microsoft Intune seja instalado com êxito no dispositivo macOS. Para obter mais informações, confira Agente de gerenciamento do Microsoft Intune para macOS.
  • Os scripts de shell são executados em paralelo nos dispositivos como processos separados.
  • Os scripts de shell que são executados como o utilizador com sessão iniciada serão executados para todas as contas de utilizador atualmente com sessão iniciada no dispositivo no momento da execução.
  • É necessário um utilizador final para iniciar sessão no dispositivo para executar scripts em execução como um utilizador com sessão iniciada.
  • Os privilégios de utilizador raiz são necessários se o script exigir efetuar alterações que uma conta de utilizador padrão não possa fazer.
  • Os scripts da shell tentarão ser executados com mais frequência do que a frequência de script escolhida para determinadas condições, como, por exemplo, se o disco estiver cheio, se a localização de armazenamento for adulterada, se a cache local for eliminada ou se o dispositivo Mac for reiniciado.
  • Os scripts da shell que estão em execução há mais de 60 minutos são parados e comunicados como "com falhas".

Criar e atribuir uma política de script de shell

  1. Entre no Centro de administração do Microsoft Intune.

  2. Selecione Dispositivos>Por plataforma>macOS>Gerir dispositivos Scripts>>Adicionar.

  3. Em Noções Básicas, insira as seguintes propriedades e selecione Avançar:

    • Nome: introduza um nome para o script da shell.
    • Descrição: introduza uma descrição para o script da shell. Essa configuração é opcional, mas recomendada.
  4. Em Configurações de script, insira as seguintes propriedades e selecione Avançar:

    • Carregar script: navegue para o script da shell. O ficheiro de script tem de ter menos de 200 KB de tamanho.
    • Executar script como utilizador com sessão iniciada: selecione Sim para executar o script com as credenciais do utilizador no dispositivo. Selecione Não (predefinição) para executar o script como o utilizador raiz.
    • Ocultar notificações de script em dispositivos: Por predefinição, são apresentadas notificações de script para cada script executado. Os utilizadores finais veem que uma TI está a configurar a notificação do computador a partir do Intune em dispositivos macOS.
    • Frequência do script: Selecione a frequência com que o script vai ser executado. Selecione Não configurado (predefinição) para executar um script apenas uma vez. Os scripts com um conjunto de frequência também serão executados após um reinício do dispositivo.
    • Número máximo de vezes a repetir se o script falhar: Selecione o número de vezes que o script deve ser executado se devolver um código de saída diferente de zero (zero significa êxito). Selecione Não configurado (predefinição) para não repetir quando um script falha.
  5. Em Etiquetas de âmbito, adicione opcionalmente etiquetas de âmbito para o script e selecione Seguinte. Pode utilizar etiquetas de âmbito para determinar quem pode ver scripts no Intune. Para obter detalhes completos sobre etiquetas de âmbito, veja Utilizar o controlo de acesso baseado em funções e etiquetas de âmbito para TI distribuída.

  6. Selecione Atribuições>Selecionar grupos a serem incluídos. É apresentada uma lista existente de grupos do Microsoft Entra. Selecione um ou mais grupos de utilizadores ou dispositivos que vão receber o script. Escolha Selecionar. Os grupos que escolher são apresentados na lista e receberão a sua política de scripts.

    Observação

    • Os scripts de shell atribuídos a grupos de utilizadores aplicam-se a qualquer utilizador que inicie sessão no Mac.
    • A atualização de atribuições para scripts de shell também atualiza as atribuições do Agente MDM do Microsoft Intune para macOS.
  7. Em Examinar + adicionar, é mostrado um resumo das configurações definidas. Selecione Adicionar para salvar o script. Quando seleciona Adicionar, a política de script é implementada nos grupos que escolheu.

O script que criou aparece agora na lista de scripts. Se necessário, pode ver os conteúdos dos scripts da shell do macOS depois de os carregar para o Intune.

Monitorizar uma política de script de shell

Pode monitorizar o estado de execução de todos os scripts atribuídos para utilizadores e dispositivos ao escolher um dos seguintes relatórios:

  • Scripts>selecione o script a monitorizar>Estado do dispositivo
  • Scripts>selecione o script a monitorizar>Estado do utilizador

Importante

Independentemente da frequência de Script selecionada, o estado de execução do script é comunicado apenas na primeira vez que um script é executado. O estado da execução do script não é atualizado em execuções subsequentes. No entanto, os scripts atualizados são tratados como novos scripts e comunicarão novamente o estado da execução.

Quando um script é executado, devolve um dos seguintes estados:

  • Um estado de execução de script de Failed indica que o script devolveu um código de saída diferente de zero ou que o script tem um formato incorreto.
  • Um estado de execução de script com Êxito indicou que o script devolveu zero como o código de saída.

Resolver problemas de políticas de script da shell do macOS com a recolha de registos

Pode recolher registos de dispositivos para ajudar a resolver problemas de script em dispositivos macOS.

Requisitos para a recolha de registos

Os seguintes itens são necessários para recolher registos num dispositivo macOS:

  • Tem de especificar o caminho do ficheiro de registo absoluto completo.
  • Os caminhos dos ficheiros têm de ser separados utilizando apenas um ponto e vírgula (;).
  • O tamanho máximo da coleção de registos a carregar é de 60 MB (comprimidos) ou 25 ficheiros, o que ocorrer primeiro.
  • Os tipos de ficheiro permitidos para a recolha de registos incluem as seguintes extensões: .log, .zip, .gz, .tar, .txt, .xml, .crash, .rtf

Recolher registos de dispositivos

  1. Entre no Centro de administração do Microsoft Intune.

  2. Navegue para Dispositivos>Gerir dispositivos Scripts>e remediações Scripts> deplataforma e selecione um script de shell do macOS.

  3. Em Estado do dispositivo ou Relatório de estado do utilizador , selecione um dispositivo.

  4. Selecione Recolher registos, forneça caminhos de pastas de ficheiros de registo separados apenas por ponto e vírgula (;) sem espaços ou novas linhas entre caminhos.
    Por exemplo, vários caminhos devem ser escritos como /Path/to/logfile1.zip;/Path/to/logfile2.log.

    Importante

    Vários caminhos de ficheiro de registo separados por vírgula, ponto final, nova linha ou aspas com ou sem espaços resultarão num erro de recolha de registos. Os espaços também não são permitidos como separadores entre caminhos.

  5. Selecione OK. Os registos são recolhidos da próxima vez que o agente de gestão do Intune no dispositivo iniciar sessão com o Intune. Normalmente, esta entrada ocorre a cada 8 horas.

    Observação

    • Os registos recolhidos são encriptados no dispositivo, transmitidos e armazenados no armazenamento do Microsoft Azure durante 30 dias. Os registos armazenados são desencriptados a pedido e transferidos através do centro de administração do Microsoft Intune.
    • Além dos registos especificados pelo administrador, os registos do agente de gestão do Intune também são recolhidos a partir destas pastas: /Library/Logs/Microsoft/Intune e ~/Library/Logs/Microsoft/Intune. Os nomes de ficheiro de registo do agente são IntuneMDMDaemon date--time.log e IntuneMDMAgent date--time.log.
    • Se algum ficheiro especificado pelo administrador estiver em falta ou tiver a extensão de ficheiro errada, encontrará estes nomes de ficheiro listados em LogCollectionInfo.txt.

Erros de recolha de registos

A recolha de registos pode não ser bem-sucedida devido a qualquer um dos seguintes motivos indicados na tabela abaixo. Para resolver estes erros, siga os passos de remediação.

Código de erro (hex) Código de erro (dez) Mensagem de erro Etapas de correção
0X87D300D1 2016214834 O tamanho do ficheiro de registo não pode exceder os 60 MB. Certifique-se de que os registos comprimidos têm um tamanho inferior a 60 MB.
0X87D300D1 2016214831 O caminho do ficheiro de registo fornecido tem de existir. A pasta de utilizador do sistema é uma localização inválida para ficheiros de registo. Certifique-se de que o caminho do ficheiro fornecido é válido e acessível.
0X87D300D2 2016214830 O carregamento do ficheiro de recolha de registos falhou devido à expiração do URL de carregamento. Repita a ação Recolher registos .
0X87D300D3, 0X87D300D5, 0X87D300D7 2016214829, 2016214827, 2016214825 O carregamento do ficheiro de recolha de registos falhou devido a uma falha de encriptação. Repita o carregamento do registo. Repita a ação Recolher registos .
2016214828 O número de ficheiros de registo excedeu o limite permitido de 25 ficheiros. Apenas podem ser recolhidos até 25 ficheiros de registo de cada vez.
0X87D300D6 2016214826 O carregamento do ficheiro de recolha de registos falhou devido a um erro zip. Repita o carregamento do registo. Repita a ação Recolher registos .
2016214740 Não foi possível encriptar os registos porque não foram encontrados registos comprimidos. Repita a ação Recolher registos .
2016214739 Os registos foram recolhidos, mas não foi possível armazená-lo. Repita a ação Recolher registos .

Atributos personalizados para macOS

Pode criar perfis de atributo personalizados que lhe permitem recolher propriedades personalizadas de dispositivos macOS geridos através de scripts de shell.

Criar e atribuir um atributo personalizado para dispositivos macOS

  1. Entre no Centro de administração do Microsoft Intune.

  2. Selecione Dispositivos>Por plataforma>macOS>Organizar dispositivos Atributos>personalizados para macOS>Adicionar.

  3. Em Noções Básicas, insira as seguintes propriedades e selecione Avançar:

    • Nome: introduza um nome para o script.
    • Descrição: introduza uma descrição para o script. Essa configuração é opcional, mas recomendada.
  4. Em Definições de atributo, introduza as seguintes propriedades e selecione Seguinte:

    • Tipo de dados do atributo: selecione o tipo de dados do resultado que o script devolve. Os valores disponíveis são Cadeia, Número Inteiro e Data.
    • Script: selecione um ficheiro de script.

    Detalhes adicionais:

    • O script da shell tem de ecoar o atributo a ser comunicado e o tipo de dados da saída tem de corresponder ao tipo de dados do atributo no perfil de atributo personalizado.
    • O resultado devolvido pelo script da shell tem de ser 20 KB ou menos.

    Observação

    Ao utilizar Date atributos de tipo, certifique-se de que o script da shell devolve datas no formato ISO-8601. Consulte os exemplos abaixo.

    Para imprimir uma data compatível com ISO-8601 com fuso horário:

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

    Para imprimir uma data compatível com ISO-8601 na hora UTC:

    #!/bin/sh
    var=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
    echo $var # Prints an ISO-8601 compliant date in UTC time
    
  5. Em Atribuições, clique em Selecionar grupos a incluir. Quando seleciona Selecionar grupos para incluir uma lista existente de grupos do Microsoft Entra, é apresentada. Selecione um ou mais grupos de utilizadores ou dispositivos que vão receber o script. Escolha Selecionar. Os grupos que escolher são apresentados na lista e receberão a sua política de scripts. Em alternativa, pode optar por selecionar Todos os utilizadores, Todos os dispositivos ou Todos os utilizadores e todos os dispositivos ao selecionar uma destas opções na caixa pendente junto a Atribuir a.

    Observação

    • Os scripts atribuídos a grupos de utilizadores aplicam-se a qualquer utilizador que inicie sessão no Mac.
  6. Em Examinar + adicionar, é mostrado um resumo das configurações definidas. Selecione Adicionar para salvar o script. Quando seleciona Adicionar, a política de script é implementada nos grupos que escolheu.

O script que criou aparece agora na lista de atributos personalizados. Se necessário, pode ver os conteúdos dos atributos personalizados depois de os carregar para o Intune.

Monitorizar uma política de atributos personalizada

Pode monitorizar o estado de execução de todos os perfis de atributo personalizados atribuídos para utilizadores e dispositivos ao selecionar um dos seguintes relatórios:

  • Atributos personalizados>selecione o perfil de atributo personalizado a monitorizar>Estado do dispositivo
  • Atributos personalizados>selecione o perfil de atributo personalizado a monitorizar>Estado do utilizador

Importante

Os scripts de shell fornecidos em perfis de atributo personalizados são executados a cada 8 horas em Macs geridos e comunicados.

Uma vez executado um perfil de atributo personalizado, devolve um dos seguintes estados:

  • Um estado de Falha indica que o script devolveu um código de saída diferente de zero ou que o script tem um formato incorreto. O erro é comunicado na coluna Resultado .
  • Como o estado Êxito indica que o script devolveu zero como o código de saída. O resultado ecoado pelo script é comunicado na coluna Resultado .

Perguntas frequentes

Porque é que os scripts de shell atribuídos não estão em execução no dispositivo?

Podem existir vários motivos:

  • O agente poderá ter de dar entrada para receber scripts novos ou atualizados. Este processo de entrada ocorre a cada 8 horas e é diferente do check-in de MDM. Certifique-se de que o dispositivo está ativo e ligado a uma rede para uma entrada bem-sucedida do agente e aguarde que o agente faça o check-in. Também pode pedir ao utilizador final para abrir o Portal da Empresa no Mac, selecionar o dispositivo e clicar em Verificar definições.
  • O agente pode não estar instalado. Verifique se o agente está instalado em /Library/Intune/Microsoft Intune Agent.app no dispositivo macOS.
  • O agente pode não estar em bom estado de funcionamento. O agente tentará recuperar durante 24 horas, remover-se-á e reinstalará se os scripts da shell ainda estiverem atribuídos.

Com que frequência é comunicado o estado da execução do script?

O estado da execução do script é comunicado ao centro de administração do Microsoft Intune assim que a execução do script estiver concluída. Se um script estiver agendado para ser executado periodicamente com uma frequência definida, apenas comunica o estado da primeira vez que é executado.

Quando é que os scripts da shell são executados novamente?

Um script é executado novamente apenas quando o número máximo de vezes a repetir se a definição do script falhar estiver configurada e o script falhar durante a execução. Se o Número máximo de vezes que tentar novamente se o script falhar não estiver configurado e um script falhar durante a execução, não será executado novamente e o estado de execução será reportado como com falha.

Que permissões de função do Intune são necessárias para scripts de shell?

A função atribuída ao intune requer permissões de Configurações de dispositivos para eliminar, atribuir, criar, atualizar ou ler scripts de shell.

Problemas conhecidos

  • Sem estado de execução de script: No caso improvável de um script ser recebido no dispositivo e o dispositivo ficar offline antes de o estado de execução ser comunicado, o dispositivo não reportará o estado de execução do script no centro de administração.

Informações adicionais

Quando implementa scripts de shell ou atributos personalizados para dispositivos macOS a partir do Microsoft Intune, este implementa a nova versão universal da aplicação do agente de gestão do Intune que é executada nativamente em computadores Apple Silicon Mac. A mesma implantação instalará a versão x64 do aplicativo em computadores Mac Intel. Rosetta 2 é necessário para executar a versão x64 (Intel) de aplicativos em Macs Apple Silicon. Para instalar a Rosetta 2 no Apple Silicon Macs automaticamente, pode implementar um script de shell no Intune. Para ver um script de exemplo, veja Rosetta 2 Installation Script (Script de Instalação rosetta 2).

Próximas etapas