使用 Graph API 匯出 Intune 報表

所有已移轉至 Intune 報告基礎結構的報表,都可從單一最上層匯出 API 匯出。 您必須使用 Microsoft 圖形 API 進行 HTTP 呼叫。 Microsoft Graph 是一種 RESTful Web API,可讓您存取 Microsoft 雲端服務資源。

注意事項

如需進行 REST API 呼叫的相關資訊,包括與 Microsoft Graph 互動的工具,請參閱使用 Microsoft 圖形 API。

Microsoft Intune 會使用下列 Microsoft 圖形 API 端點匯出報表:

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

範例裝置報告要求和回應

提出要求時,您必須根據要匯出的報告,提供 reportName 參數作為要求主體的一部分。 以下是 [ 裝置 ] 報表的匯出要求範例。 您必須針對要求使用 POST HTTP 方法。 POST 方法可用來建立新資源或執行指令。

要求範例

下列要求包含用於 Microsoft Graph 要求的 HTTP 方法。

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

然後,您可以直接從欄位下載 url 壓縮的 csv。

報表參數

您可以在要求主體中提交五個主要參數來定義匯出要求:

  • 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

對於沒有當地語系化值的欄位,只會傳回具有 True 欄名稱和 True 欄值的單一欄位。

重要事項

此localizationType參數與 Intune 報告基礎結構所裝載的任何匯出體驗相關,但有一些例外。 Devices由於舊版相容性需求,和DevicesWithInventory報表類型將不會接受localizationType參數。

API 節流條件

為了確保 exportJobs API 不會有太多同時要求,這會影響 API 的回應速率,套用以下節流限制。

  • API 將支援每個租用戶每分鐘最多 100 個要求:這項支援涵蓋租用戶中的所有使用者和應用程式。 租用戶中的使用者或應用程式在同一分鐘內所啟始的任何其他要求都會受到節流。
    • 如果 API 是由使用者起始,則同一使用者在一分鐘內最多允許 8 個要求。 同一使用者在同一分鐘內提出的後續要求將會受到節流。
    • 如果 API 是由應用程式起始,則相同的應用程式在一分鐘內最多允許 48 個要求。 同一分鐘內相同應用程式的後續要求將會進行節流。

後續步驟