DIDOES ITEndpoint Engineering
← Tous les articles

Recommandation / Endpoint & Automation

Intune : choisir entre Microsoft Graph, Reports API et Data Warehouse

Il n’existe pas une API Intune unique qui réplique tout le portail. Je choisis la source selon la question, la fraîcheur, le volume, le schéma et l’historique nécessaires.

01

Position recommandée

Les ressources Graph opérationnelles décrivent l’état courant et permettent parfois l’action. La Reports export API génère des jeux proches de rapports Intune. Le Data Warehouse expose un modèle OData orienté tendances et Power BI avec une cadence différente.

Je recommande Graph pour l’automatisation ciblée, Reports API pour reproduire un rapport exportable et Data Warehouse pour un modèle analytique stable. Une extraction massive ne doit pas boucler aveuglément sur managedDevices.

Chaque tableau affiche source, date d’extraction, filtre, clé de jointure et limites. Les écarts de cadence et de population sont expliqués avant toute décision.

Les ressources Graph opérationnelles décrivent l’état courant et permettent parfois l’action. La Reports export API génère des jeux proches de rapports Intune. Le Data Warehouse expose un modèle OData orienté tendances et Power BI avec une cadence différente.
02

Besoin, cas d’usage et périmètre de la recommandation

Deux chiffres Intune différents peuvent être exacts s’ils ne portent pas sur le même horodatage, la même définition ou la même source. Le portail peut lui-même consommer une infrastructure de rapport distincte des ressources Graph classiques.

Le choix technique a un impact sur permissions, performance, stabilité de schéma et conservation. Je conçois d’abord le contrat de données, puis l’outil.

REPÈRESRésultats attendus et périmètre

Résultats attendus

  • comparer les trois plans de données
  • sélectionner la source par cas d’usage
  • construire des contrôles de qualité et de fraîcheur

Périmètre

  • Intune device/app/configuration reporting
  • Graph v1.0/beta, exportJobs et Data Warehouse OData
  • Power BI et automatisation
03

Critères de décision et options possibles

Pour Graph, Reports API ou Data Warehouse, je commence par trois résultats concrets: comparer les trois plans de données, sélectionner la source par cas d’usage et construire des contrôles de qualité et de fraîcheur. Ils doivent être observables avant de comparer les méthodes disponibles.

L’architecture cible suit Operational → Report → Warehouse → Semantic. Chaque composant a un propriétaire clair, un état vérifiable et une méthode de retour arrière; cette répartition évite qu’une seconde politique masque le résultat de la première.

Le pilote contrôle notamment source adaptée au cas, pagination/job complet et fraîcheur affichée. La généralisation ne commence qu’après une période stable et après vérification des exceptions propres aux populations visées.

La recommandation devient mesurable lorsqu’elle relie le besoin à une cible vérifiable. Les résultats attendus sont comparer les trois plans de données, sélectionner la source par cas d’usage et construire des contrôles de qualité et de fraîcheur. Les responsabilités se répartissent ainsi: Operational: Graph resources pour état/action. Report: exportJobs produit un fichier de rapport. Warehouse: OData consolide un modèle analytique. Semantic: Power BI documente clés, mesures et fraîcheur. Cette répartition permet d’attribuer chaque écart au bon propriétaire et d’éviter qu’un second profil, une ancienne autorité ou une exception silencieuse ne produise un résultat apparemment correct mais impossible à exploiter dans la durée.

Les écarts « Chiffres différents », « Export reste inProgress », « CSV colonnes manquantes » et « Warehouse relations vides » servent de tests de décision. Pour chacun, la preuve indiquée dans la matrice doit permettre de choisir entre correction, exception temporaire et retour arrière. Le pilote surveille également les points suivants: exportJobs reste beta à revalider, ne pas joindre par nom, ne pas masquer Unknown et ne pas utiliser Graph REST comme bulk sans analyse. La valeur cible, le mode de distribution, les contrôles et la sortie de secours sont ainsi évalués ensemble.

04

Architecture cible et répartition des responsabilités

Graph expose des ressources comme managedDevices ou detectedApps, avec permissions et pagination propres. Le schéma reflète l’objet de service, pas nécessairement les colonnes d’un écran.

La Reports API utilise actuellement l’endpoint beta deviceManagement/reports/exportJobs pour de nombreux rapports. Le job est asynchrone: création, polling borné, téléchargement puis validation du fichier.

Le Data Warehouse fournit des collections OData et des relations pour l’analyse. Son snapshot et ses dimensions facilitent les tendances, mais il n’est pas le bon outil pour confirmer une action effectuée il y a quelques secondes.

FLUXChaîne fonctionnelle — Graph, Reports API ou Data Warehouse
  1. OperationalGraph resources pour état/action.
  2. ReportexportJobs produit un fichier de rapport.
  3. WarehouseOData consolide un modèle analytique.
  4. SemanticPower BI documente clés, mesures et fraîcheur.

Cette chaîne situe les preuves à rapprocher pour Graph, Reports API ou Data Warehouse. Le résultat d’une étape ne permet pas de déduire celui de la suivante.

05

Prérequis, gouvernance et préparation

La préparation de Graph, Reports API ou Data Warehouse couvre question métier et niveau de fraîcheur, catalogue local data/Graph consulté, permissions minimales, volumes estimés, clés et relations documentées. Le propriétaire de chaque composant et la population pilote sont définis avant la création de la configuration.

L’état initial est mesuré avec contrat de données, endpoint/version/reportName, heure extraction/snapshot, permissions. Il servira de point de comparaison pendant le pilote et lors d’un éventuel retour arrière.

  • question métier et niveau de fraîcheur
  • catalogue local data/Graph consulté
  • permissions minimales
  • volumes estimés
  • clés et relations documentées
  • stockage sécurisé des exports
  • propriétaire du modèle Power BI
REPÈRESStatut des décisions de configuration

Obligatoire avant le pilote

  • question métier et niveau de fraîcheur
  • catalogue local data/Graph consulté
  • permissions minimales
  • volumes estimés
  • clés et relations documentées

Recommandé

  • comparer les trois plans de données
  • sélectionner la source par cas d’usage
  • construire des contrôles de qualité et de fraîcheur

Selon le contexte

  • exportJobs reste beta à revalider
  • ne pas joindre par nom
  • ne pas masquer Unknown
  • ne pas utiliser Graph REST comme bulk sans analyse

Pour Graph, Reports API ou Data Warehouse, une exigence issue de la documentation du produit reste obligatoire. Une valeur proposée par cet article est recommandée. Les choix liés au risque, au parc ou au niveau de service restent dépendants du contexte.

06

Graph opérationnel

Graph convient à la lecture d’un objet et aux automatisations qui agissent ensuite. Je sélectionne les propriétés nécessaires, filtre côté serveur quand supporté et suis nextLink jusqu’au bout.

Une relation comme detectedApps peut nécessiter des appels supplémentaires et augmenter fortement le volume. Je mesure le coût avant de généraliser au tenant.

Le schéma beta n’est pas un contrat stable. Si une propriété n’existe qu’en beta, je documente le risque et un comportement en cas de disparition.

07

Reports export API

exportJobs demande un reportName, des colonnes et filtres spécifiques. Je vérifie la liste officielle des rapports et propriétés plutôt que de recopier le payload observé dans le navigateur.

Le job répond de façon asynchrone. Je borne le polling, respecte le statut, télécharge l’archive depuis l’URL temporaire puis contrôle format, taille, lignes et colonnes.

Un HTTP 200 lors de la création ne signifie pas que l’export est prêt ni complet. Le journal conserve jobId, état final, nombre de lignes et hash du fichier sans données personnelles.

08

Data Warehouse et modèle sémantique

Le Warehouse sépare faits et dimensions avec des clés techniques. Je joins sur les relations prévues, pas sur displayName. Les énumérations sont centralisées dans des tables de correspondance Unknown-safe.

Power BI stocke ses paramètres d’URL et son credential dans le service, pas dans le PBIX diffusé. Les rôles de workspace et la sécurité de ligne sont testés avec des comptes représentatifs.

Le modèle expose âge des données, couverture et taux d’objets sans correspondance. Un dashboard vert basé sur un refresh échoué est plus dangereux qu’une erreur visible.

09

Configuration recommandée et déploiement par étapes

La méthode retenue pour Graph, Reports API ou Data Warehouse se déploie par les étapes « Définir le contrat », « Comparer un échantillon », « Construire le pipeline », « Publier avec transparence ». Chaque passage produit un résultat vérifiable avant l’ouverture du suivant.

PROCÉDUREDéploiement recommandé — Graph, Reports API ou Data Warehouse
  1. 01Définir le contrat
    Emplacement
    Spécification rapport
    Commande / configuration
    Écrire population, mesures, fraîcheur, historique, action et tolérance d’écart.
    Résultat attendu
    La source peut être choisie objectivement.
    Vérification
    Validation métier.
    Impact
    Aucun.
    Retour arrière
    Aucun.
  2. 02Comparer un échantillon
    Emplacement
    Graph, Reports et Warehouse
    Commande / configuration
    Extraire les mêmes appareils et documenter dates, filtres et clés.
    Résultat attendu
    Écarts expliqués par le modèle.
    Vérification
    Contrôle local de quelques postes.
    Impact
    Lectures API.
    Retour arrière
    Supprimer exports temporaires.
  3. 03Construire le pipeline
    Emplacement
    Automation/Power BI
    Commande / configuration
    Implémenter pagination ou job async, staging, validation du schéma et métriques de qualité.
    Résultat attendu
    Échec visible plutôt que données partielles silencieuses.
    Vérification
    Tests volume, colonnes manquantes et throttling.
    Impact
    Stockage contrôlé.
    Retour arrière
    Revenir au dataset versionné précédent.
  4. 04Publier avec transparence
    Emplacement
    Rapport final
    Commande / configuration
    Afficher source, dernière mise à jour, définition et limites.
    Résultat attendu
    Le lecteur comprend le chiffre.
    Vérification
    Revue métier et sécurité.
    Impact
    Diffusion du rapport.
    Retour arrière
    Désactiver refresh et republier ancienne version.

La vague suivante de Graph, Reports API ou Data Warehouse commence après validation des critères indiqués dans la procédure.

10

Paramètres, commandes et automatisation

Les commandes et valeurs de cette section servent à vérifier contrat de données, endpoint/version/reportName, heure extraction/snapshot, permissions. Chaque exemple précise l’état attendu et les éléments à comparer dans le service.

Le contexte d’exécution, les permissions et les effets sur Operational, Report, Warehouse, Semantic doivent rester explicites lorsque la configuration est automatisée.

POWERSHELLCréer un export Intune Reports — exemple de lecture
# Collecte de diagnostic
$ErrorActionPreference = 'Stop'
try {
  $body = @{ reportName='Devices'; format='csv'; select=@('DeviceName','OSVersion','LastContact') } | ConvertTo-Json
  $job = Invoke-MgGraphRequest -Method POST -Uri 'https://graph.microsoft.com/beta/deviceManagement/reports/exportJobs' -Body $body -ContentType 'application/json'
  [pscustomobject]@{ JobId=$job.id; Status=$job.status; ExpirationDateTime=$job.expirationDateTime }
}
catch { Write-Error "Création de l’export impossible : $($_.Exception.Message)"; exit 1 }

Le reportName et les colonnes sont illustratifs et doivent être vérifiés dans la page officielle. Le polling et le téléchargement ne sont pas inclus.

11

Validation, indicateurs et critères GO / NO-GO

La décision repose sur source adaptée au cas, pagination/job complet, fraîcheur affichée et schéma contrôlé. Ces indicateurs couvrent le résultat technique, l’état du service et l’effet réel sur la population pilote.

  • source adaptée au cas
  • pagination/job complet
  • fraîcheur affichée
  • schéma contrôlé
  • jointures testées
  • écarts expliqués
  • données protégées
REPÈRESSeuil initial proposé pour le pilote

GO

  • 100 % des contrôles critiques prévus sont validés.
  • Au moins 95 % de la population pilote atteint l’état attendu.
  • Aucun incident critique, perte de gestion ou perte d’accès n’est constaté.
  • Le retour arrière est exécuté avec succès sur un appareil représentatif.

NO-GO

  • Le taux d’échec inexpliqué dépasse 2 %.
  • Le délai de convergence dépasse deux fois la référence mesurée ou la fenêtre convenue.
  • Un incident critique est attribuable au changement.
  • Le retour arrière ne peut pas être exécuté dans le délai convenu.

Pour Graph, Reports API ou Data Warehouse, ces seuils constituent un point de départ pour le pilote, pas des limites universelles de Microsoft. Ils doivent être remplacés par les objectifs de service, la référence mesurée et le RTO de l’organisation.

12

Exploitation, journaux et contrôle continu

Je journalise source, endpoint, version, filtre, extraction UTC, lignes et schéma. Je compare le nombre attendu à la sortie et bloque la publication en cas de chute anormale.

Les exports peuvent contenir UPN, noms de postes et identifiants. Ils sont chiffrés, conservés pour la durée nécessaire et non joints à un ticket générique.

  • contrat de données
  • endpoint/version/reportName
  • heure extraction/snapshot
  • permissions
  • nombre pages/jobs/lignes
  • schéma reçu
  • clés de jointure
  • fraîcheur affichée
13

Exceptions, erreurs connues et traitement

Les exceptions à prévoir pour Graph, Reports API ou Data Warehouse apparaissent notamment sous la forme Chiffres différents, Export reste inProgress, CSV colonnes manquantes, Warehouse relations vides. La preuve associée indique s’il faut corriger la configuration ou conserver une exception documentée.

MATRICEMatrice de diagnostic
SymptômeCause à confirmerPreuve recherchéeCorrection ciblée
Chiffres différentsCadence/population/définitionSources et timestampsAligner contrat ou expliquer écart
Export reste inProgressJob ou pollingjobId et délaiBorner puis recréer si documenté
CSV colonnes manquantesSelect/report évoluéSchéma officiel et fichierAdapter modèle avec contrôle
Warehouse relations videsMauvaise cléMétadonnées ODataUtiliser clés techniques
Graph throttledExtraction non adaptée429/Retry-After/volumeReports ou Warehouse selon usage

La matrice relie les symptômes propres à Graph, Reports API ou Data Warehouse aux preuves qui permettent de choisir une correction ciblée.

14

Coût de maintien des exceptions

Une exception à Graph, Reports API ou Data Warehouse crée une charge récurrente: elle doit être identifiée, surveillée et réévaluée jusqu’à sa suppression. Sans propriétaire ni date de revue, cette charge finit par devenir une configuration parallèle difficile à tester.

REPÈRESCe que chaque exception doit rendre visible

Charge de support

  • exportJobs reste beta à revalider
  • ne pas joindre par nom
  • ne pas masquer Unknown

Risque et compensation

  • Chiffres différents: Aligner contrat ou expliquer écart
  • Export reste inProgress: Borner puis recréer si documenté
  • CSV colonnes manquantes: Adapter modèle avec contrôle

Sortie de l’exception

  • un propriétaire nommé
  • une date de prochaine revue
  • un critère de suppression mesurable
  • une procédure de retour vers la configuration cible

Pour Graph, Reports API ou Data Warehouse, le coût réel dépend du volume d’appareils concernés, de la fréquence des incidents et du temps consacré aux tests de non-régression. Ces données sont à mesurer dans l’environnement exploité.

15

Rollback, gestion du changement et points de vigilance

Le rollback de Graph, Reports API ou Data Warehouse restaure explicitement l’affectation, la valeur ou l’autorité précédente. Les actions et points de vigilance ci-dessous précisent ce qui doit être contrôlé après ce retour.

REPÈRESRéversibilité et contrôles associés

Actions de rollback

  • désactiver refresh
  • restaurer dataset/PBIX précédent
  • supprimer exports temporaires
  • révoquer permission non nécessaire

Contrôles après retour

  • exportJobs reste beta à revalider
  • ne pas joindre par nom
  • ne pas masquer Unknown
  • ne pas utiliser Graph REST comme bulk sans analyse
R

Références et mots-clés

Références techniques publiques

IntuneMicrosoft GraphReports APIData WarehouseODataPower BI

Continuer la lecture

Modern Workplace LabOMA-DM et WinDC en double inscriptionEndpoint LabDiagnostic complet des applications Win32