Partager via


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 l’exportation à partir d’une SEULE API d’exportation de niveau supérieur. Vous devez utiliser microsoft API Graph 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 sur les outils permettant d’interagir avec Microsoft Graph, consultez Utiliser microsoft API Graph.

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

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

Exemples d’appareils signalant une demande et une 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. Voici un exemple de demande d’exportation pour le rapport Appareils . Vous devez utiliser la méthode HTTP POST sur votre requête. La méthode POST est utilisée pour créer une ressource ou effectuer une action.

Exemple de requête

La requête ci-dessous contient la méthode HTTP utilisée sur la requête à 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 générer votre automatisation pour sélectionner explicitement les colonnes pertinentes.

Exemple de réponse

Sur la base de la requête POST ci-dessus, Graph retourne 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’à obtenir une réponse avec un status: completed attribut. Il ressemble à l’exemple suivant :

{ 
    "@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 de rapport

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

  • reportName:Obligatoire. Ce paramètre est le nom du rapport que vous souhaitez spécifier.
  • filter: non obligatoire pour la plupart des rapports. Le paramètre de filtre est une chaîne.
  • select: non obligatoire. Spécifiez les colonnes du rapport souhaitées. Seuls les noms de colonnes valides correspondant au rapport que vous appelez sont acceptés.
  • format: non obligatoire. Par défaut, les données sont générées au csv format . Spécifiez json pour générer 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 que Intune fournit deux colonnes pour chaque colonne localisable.

  • valeur enum : la colonne de valeur d’énumération contient une chaîne brute ou un ensemble de nombres qui ne changent pas, quels que soient les paramètres régionaux. Cette colonne se trouve sous le nom de colonne d’origine (voir l’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 lisibles par l’homme et des paramètres régionaux conditionnels (voir l’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 ne retourne qu’une seule colonne par attribut localisé. Cette colonne contient le nom de 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, une seule colonne avec le nom de colonne vrai et les valeurs de colonne vraies sont retournées.

Importante

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

Conditions de limitation d’API

Pour vous 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 de limitation ci-dessous sont appliquées.

  • Les API prennent en charge jusqu’à 100 demandes par locataire et par minute : cette prise en charge couvre tous les utilisateurs et applications d’un locataire. Toutes les demandes supplémentaires lancées par des utilisateurs ou des applications dans le locataire au cours de la même minute seront limitées.
    • Si les API sont lancées par un utilisateur, jusqu’à 8 demandes sont autorisées par le même utilisateur dans une minute. Les demandes ultérieures 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 dans une minute. Les demandes suivantes effectuées par la même application dans la même minute seront limitées.

Étapes suivantes