Exportar relatórios do Intune usando APIs do Graph

Todos os relatórios que foram migrados para a infraestrutura de relatórios do Intune estarão disponíveis para exportação de uma única API de exportação de nível superior. Você deve usar a API do Graph Microsoft para fazer a chamada HTTP. O Microsoft Graph é uma API Web RESTful que permite que você acesse os recursos de serviço do Microsoft Cloud.

Observação

Para obter informações sobre como fazer chamadas à API REST, incluindo ferramentas para interagir com o Microsoft Graph, consulte Usar a API do Graph.

O Microsoft Intune exportará relatórios usando o seguinte ponto de extremidade da API do Graph:

https://graph.microsoft.com/beta/deviceManagement/reports/exportJobs
https://graph.microsoft.com/v1.0/deviceManagement/reports/exportJobs

Exemplo de solicitação e resposta de relatório de dispositivos

Ao fazer a solicitação, você deve fornecer um reportName parâmetro como parte do corpo da solicitação com base no relatório que deseja exportar. Abaixo está um exemplo de uma solicitação de exportação para o relatório de Dispositivos . Você deve usar o método HTTP POST em sua solicitação. O método POST é usado para criar um novo recurso ou realizar uma ação.

Exemplo de solicitação

A solicitação abaixo contém o método HTTP usado na solicitação para o Microsoft Graph.

{
    "reportName": "Devices",
    "filter":"(OwnerType eq '1')",
    "localizationType": "LocalizedValuesAsAdditionalColumn",
    "format": "json",
    "select": [
        "DeviceName",
        "managementAgent",
        "ownerType",
        "complianceState",
        "OS",
        "OSVersion",
        "LastContact",
        "UPN",
        "DeviceId"
    ]
}

Observação

Para recuperar dados, selecione colunas específicas, como as especificadas no exemplo acima. Não crie automação em torno das colunas padrão de qualquer exportação de relatório. Você deve criar sua automação para selecionar explicitamente colunas relevantes.

Exemplo de resposta

Com base na solicitação POST acima, o Graph retorna uma mensagem de resposta. A mensagem de resposta são os dados solicitados ou o resultado da operação.

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#deviceManagement/reports/exportJobs/$entity",
    "id": "Devices_05e62361-783b-4cec-b635-0aed0ecf14a3",
    "reportName": "Devices",
    "filter":"(OwnerType eq '1')",
    "localizationType": "LocalizedValuesAsAdditionalColumn",
    "select": [
        "DeviceName",
        "managementAgent",
        "ownerType",
        "complianceState",
        "OS",
        "OSVersion",
        "LastContact",
        "UPN",
        "DeviceId"
    ],
    "format": "csv",
    "snapshotId": null,
    "status": "notStarted",
    "url": null,
    "requestDateTime": "2020-08-19T03:43:32.1405758Z",
    "expirationDateTime": "0001-01-01T00:00:00Z"
}

Em seguida, você pode usar o campo para consultar o id status da exportação com uma solicitação GET:

Por exemplo: https://graph.microsoft.com/beta/deviceManagement/reports/exportJobs('Devices_05e62361-783b-4cec-b635-0aed0ecf14a3') ou https://graph.microsoft.com/beta/deviceManagement/reports/exportJobs/Devices_05e62361-783b-4cec-b635-0aed0ecf14a3

Você precisa continuar chamando essa URL até obter uma resposta com um status: completed atributo. É semelhante ao exemplo a seguir:

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#deviceManagement/reports/exportJobs/$entity",
    "id": "Devices_05e62361-783b-4cec-b635-0aed0ecf14a3",
    "reportName": "Devices",
    "filter":"(OwnerType eq '1')",
    "localizationType": "LocalizedValuesAsAdditionalColumn",
    "select": [
        "DeviceName",
        "managementAgent",
        "ownerType",
        "complianceState",
        "OS",
        "OSVersion",
        "LastContact",
        "UPN",
        "DeviceId"
    ],
    "format": "csv",
    "snapshotId": null,
    "status": "completed",
    "url": "https://amsua0702repexpstorage.blob.core.windows.net/cec055a4-97f0-4889-b790-dc7ad0d12c29/Devices_05e62361-783b-4cec-b635-0aed0ecf14a3.zip?sv=2019-02-02&sr=b&sig=%2BP%2B4gGiZf0YzlQRuAV5Ji9Beorg4nnOtP%2F7bbFGH7GY%3D&skoid=1db6df02-4c8b-4cb3-8394-7ac2390642f8&sktid=72f988bf-86f1-41af-91ab-2d7cd011db47&skt=2020-08-19T03%3A48%3A32Z&ske=2020-08-19T09%3A44%3A23Z&sks=b&skv=2019-02-02&se=2020-08-19T09%3A44%3A23Z&sp=r",
    "requestDateTime": "2020-08-19T03:43:32.1405758Z",
    "expirationDateTime": "2020-08-19T09:44:23.8540289Z"
}

Em seguida, você pode baixar diretamente o CSV compactado do url campo.

Parâmetros de relatório

Há cinco parâmetros principais que você pode enviar no corpo da solicitação para definir a solicitação de exportação:

  • reportName: Obrigatório. Esse parâmetro é o nome do relatório que você deseja especificar.
  • filter: não é necessário para a maioria dos relatórios. O parâmetro filter é uma cadeia de caracteres.
  • select: não obrigatório. Especifique quais colunas do relatório você deseja. Somente nomes de coluna válidos relevantes para o relatório que você está chamando serão aceitos.
  • format: não obrigatório. Por padrão, os dados são produzidos em csv formato. Especifique json para saída do arquivo no formato JSON.
  • localizationType: esse parâmetro controla o comportamento de localização do relatório. Os valores possíveis são: LocalizedValuesAsAdditionalColumn e ReplaceLocalizableValues.

Comportamento de localização

O localizationType parâmetro controla o comportamento de localização do relatório. Os valores possíveis para este parâmetro são LocalizedValuesAsAdditionalColumn e ReplaceLocalizableValues.

LocalizedValuesAsAdditionalColumn valor do relatório

Esse valor do localizationType parâmetro é o valor padrão. Ele é inserido automaticamente se o localizationType parâmetro não for especificado. Esse valor especifica que o Intune fornece duas colunas para cada coluna localizável.

  • valor de enumeração: a coluna de valor de enumeração contém uma cadeia de caracteres bruta ou um conjunto de números que não mudam, independentemente da localidade. Esta coluna está sob o nome da coluna original (veja o exemplo).
  • valor da cadeia de caracteres localizada: esta coluna é o nome da coluna original com _loc acrescentado. Ele contém valores de cadeia de caracteres que são legíveis e condicionais à localidade (veja o exemplo).

Exemplo

SO OS_loc
1 Windows
1 Windows
1 Windows
2 iOS
3 Android
4 Mac

Valor do relatório ReplaceLocalizableValues

O valor do relatório ReplaceLocalizableValues retornará apenas uma coluna por atributo localizado. Esta coluna contém o nome da coluna original com os valores localizados.

Exemplo

SO
Windows
Windows
Windows
iOS
Android
Mac

Para colunas sem valores localizados, apenas uma única coluna com o nome de coluna verdadeiro e os valores de coluna verdadeiros são retornados.

Importante

O localizationType parâmetro é relevante para qualquer experiência de exportação hospedada pela infraestrutura de relatórios do Intune, com algumas exceções. OsDevices tipos de relatório and DevicesWithInventory não respeitarão o localizationType parâmetro devido a requisitos de compatibilidade herdados.

Condições de limitação de API

Para garantir que a exportJobs API não tenha muitas solicitações simultâneas, o que afetaria a taxa de resposta da API, os limites de limitação abaixo serão aplicados.

  • As APIs darão suporte a até 100 solicitações por locatário por minuto: esse suporte abrange todos os usuários e aplicativos em um locatário. Todas as solicitações adicionais iniciadas por usuários ou aplicativos no locatário no mesmo minuto serão limitadas.
    • Se as APIs forem iniciadas por um usuário, até 8 solicitações serão permitidas pelo mesmo usuário em um minuto. As solicitações subsequentes do mesmo usuário no mesmo minuto serão limitadas.
    • Se as APIs forem iniciadas por um aplicativo, até 48 solicitações serão permitidas pelo mesmo aplicativo em um minuto. As solicitações subsequentes pelo mesmo aplicativo no mesmo minuto serão limitadas.

Próximas etapas