/
/

Comment automatiser l’attribution des profils de configuration Intune en fonction des étiquettes d’appareils via l’API Graph

par Team Ninja
How to Automate Intune Configuration Profile Assignments Based on Device Labels via Graph API blog banner image

Points clés

  • Automatisez l’attribution des profils de configuration Intune via l’API Microsoft Graph avec un workflow Étiquette → Groupe → Profil : étiquetez les appareils, interrogez-les selon leur étiquette, ajoutez-les à un groupe correspondant, puis attribuez le profil à ce groupe.
  • Prérequis : licences Intune, Microsoft Entra ID Premium, PowerShell 7+ avec le module Microsoft.Graph et une application enregistrée disposant des autorisations DeviceManagementConfiguration.ReadWrite.All, Device.Read.All et Group.ReadWrite.All.
  • Intune ne prend en charge que les attributions basées sur des groupes : les appareils doivent donc être ajoutés à un groupe Entra ID (dynamique ou géré manuellement) avant qu’un profil de configuration puisse leur être appliqué.
  • Utilisez une seule source d’étiquetage faisant autorité, clé de registre, DeviceCategory Intune ou attribut d’extension Entra, afin d’éviter les appareils dupliqués ou non attribués. Intune applique la règle du « dernier écrivain gagne » lorsqu’un appareil porte plusieurs étiquettes.
  • Exécutez le workflow selon une planification récurrente et enregistrez l’état des attributions dans le registre à des fins d’audit, pour que les appareils nouveaux ou modifiés soient pris en compte automatiquement.

L’onboarding des appareils et l’attribution des groupes d’utilisateurs comptent parmi les deux opérations que les MSP et les équipes d’informatique d’entreprise cherchent le plus souvent à automatiser pour fluidifier leurs workflows. À grande échelle, cela se configure généralement via un RMM ou des profils de configuration Intune, qui s’appuient sur les étiquettes d’appareils via l’API Graph. Parcourez notre guide pour démarrer.

Vous préférez un support visuel pour mieux comprendre ? Regardez notre vidéo : Comment automatiser l’attribution des profils de configuration Intune en fonction des étiquettes d’appareils via l’API Graph.

Les étapes pour configurer l’attribution des profils de configuration Intune via l’API Graph

Utilisez le tableau pour choisir les étapes d’activation qui vous intéressent et y accéder rapidement.

📌 Prérequis :

  • Licences Microsoft Intune
  • Microsoft Entra ID Premium (pour les groupes dynamiques et les politiques Intune)
  • Application enregistrée avec les autorisations de l’API Graph :
    • ReadWrite.All (pour les politiques du catalogue de paramètres)
    • ReadWrite.All (pour les profils de configuration standard)
    • Read.All (nécessaire pour lire les catégories d’appareils Intune)
    • ReadWrite.All (pour gérer les groupes d’attribution)
  • PowerShell 7+ avec le module Microsoft.Graph
  • Facultatif : accès au registre local pour l’étiquetage
  • Facultatif : NinjaOne ou une plateforme RMM pour les métadonnées des terminaux et l’exécution des scripts

💡 Conseil : consultez la section Points de vigilance pour des conseils sur la gestion des risques potentiels.

Étape 1 : appliquer des étiquettes d’appareils via le registre local (facultatif)

Dans cet exemple, une simple clé de registre est créée sur chaque appareil avec des valeurs telles que Label=Finance et AssignedProfile=None.

  1. Utilisez la Recherche 🔎 pour ouvrir le Terminal → PowerShell → Exécuter en tant qu’administrateur.
  2. Étiquetez les terminaux avec des métadonnées de rôle ou d’environnement :

Set-ItemProperty -Path "HKLM:\SOFTWARE\Org\DeviceLabels" -Name "Label" -Value "Finance"

Set-ItemProperty -Path "HKLM:\SOFTWARE\Org\DeviceLabels" -Name "AssignedProfile" -Value "None"

Cette étape peut s’utiliser avec Intune ou en parallèle pendant votre transition. Elle crée une simple clé de registre sur chaque appareil, qui sert également de métadonnée.

Vous pouvez exécuter reg query HKLM\SOFTWARE\Org\DeviceLabels dans CMD (invite de commande) ou PowerShell pour valider. Ces étiquettes peuvent déterminer quel profil Intune doit être attribué grâce à la logique d’un script externe.

Étape 2 : se connecter à Microsoft Graph et interroger les appareils selon leur étiquette

Ces scripts étiquettent les appareils selon un libellé (par exemple, DeviceCategory -eq « Finance ») ou via des attributs d’extension, comme les propriétés d’extension Entra ID.

  1. Utilisez la Recherche 🔎 pour ouvrir le Terminal → PowerShell → Exécuter en tant qu’administrateur.
  2. Connectez-vous à Graph :

Connect-MgGraph -Scopes "DeviceManagementManagedDevices.Read.All", "Group.ReadWrite.All"

  1. Interrogez ensuite les appareils par catégorie :

$devices = Get-MgManagedDevice | Where-Object { $_.DeviceCategory -eq "Finance" }

Si vous utilisez des attributs d’extension, adaptez la requête en conséquence. Intune et Entra ID sont surtout utiles pour cibler les appareils inscrits.

⚠️ Note technique : veillez à ce que votre automatisation cible le endpoint ManagedDevice plutôt que le endpoint Device standard d’Entra ID. Les attributs propres à Intune, comme DeviceCategory, n’existent pas sur les objets Entra ID par défaut. Interroger le mauvais endpoint renverra un jeu de données vide.

Étape 3 : créer ou retrouver des profils de configuration et les attribuer par groupe

L’objectif suivant consiste à s’assurer qu’un groupe cible existe pour l’étiquette (par exemple, « Finance Devices »).

  1. Utilisez la Recherche 🔎 pour ouvrir le Terminal → PowerShell → Exécuter en tant qu’administrateur.
  2. Exécutez Get-MgDeviceManagementDeviceConfiguration pour lister les profils de configuration existants.
  3. Retrouvez ou créez ensuite un groupe d’attribution pour l’étiquette ciblée :

$group = Get-MgGroup | Where-Object { $_.DisplayName -eq "Finance Devices" }

Ou créez un nouveau groupe :

$group = New-MgGroup -DisplayName "Finance Devices" -MailEnabled:$false `

-MailNickname "FinanceGroup" -SecurityEnabled:$true

  1. Une fois le groupe créé, vous pouvez y ajouter des appareils et attribuer un profil de configuration.
    • Ajouter des appareils :

Add-MgGroupMember -GroupId $group.Id -DirectoryObjectId $device.Id

    • Attribuer le profil de configuration :

New-MgDeviceManagementDeviceConfigurationAssignment `

-DeviceConfigurationId $configProfile.Id `

-Target @{groupId = $group.Id}

🧠 Exigence structurelle : lors de l’attribution d’un profil de configuration via l’API Graph, le système exige un wrapper structurel @odata.type explicite. Le script doit définir explicitement la cible comme un #microsoft.graph.groupAssignmentTarget et transmettre l’ID de groupe à l’intérieur de cette structure de payload précise, plutôt que de l’appliquer directement à l’objet profil.

💡 Remarque : de plus, vous pouvez recourir à l’appartenance dynamique si votre étiquette est stockée dans un attribut interrogeable par les groupes (un attribut d’extension, par exemple). Sinon, automatisez l’étiquetage via votre RMM.

Étape 4 : automatiser le workflow (Étiquette → Groupe → Profil)

Cette étape vise à mettre en place une gestion entièrement automatisée, une fois les sources d’étiquettes et les profils cibles correctement identifiés et interrogés. Voici un exemple de script reprenant les étiquettes et profils précédents :

$label = “Finance”

$devices = Get-MgDevice | Where-Object { $_.DeviceCategory -eq $label }foreach ($device in $devices) {

$group = Get-MgGroup | Where-Object { $_.DisplayName -eq “$label Devices” }if (-not $group) {

$group = New-MgGroup -DisplayName “$label Devices” -MailEnabled:$false `

-MailNickname “$labelGroup” -SecurityEnabled:$true}Add-MgGroupMember -GroupId $group.Id -DirectoryObjectId $device.IdNew-MgDeviceManagementDeviceConfigurationAssignment `

-DeviceConfigurationId $configProfile.Id `

-Target @{groupId = $group.Id}}

Dans les environnements gérés et en entreprise, ce script doit être exécuté de façon récurrente afin de prendre en compte les nouveaux terminaux à organiser.

Étape 5 : enregistrer l’état des attributions dans le registre à des fins d’audit

Pour terminer, mettez à jour le registre afin de suivre quel profil a été appliqué. Vous pouvez exécuter le script suivant via PowerShell :

Set-ItemProperty -Path "HKLM:\SOFTWARE\Org\DeviceLabels" -Name "AssignedProfile" -Value "Finance_Profile"

Set-ItemProperty -Path "HKLM:\SOFTWARE\Org\DeviceLabels" -Name "LastSynced" -Value (Get-Date).ToString("u")

Cette opération crée une piste d’audit locale pour les équipes de support. Ces données peuvent aussi être collectées par un RMM ou exportées en CSV pour un reporting centralisé.

💡 Remarque : ce script peut s’exécuter ou échouer sans afficher de confirmation ni d’invite. Pour vérifier que les modifications ont bien été appliquées, contrôlez les clés de registre ou les paramètres système correspondants.

Guide de démarrage rapide

NinjaOne peut vous aider à gérer l’attribution des profils de configuration Intune en fonction des étiquettes d’appareils via l’API Graph, même si la mise en œuvre exacte demande parfois un peu de scripting ou d’automatisation sur mesure. Voici les points essentiels :

1. NinjaOne prend en charge la gestion des appareils et dispose de capacités d’intégration avec les technologies Microsoft.

2. La plateforme propose :

  • l’étiquetage des appareils
  • des configurations d’appareils automatisées
  • la prise en charge de PowerShell et de l’automatisation via API

3. Il n’existe pas de solution clé en main pour l’attribution des profils Intune, mais vous pouvez y parvenir grâce à :

⚠️ Points de vigilance lors de l’automatisation des attributions de profils Intune

Voici les risques courants, leurs conséquences possibles et quelques moyens concrets de les corriger ou de les éviter.

Risques Conséquences possibles Correctifs
Sources d’étiquetage incohérentes (registre local, DeviceCategory Intune ou attributs d’extension Entra) Les appareils risquent d’être mal regroupés : doublons ou machines non attribuées Standardisez une seule source d’étiquetage faisant autorité. En cas de migration, ajoutez des garde-fous pour éviter les attributions en double
Création de groupes dynamiques sans attribut stable Les règles de groupe ne se résolvent jamais et les appareils ne reçoivent aucun profil Assurez-vous que les étiquettes sont stockées dans un attribut exploitable par les règles dynamiques (extensionAttribute, deviceCategory, etc.) et testez les règles sur un échantillon
Limitation (throttling) de Graph dans les environnements de grande taille L’exécution du script ralentit et certains appareils ne sont mis à jour que partiellement Traitez les appareils par lots, ajoutez une logique de nouvelle tentative ou exécutez le workflow étiquette par étiquette plutôt que tout d’un coup

Une partie des difficultés initiales liées à l’automatisation des attributions de profils via Intune survient pendant les phases de transition. Il est donc préférable de faire preuve de vérification diligente pour s’assurer que les étiquettes et les regroupements n’entrent pas en conflit et ne se dupliquent pas.

Par ailleurs, dans les grands environnements, les scripts devront peut-être être échelonnés, sauf si vous les exécutez via un RMM adapté à l’échelle de votre parc.

Utiliser NinjaOne pour enrichir vos workflows Intune

De nombreux workflows Intune peuvent être complétés par les politiques d’automatisation, le reporting et la gestion informatique à la fois évolutive et granulaire qu’offre NinjaOne RMM®.

  • Déploiement de scripts qui étiquettent les appareils dans le registre
  • Déclenchement de scripts Graph externes via des politiques d’automatisation
  • Reporting sur les métadonnées des appareils (étiquette, rôle, emplacement) pour orienter les attributions
  • Marquage des appareils dépourvus de profil de configuration adéquat en vue d’une remédiation
  • Alertes lorsque des appareils s’écartent des attributions de politiques Intune attendues

Avec NinjaOne, les MSP peuvent rationaliser la gouvernance des politiques Intune tout en conservant une évolutivité et un reporting multiclients.

Bonnes pratiques pour automatiser l’attribution des profils dans Intune

Automatiser l’attribution des profils de configuration Intune avec l’API Graph est un moyen efficace de renforcer l’application des politiques et de fluidifier l’onboarding des appareils sur l’ensemble de votre réseau.

Mais à mesure que votre entreprise grandit, envisagez d’associer Intune et l’API Graph à un RMM comme NinjaOne, qui offre des capacités d’automatisation et de remédiation à grande échelle. Cette approche proactive fournit un cadre complet pour une gestion des terminaux automatisée, évolutive et prête pour l’audit.
Sujets connexes :

FAQs

Les profils de configuration Intune sont des ensembles de paramètres et de politiques qui contrôlent la sécurité, les restrictions matérielles et le comportement du système d’exploitation sur les terminaux gérés. Ces profils sont attribués à des groupes d’utilisateurs ou d’appareils afin d’imposer des références de configuration standardisées dans tout l’environnement.

L’API Microsoft Graph est la passerelle unifiée vers les services Microsoft 365. Comme le centre d’administration Microsoft Intune repose entièrement sur les endpoints de l’API Graph, les administrateurs peuvent l’utiliser pour automatiser par programmation le déploiement d’un tenant, interroger l’état des appareils et attribuer des politiques à grande échelle.

Si vous souhaitez un workflow 100 % cloud-native, vous pouvez vous passer totalement des clés de registre locales. Vous pouvez vous appuyer sur les catégories d’appareils natives d’Intune ou utiliser les attributs d’extension Microsoft Entra ID pour construire votre ciblage dynamique. Les clés de registre locales servent généralement lorsque vous avez besoin d’un moteur RMM on-premise (comme NinjaOne) pour faire le lien avec des terminaux non gérés ou en cours de migration.

Si un appareil reçoit deux paramètres de profil de configuration contradictoires via des attributions de groupes différentes, Intune n’applique pas la règle du « dernier écrivain gagne ». Il signale au contraire un état Conflit dans le centre d’administration, et aucun des deux paramètres n’est appliqué tant qu’un administrateur n’a pas résolu manuellement le chevauchement. Pour éviter cela, veillez à ce que la logique de votre script impose une architecture stricte d’« une seule étiquette par domaine de politique ».

Microsoft Intune s’appuie sur des architectures de ciblage par groupes pour les politiques de conformité et de configuration personnalisées. La plateforme permet certes de cibler de vastes collections virtuelles comme « Tous les appareils », mais un ciblage granulaire fondé sur des attributs uniques ou des étiquettes opérationnelles impose de regrouper d’abord les objets. Les groupes Microsoft Entra ID constituent donc le maillon fonctionnel indispensable à l’automatisation via l’API Graph.

You might also like

Prêt à simplifier les aspects les plus complexes de l'informatique et de la sécurité ?

Termes et conditions NinjaOne

En cliquant sur le bouton « J’accepte » ci-dessous, vous indiquez que vous acceptez les termes juridiques suivants ainsi que nos conditions d’utilisation:

  • Droits de propriété: NinjaOne possède et continuera de posséder tous les droits, titres et intérêts relatifs au script (y compris les droits d’auteur). NinjaOne vous accorde une licence limitée pour l’utilisation du script conformément à ces conditions légales.
  • Limitation de l’utilisation: Les scripts ne peuvent être utilisés qu’à des fins personnelles ou professionnelles internes légitimes et ne peuvent être partagés avec d’autres entités.
  • Interdiction de publication: Vous n’êtes en aucun cas autorisé à publier le script dans une bibliothèque de scripts appartenant à, ou sous le contrôle d’un autre fournisseur de logiciels.
  • Clause de non-responsabilité: Le texte est fourni « tel quel » et « tel que disponible », sans garantie d’aucune sorte. NinjaOne ne promet ni ne garantit que le script sera exempt de défauts ou qu’il répondra à vos besoins ou attentes particulières.
  • Acceptation des risques: L’utilisation du script est sous votre propre responsabilité. Vous reconnaissez qu’il existe certains risques inhérents à l’utilisation du script, et vous comprenez et assumez chacun de ces risques.
  • Renonciation et exonération de responsabilité: Vous ne tiendrez pas NinjaOne pour responsable des conséquences négatives ou involontaires résultant de votre utilisation du script, et vous renoncez à tout droit ou recours légal ou équitable que vous pourriez avoir contre NinjaOne en rapport avec votre utilisation du script.
  • EULA: Si vous êtes un client de NinjaOne, votre utilisation du script est soumise au contrat de licence d’utilisateur final qui vous est applicable (End User License Agreement (EULA)).