Exporter des rapports Intune à l’aide des API Graph

Tous les rapports 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 l’API Microsoft Graph pour effectuer l’appel HTTP. Microsoft Graph est une API web RESTful qui vous permet d’accéder à des ressources de service cloud Microsoft.

Notes

Pour plus d’informations sur la création d’appels d’API REST, y compris sur des outils permettant d’interagir avec Microsoft Graph, consultez Utiliser l’API Microsoft Graph.

Microsoft Endpoint Manager exportera les rapports à l’aide du point de terminaison d’API Microsoft Graph suivant :

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

Exemples de requêtes et de réponses de rapports sur les appareils

Lorsque vous effectuez la demande, vous devez fournir un paramètre reportName dans le corps de la demande en fonction du rapport que vous souhaitez exporter. Voici un exemple de demande d’exportation pour le rapport sur les Appareils. Vous devez utiliser la méthode POST HTTP sur votre requête. La méthode POST permet de créer une nouvelle 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 pour Microsoft Graph.

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

Notes

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 afin de sélectionner explicitement les colonnes appropriées.

Exemple de réponse

En fonction de la requête POST, Graph retourne un message en réponse. Le message en réponse correspond aux données 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 champ id pour interroger l’état de l’exportation avec une requête GET :

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

Vous devrez continuer à appeler cette URL jusqu’à ce que vous obteniez une réponse avec un attribut status: completed. Cela ressemble à ce qui 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 CSV compressé à partir du champ url.

Paramètres du rapport

Il existe quatre paramètres principaux que vous pouvez envoyer dans le corps de votre requête pour définir la requête d’exportation :

  • reportName: Obligatoire. Ce paramètre est le nom du rapport que vous souhaitez spécifier.
  • filter : Non requis pour la plupart des rapports. Notez que le paramètre de filtre est une chaîne.
  • select : Non obligatoire. Spécifiez les colonnes du rapport de votre choix. Seuls les noms de colonnes valides relatifs au rapport que vous appelez sont acceptés.
  • localizationType : ce paramètre contrôle le comportement de localisation pour le rapport. Les valeurs possibles sont LocalizedValuesAsAdditionalColumn et ReplaceLocalizableValues.

Comportement de localisation

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

Valeur du rapport LocalizedValuesAsAdditionalColumn

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

  • enum value : la colonne enum value contient soit une chaîne brute, soit un ensemble de nombres qui ne changent pas, indépendamment des paramètres régionaux. Cette colonne se trouve sous le nom de la colonne d’origine (voir l’exemple).
  • localized string value : cette colonne est le nom de la colonne d’origine avec _loc ajouté. Elle contient des valeurs de chaîne lisibles par l’utilisateur 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 du rapport ReplaceLocalizableValues

La valeur du rapport ReplaceLocalizableValues ne retourne qu’une 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, une seule colonne avec le nom de colonne true et les valeurs de colonne true est retournée.

Important

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

Étapes suivantes