Экспорт отчетов Intune с помощью API Graph

Все отчеты, перенесенные в инфраструктуру отчетов Intune, будут доступны для экспорта из единого API экспорта верхнего уровня. Для выполнения вызова HTTP необходимо использовать Microsoft API Graph. Microsoft Graph — это соответствующий ограничениям REST веб-API, обеспечивающий доступ к ресурсам службы Microsoft Cloud.

Примечание.

Сведения о вызовах REST API, в том числе о средствах взаимодействия с Microsoft Graph, см. в статье Использование Microsoft API Graph.

Microsoft Intune экспортирует отчеты с помощью следующей конечной точки Microsoft API Graph:

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

Примеры устройств сообщают о запросе и ответе

При создании запроса необходимо указать reportName параметр в тексте запроса на основе отчета, который вы хотите экспортировать. Ниже приведен пример запроса на экспорт для отчета об устройствах . Для запроса необходимо использовать метод POST HTTP. Метод POST используется для создания нового ресурса или выполнения действия.

Пример запроса

Приведенный ниже запрос содержит метод HTTP, используемый в запросе к Microsoft Graph.

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

Примечание.

Чтобы получить данные, выберите определенные столбцы, например указанные в примере выше. Не стройте автоматизацию на основе столбцов по умолчанию в любом экспорте отчета. Необходимо создать автоматизацию для явного выбора релевантных столбцов.

Пример ответа

На основании приведенного выше запроса POST Graph возвращает ответное сообщение. В ответном сообщении содержатся запрошенные данные или результат операции.

{
    "@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"
}

Затем можно использовать id это поле для запроса GET и узнать состояние экспорта.

Например: https://graph.microsoft.com/beta/deviceManagement/reports/exportJobs('Devices_05e62361-783b-4cec-b635-0aed0ecf14a3') или https://graph.microsoft.com/beta/deviceManagement/reports/exportJobs/Devices_05e62361-783b-4cec-b635-0aed0ecf14a3

Необходимо продолжать вызывать этот URL-адрес, пока не будет получен ответ с атрибутом status: completed . Это выглядит следующим образом:

{
    "@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"
}

Затем вы можете напрямую загрузить сжатый CSV-файл из url поля.

Параметры отчета

В тексте запроса можно указать пять основных параметров, чтобы определить запрос на экспорт:

  • reportName: обязательно. Этот параметр является именем отчета, который вы хотите указать.
  • filter: не требуется для большинства отчетов. Параметр фильтра является строкой.
  • select: не требуется. Укажите столбцы из отчета, которые нужно использовать. Будут приняты только допустимые имена столбцов, относящиеся к вызываемому отчету.
  • format: не требуется. По умолчанию данные выводятся в csv формате. Укажите json вывод файла в формате JSON.
  • localizationType: этот параметр управляет локализацией отчета. Возможные значения: LocalizedValuesAsAdditionalColumn и ReplaceLocalizableValues.

Поведение локализации

Этот localizationType параметр управляет поведением локализации для отчета. Возможные значения этого параметра: LocalizedValuesAsAdditionalColumn и ReplaceLocalizableValues.

LocalizedValuesAsAdditionalColumn значение отчета

Это значение параметра localizationType используется по умолчанию. Вставляется автоматически, если параметр не указан.localizationType Это значение указывает, что Intune предоставляет два столбца для каждого локализуемого столбца.

  • Значение перечисления: столбец значения перечисления содержит либо необработанную строку, либо набор чисел, которые не изменяются независимо от языкового стандарта. Этот столбец находится под исходным именем столбца (см. пример).
  • локализованное строковое значение: этот столбец является исходным именем столбца с добавленным _loc. Он содержит строки, понятные человеку, и условные языковые параметры (см. пример).

Пример

ОС OS_loc
1 Windows
1 Windows
1 Windows
2 iOS
3 Android
4 Mac

Значение отчета ReplaceLocalizableValues

Значение отчета ReplaceLocalizableValues будет возвращать только один столбец для каждого локализованного атрибута. Этот столбец содержит исходное имя столбца с локализованными значениями.

Пример

ОС
Windows
Windows
Windows
iOS
Android
Mac

Для столбцов без локализованных значений возвращается только один столбец с истинным именем столбца и истинными значениями столбца.

Важно!

Этот localizationType параметр имеет отношение к любому экспорту, размещенному в инфраструктуре отчетов Intune, за некоторыми исключениями. ТипыDevices отчетов и DevicesWithInventory не будут учитывать localizationType этот параметр из-за устаревших требований совместимости.

Условия регулирования API

Чтобы exportJobs у API не было слишком большого количества одновременных запросов, которые могли бы повлиять на скорость отклика API, применяются следующие ограничения регулирования.

  • API будут поддерживать до 100 запросов на клиента в минуту: эта поддержка распространяется на всех пользователей и приложения в клиенте. Любые дополнительные запросы, инициированные пользователями или приложениями в клиенте в течение той же минуты, будут регулироваться.
    • Если API инициированы пользователем, тот же пользователь может разрешить до 8 запросов в течение минуты. Последующие запросы того же пользователя в течение той же минуты будут регулироваться.
    • Если API инициируются приложением, то одно приложение разрешит до 48 запросов в течение минуты. Последующие запросы того же приложения в течение той же минуты будут регулироваться.

Дальнейшие действия