Exportieren von Intune-Berichten mithilfe von Graph-APIs

Alle Berichte, die in die Intune-Berichtsinfrastruktur migriert wurden, stehen für den Export über eine einzelne Export-API der obersten Ebene zur Verfügung. Für den HTTP-Aufruf müssen Sie die Microsoft Graph-API verwenden. Microsoft Graph ist eine RESTful-Web-API, mit der Sie auf Microsoft Cloud-Dienstressourcen zugreifen können.

Hinweis

Informationen zu REST-API-Aufrufen, einschließlich Tools für die Interaktion mit Microsoft Graph, finden Sie unter Verwenden der Microsoft Graph-API.

Microsoft Intune exportiert Berichte mithilfe des folgenden Microsoft Graph-API-Endpunkts:

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

Beispielgeräte melden Anforderung und Antwort

Wenn Sie die Anforderung stellen, müssen Sie einen reportName Parameter als Teil des Anforderungstexts angeben, der auf dem Bericht basiert, den Sie exportieren möchten. Nachfolgend finden Sie ein Beispiel für eine Exportanforderung für den Gerätebericht. Sie müssen die POST-HTTP-Methode für Ihre Anforderung verwenden. Die POST-Methode wird verwendet, um eine neue Ressource zu erstellen oder eine Aktion durchzuführen.

Anforderungsbeispiel

Die folgende Anforderung enthält die HTTP-Methode, die für die Anforderung an Microsoft Graph verwendet wird.

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

Hinweis

Um Daten abzurufen, wählen Sie bestimmte Spalten aus, z. B. die im obigen Beispiel angegebenen. Bauen Sie die Automatisierung nicht um Standardspalten für jeden Berichtsexport herum auf. Sie sollten Ihre Automatisierung so aufbauen, dass relevante Spalten explizit ausgewählt werden.

Anforderungsbeispiel

Basierend auf der obigen POST-Anforderung gibt Graph eine Antwortnachricht zurück. Bei der Antwortmeldung handelt es sich um die von Ihnen angeforderten Daten oder das Ergebnis des Vorgangs.

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

Anschließend können Sie das id Feld verwenden, um den Status des Exports mit einer GET-Anforderung abzufragen:

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

Sie müssen diese URL so lange aufrufen, bis Sie eine Antwort mit einem status: completed Attribut erhalten. Dies sieht im folgenden Beispiel aus:

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

Die komprimierte CSV-Datei können Sie dann direkt aus dem url Feld herunterladen.

Berichtsparameter

Es gibt fünf Hauptparameter, die Sie in Ihrem Anforderungstext eingeben können, um die Exportanforderung zu definieren:

  • reportName: Erforderlich. Dieser Parameter ist der Name des Berichts, den Sie angeben möchten.
  • filter: Für die meisten Berichte nicht erforderlich. Der Filterparameter ist eine Zeichenfolge.
  • select: Nicht erforderlich. Geben Sie an, welche Spalten aus dem Bericht Sie verwenden möchten. Es werden nur gültige Spaltennamen akzeptiert, die für den aufgerufenen Bericht relevant sind.
  • format: Nicht erforderlich. Standardmäßig werden die Daten im csv Format ausgegeben. Geben Sie an json , ob die Datei im JSON-Format ausgegeben werden soll.
  • localizationType: Dieser Parameter steuert das Lokalisierungsverhalten für den Bericht. Mögliche Werte sind LocalizedValuesAsAdditionalColumn und ReplaceLocalizableValues.

Verhalten der Lokalisierung

Der localizationType Parameter steuert das Lokalisierungsverhalten für den Bericht. Die möglichen Werte für diesen Parameter sind LocalizedValuesAsAdditionalColumn und ReplaceLocalizableValues.

LocalizedValuesAsAdditionalColumn Berichtswert

Dieser Wert für den localizationType Parameter ist der Standardwert. Sie wird automatisch eingefügt, wenn der localizationType Parameter nicht angegeben ist. Dieser Wert gibt an, dass Intune zwei Spalten für jede lokalisierbare Spalte bereitstellt.

  • Enumerationswert: Die Spalte mit dem Enumerationswert enthält entweder eine unformatierte Zeichenfolge oder eine Reihe von Zahlen, die sich unabhängig vom Gebietsschema nicht ändern. Diese Spalte befindet sich unter dem ursprünglichen Spaltennamen (siehe Beispiel).
  • Lokalisierter Zeichenfolgenwert: Diese Spalte ist der ursprüngliche Spaltenname mit angefügtem _loc. Es enthält Zeichenfolgenwerte, die für Menschen lesbar sind und das Gebietsschema bedingt sind (siehe Beispiel).

Beispiel

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

Berichtswert "ReplaceLocalizableValues"

Der Berichtswert "ReplaceLocalizableValues" gibt nur eine Spalte pro lokalisiertem Attribut zurück. Diese Spalte enthält den ursprünglichen Spaltennamen mit den lokalisierten Werten.

Beispiel

Betriebssystem
Windows
Windows
Windows
iOS
Android
Mac

Für Spalten ohne lokalisierte Werte wird nur eine einzelne Spalte mit dem wahren Spaltennamen und den wahren Spaltenwerten zurückgegeben.

Wichtig

Der localizationType Parameter ist mit wenigen Ausnahmen für jede Exporterfahrung relevant, die von der Berichterstellungsinfrastruktur von Intune gehostet wird. DieDevices Berichtstypen und DevicesWithInventory berücksichtigen den localizationType Parameter aufgrund von Legacykompatibilitätsanforderungen nicht.

Bedingungen für API-Drosselung

Um sicherzustellen, dass die exportJobs API nicht zu viele gleichzeitige Anforderungen hat, die sich auf die Antwortrate der API auswirken würden, werden die folgenden Drosselungsgrenzwerte angewendet.

  • Die APIs unterstützen bis zu 100 Anforderungen pro Mandant und Minute: Diese Unterstützung deckt alle Benutzer und Apps in einem Mandanten ab. Alle zusätzlichen Anforderungen, die von Benutzern oder Apps im Mandanten innerhalb derselben Minute initiiert werden, werden gedrosselt.
    • Wenn die APIs von einem Benutzer initiiert werden, werden bis zu 8 Anforderungen innerhalb einer Minute vom selben Benutzer zugelassen. Nachfolgende Anforderungen desselben Benutzers innerhalb derselben Minute werden gedrosselt.
    • Wenn die APIs von einer App initiiert werden, werden bis zu 48 Anforderungen innerhalb einer Minute von derselben App zugelassen. Nachfolgende Anforderungen derselben App innerhalb derselben Minute werden gedrosselt.

Nächste Schritte