Vous cherchez à automatiser la création de profils de configuration ? Vous êtes au bon endroit.
Imaginez avoir une multitude de profils de configuration à générer et vouloir simplifier le processus avec PowerShell. De plus, vous aspirez à assigner efficacement ces profils à divers groupes et à inclure un scope tag pour chacun d’entre eux.
Outils utilisés :
- Graph Explorer
- PowerShell (MG-Graph)
- Une registered application avec les permissions « Device Configuration » en ReadWrite en mode application
- Console Intune
Voici les étapes que nous allons suivre :
- Créer un profil manuellement à titre d’exemple
- Récupérer les informations depuis Graph Explorer
- Construire votre script
- Assigner le profil
- Automatiser
- Run
Créer un profil manuellement
Créons un profil pour désactiver le Bluetooth et supprimer les services de jeux du menu Windows.



Scope tags et assignments :


Obtenir les infos avec Graph Explorer
Le nom de mon profil de configuration est : Admin0 – DisableBluetoothandGaming
Connectons-nous à Graph Explorer en utilisant un compte disposant des privilèges suffisants pour lire le profil de configuration nouvellement créé. Ensuite, recherchez votre profil de configuration en filtrant par le nom :

Voici l’URI : https://graph.microsoft.com/v1.0/deviceManagement/deviceConfigurations?$filter=displayname eq ‘Admin0 – DisableBluetoothandGaming’&?$expand=assignments
Où $filter correspond au nom de la configuration et $expand permet de visualiser l’assignation de groupe à la fin des résultats.
Vous remarquez la réponse de votre appel GET ? Nous allons l’utiliser plus tard dans notre script PowerShell.
Notez également les valeurs pour le Bluetooth et le Gaming :



Construisez votre script PowerShell :
Pour vous connecter à Graph, je vous suggère de créer d’abord une application enregistrée avec les permissions suffisantes pour créer des profils de configuration. Utilisez la commande Connect-MgGraph comme ci-dessous avec votre identifiant client et la méthode utilisée pour sécuriser l’application (secret ou certificat) :

De retour dans Graph Explorer, toutes les informations de la réponse GET ne nous intéressent pas. En résumé, c’est tout ce qui se trouve sous « value » que nous recherchons !
Stockez dans une variable nommée $JSON la réponse que vous avez obtenue de Graph Explorer. Les payloads pour le Bluetooth et le Gaming y sont configurés :


Ensuite, choisissez l’URI pour créer un profil de configuration : https://graph.microsoft.com/beta/deviceManagement/deviceConfigurations
Et enfin, effectuez l’appel pour créer le profil avec une action POST.
Concernant le scope tag, si vous ne la spécifiez pas lors de la création, le scope tag « Default » sera utilisé par défaut.
Pour utiliser l’une de vos balises personnalisées, récupérez l’ID du role scope tag ID depuis Graph Explorer en utilisant l’URI : https://graph.microsoft.com/beta/deviceManagement/roleScopeTags

Facile, je veux utiliser ma balise de périmètre Admin0, donc l’ID est « 1 ».
Une fois que vous avez récupéré l’ID du scopetag, retournez dans votre script PowerShell et insérez le comme ceci dans le contenu JSON :

Run :

Créé ! Et les valeurs sont correctes !
Nous nous occuperons de l’automatisation plus tard. Nous avons validé le processus de création.
Assigner le profil
D’accord, vous avez créé le profil mais vous avez remarqué qu’il n’y a pas encore d’assignement.
Voici les étapes à suivre : récupérer l’ID de votre configuration créée, récupérer l’ID de votre groupe et enfin assigner le tout.
Ce qui donne, en PowerShell :

Ce que nous faisons, c’est récupérer l’ID de votre configuration et celui de votre groupe afin de pouvoir les associer l’un à l’autre.
Je récupère l’ID via un appel GET sur l’API, mais vous pouvez tout à fait utiliser une autre boucle avec un fichier CSV ou votre méthode préférée ! Les IDs de groupes sont faciles à obtenir via un export.
Enfin, assignez la configuration avec l’action POST.

Un coup d’oeil dans l’UI :

Automatiser la création
Vous avez fait le plus gros du travail.
Maintenant, vous cherchez à parcourir une liste de vos pays / entités / départements.
Pour chaque pays, créez la configuration en y incluant le nom du pays, puis assignez-la au groupe d’appareils correspondant à ce pays.
Pour ce faire, créez une boucle foreach au début de votre script qui parcourt la liste des pays :



Notez que je ne crée pas le groupe dans le script. Cependant, vous pouvez imaginer les étapes suivantes :
- Pour chaque pays :
- Le groupe existe-t-il ? Sinon, créer le groupe (généralement un if avec un bloc try/catch).
- Créer la configuration.
- Assigner la configuration.
Conclusion
Vous pouvez imaginer de multiples cas d’usage ici :
Parcourir les groupes directement depuis Entra.
Créer différents types de profils de configuration.
Explorer la création d’applications.
Exécuter le script dès qu’un pays est intégré (onboarding).
Ajouter des appareils aux groupes.