Scripts de descoberta de conformidade personalizados para Microsoft Intune

Antes de usar configurações personalizadas para conformidade com o Microsoft Intune, você deve criar um script que descubra as configurações de conformidade personalizadas nos dispositivos. O script que você usa depende da plataforma:

  • Os dispositivos Windows usam um script do PowerShell.
  • Os dispositivos Linux podem executar scripts em qualquer idioma, desde que o interpretador correspondente esteja instalado e configurado no dispositivo.

O script de descoberta é implantado em dispositivos como parte de suas políticas de conformidade personalizadas. Quando a conformidade é executada em um dispositivo, o script descobre as configurações definidas no arquivo JSON fornecido ao criar a política de conformidade.

Todos os scripts de descoberta:

  • São adicionados ao Intune antes de você criar uma política de conformidade. Depois de adicionar um script, ele fica disponível para seleção ao criar uma política de conformidade com configurações personalizadas.
    • Cada script de descoberta só pode ser usado com uma política de conformidade, e cada política de conformidade só pode incluir um script de descoberta.
    • Você não pode excluir scripts de descoberta atribuídos a uma política de conformidade até cancelar a atribuição do script da política.
  • Execute em um dispositivo que receba a política de conformidade. O script avalia as condições do arquivo JSON que você carrega ao criar uma política de conformidade personalizada.
  • Identifique uma ou mais configurações, conforme definido no JSON, e retorne uma lista de valores descobertos para essas configurações.

Além disso, o script do PowerShell para Windows:

  • Deve ser compactado para gerar resultados em uma única linha. Por exemplo, o script a seguir deve incluir return $hash | ConvertTo-Json -Compress como última linha:

    $hash = @{ Manufacturer = $WMI_ComputerSystem.Manufacturer; BiosVersion = $WMI_BIOS.SMBIOSBIOSVersion; TPMChipPresent = $TPM.TPMPresent}
    return $hash | ConvertTo-Json -Compress
    

Limites

Para retornar com êxito os dados de conformidade para o Intune, seus scripts devem permanecer dentro dos seguintes limites:

  • Os scripts não podem ser maiores do que 1 megabyte (MB) cada.
  • A saída gerada por cada script não pode ser maior que 1 MB.
  • Os scripts devem ter um tempo de execução limitado:
    • No Linux, os scripts devem levar cinco minutos ou menos para serem executados.
    • No Windows, os scripts devem levar 10 minutos ou menos para serem executados.

Script de descoberta de exemplo para Windows

O exemplo a seguir é um exemplo de script do PowerShell que você pode usar para dispositivos Windows:

$WMI_ComputerSystem = Get-WMIObject -class Win32_ComputerSystem
$WMI_BIOS = Get-WMIObject -class Win32_BIOS
$TPM = Get-Tpm

$hash = @{ Manufacturer = $WMI_ComputerSystem.Manufacturer; BiosVersion = $WMI_BIOS.SMBIOSBIOSVersion; TPMChipPresent = $TPM.TPMPresent}
return $hash | ConvertTo-Json -Compress

O exemplo a seguir mostra a saída do script de exemplo para Windows:

{"BiosVersion":"1.24","Manufacturer":"Microsoft Corporation","TPMChipPresent":true}

Script de descoberta de exemplo para Linux

Observação

No Linux, os scripts de descoberta são executados no contexto do usuário. Eles não podem marcar as configurações no nível do sistema que exigem elevação. Um exemplo dessa limitação é o state/hash/etc/sudoers do arquivo.

Os scripts de descoberta para Linux podem chamar qualquer interpretador que atenda aos seus requisitos. Certifique-se de que o interpretador escolhido esteja instalado e configurado corretamente no dispositivo de destino antes de implantar o script. Para especificar o interpretador de um script, inclua uma linha shebang na parte superior do script, indicando o caminho para o binário do interpretador.

Por exemplo, se o script deve usar o shell Bash como interpretador, adicione a seguinte linha na parte superior do script:

#!/bin/bash

Para usar o Python, especifique o caminho do interpretador. Por exemplo, adicione a seguinte linha à parte superior do script: #!/usr/bin/python3 ou #!/usr/bin/env python3

Dica

Para lidar com interrupções ou sinais de cancelamento, implemente mecanismos de encerramento normais em seus scripts. Quando um script lida com esses sinais, ele pode executar tarefas de limpeza e sair normalmente, garantindo que os recursos sejam liberados corretamente. Por exemplo, capture sinais como SIGINT (sinal de interrupção) ou SIGTERM (sinal de término) e defina ações personalizadas a serem executadas quando forem recebidas. Essas ações podem incluir o fechamento de arquivos abertos, a liberação de bloqueios adquiridos ou a limpeza de recursos temporários.

Para obter mais informações, consulte o guia Intune Linux Exemplos de Conformidade Personalizados.

Adicionar um script de descoberta ao Intune

Antes de implantar o script na produção, teste-o em um ambiente isolado para garantir que a sintaxe usada se comporte conforme o esperado.

Observação

O fluxo de trabalho de upload de script não dá suporte a marcas de escopo. Você deve receber a marca de escopo padrão para criar, editar ou exibir scripts personalizados de descoberta de conformidade.

  1. Entre no centro de administração do Microsoft Intune e acesse Segurança do ponto de> extremidadeConformidade do> dispositivoScripts>Adicionar. Em seguida, escolha sua plataforma.

  2. No Básico, insira um Nome descritivo para o script.

  3. Em Configurações, adicione seu script ao Script de detecção. Examine seu script com cuidado. O Intune não valida o script para erros de sintaxe ou programação.

  4. Somente para Windows , em Configurações, configure o seguinte comportamento para o script do PowerShell:

    • Execute este script usando as credenciais conectadas – Por padrão, o script é executado no contexto do Sistema no dispositivo. Defina esse valor como Sim para que ele seja executado no contexto do usuário conectado. Se o usuário não estiver conectado, o script voltará ao contexto do sistema por padrão.
    • Impor assinatura de script marcar – para obter mais informações, consulte about_Signing na documentação do PowerShell.
    • Executar script no host do PowerShell de 64 bits – por padrão, o script é executado usando o host do PowerShell de 32 bits. Defina esse valor como Sim para forçar a execução do script usando o host de 64 bits.
  5. Conclua o processo de criação do script. O script aparece no painel Scripts e está disponível para seleção ao configurar as políticas de conformidade.

Próximas etapas