Exporter des rapports Intune à l’aide des API Graph

Tous les rapports qui ont été migrés vers l’infrastructure de création de rapports Intune seront disponibles pour exportation à partir d’une API d’exportation de niveau supérieur unique. Vous devez utiliser l’API Graph Microsoft pour effectuer l’appel HTTP. Microsoft Graph est une API web RESTful qui vous permet d’accéder aux ressources de service Cloud Microsoft.

Remarque

Pour plus d’informations sur les appels d’API REST, notamment les outils permettant d’interagir avec Microsoft Graph, consultez Utiliser l’API Microsoft Graph.

Microsoft Intune exporte les rapports à l’aide du point de terminaison de l’API Graph suivant :

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

Exemple de demande de rapport d’appareils et réponse

Lorsque vous effectuez la demande, vous devez fournir un reportName paramètre dans le corps de la demande en fonction du rapport que vous souhaitez exporter. Vous trouverez ci-dessous un exemple de demande d’exportation pour le rapport Appareils . Vous devez utiliser la méthode POST HTTP sur votre demande. La méthode POST permet de créer une ressource ou d’effectuer une action.

Exemple de requête

La requête ci-dessous contient la méthode HTTP utilisée sur la requête adressée à Microsoft Graph.

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

Remarque

Pour récupérer des données, sélectionnez des colonnes spécifiques, telles que celles spécifiées dans l’exemple ci-dessus. Ne créez pas d’automatisation autour des colonnes par défaut d’une exportation de rapport. Vous devez créer votre automatisation pour sélectionner explicitement les colonnes pertinentes.

Exemple de réponse

En fonction de la demande POST ci-dessus, Graph renvoie un message de réponse. Le message de réponse correspond aux données que vous avez demandées ou au résultat de l’opération.

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

Vous pouvez ensuite utiliser le id champ pour interroger le status de l’exportation avec une requête GET :

Par exemple : 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

Vous devez continuer à appeler cette URL jusqu’à ce que vous obteniez une réponse avec un status: completed attribut. Il se présente comme suit :

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

Vous pouvez ensuite télécharger directement le fichier CSV compressé à partir du url champ.

Paramètres du rapport

Il existe cinq paramètres principaux que vous pouvez soumettre dans le corps de votre demande pour définir la demande d’exportation :

  • reportName: Obligatoire. Ce paramètre correspond au nom du rapport que vous souhaitez spécifier.
  • filter: Non requis pour la plupart des rapports. Le paramètre de filtre est une chaîne.
  • select: Non requis. Spécifiez les colonnes du rapport souhaitées. Seuls les noms de colonne valides pertinents pour le rapport que vous appelez seront acceptés.
  • format: Non requis. Par défaut, les données sont affichées au csv format. Spécifiez json pour afficher le fichier au format JSON.
  • localizationType: ce paramètre contrôle le comportement de localisation du rapport. Les valeurs possibles sont LocalizedValuesAsAdditionalColumn et ReplaceLocalizableValues.

Comportement de localisation

Le localizationType paramètre contrôle le comportement de localisation du rapport. Les valeurs possibles pour ce paramètre sont LocalizedValuesAsAdditionalColumn et ReplaceLocalizableValues.

Valeur de rapport LocalizedValuesAsAdditionalColumn

Cette valeur pour le localizationType paramètre est la valeur par défaut. Il est inséré automatiquement si le localizationType paramètre n’est pas spécifié. Cette valeur spécifie qu’Intune fournit deux colonnes pour chaque colonne localisable.

  • valeur d’énumération : la colonne de valeur d’énumération contient soit une chaîne brute, soit un ensemble de nombres qui ne changent pas, quels que soient les paramètres régionaux. Cette colonne se trouve sous le nom de la colonne d’origine (voir exemple).
  • valeur de chaîne localisée : cette colonne est le nom de colonne d’origine avec _loc ajouté. Il contient des valeurs de chaîne qui sont lisibles par l’homme et conditionnelles aux paramètres régionaux (voir exemple).

Exemple

Système d’exploitation OS_loc
1 Windows
1 Windows
1 Windows
2 iOS
3 Android
4 Mac

Valeur de rapport ReplaceLocalizableValues

La valeur de rapport ReplaceLocalizableValues renvoie une seule colonne par attribut localisé. Cette colonne contient le nom de la colonne d’origine avec les valeurs localisées.

Exemple

Système d’exploitation
Windows
Windows
Windows
iOS
Android
Mac

Pour les colonnes sans valeurs localisées, seule une seule colonne avec le vrai nom de colonne et les vraies valeurs de colonne est renvoyée.

Importante

Le localizationType paramètre est pertinent pour toute expérience d’exportation hébergée par l’infrastructure de création de rapports d’Intune, à quelques exceptions près. LesDevices types de rapport et DevicesWithInventory ne respecteront pas le localizationType paramètre en raison des exigences de compatibilité héritées.

Conditions de limitation d’API

Pour s’assurer que l’API exportJobs n’a pas trop de demandes simultanées, ce qui aurait un impact sur le taux de réponse de l’API, les limites ci-dessous sont appliquées.

  • Les API prennent en charge jusqu’à 100 demandes par locataire par minute : Cette prise en charge couvre tous les utilisateurs et applications d’un client. Toutes les demandes supplémentaires lancées par les utilisateurs ou les applications du locataire dans la même minute seront limitées.
    • Si les API sont lancées par un utilisateur, jusqu’à 8 requêtes sont autorisées par le même utilisateur en une minute. Les demandes suivantes du même utilisateur dans la même minute seront limitées.
    • Si les API sont lancées par une application, jusqu’à 48 demandes sont autorisées par la même application en une minute. Les demandes suivantes effectuées par la même application au cours de la même minute seront limitées.

Étapes suivantes