Sommaire
ToggleDans cet article, je vais partager un script Azure Automation Azure (runbook) qui vous permet de remplir automatiquement un groupe d’appareils en fonction d’un groupe d’utilisateurs.
Contexte
Vous avez un groupe d’utilisateurs, par exemple pour différentes équipes DWP, DSI, Collab…
Vous souhaitez déployer une application, un script… uniquement sur les appareils des membres de ces groupes.
Vous avez besoin d’un groupe qui rassemble tous les appareils de tous les utilisateurs de ces groupes.
C’est là que le runbook d’automatisation intervient.
La solution
Voici comment cela fonctionne :
- Un runbook Azure Automation est exécuté, par exemple, tous les deux jours,
- Il récupère les membres d’un groupe d’utilisateurs,
- Pour chaque utilisateur, il récupère leurs appareils
- Pour chaque appareil, il l’ajoute au groupe s’il n’en est pas déjà membre
- Ensuite, un mail contenant un fichier CSV avec tous les appareils ajoutés est envoyé
La notification
Ci-dessous, un aperçu des notifications par mail pour les nouveaux appareils ajoutés :
Ci-dessous, un aperçu de la liste CSV :
Récupérer le script
Cliquez sur l’image GitHub ci-dessous pour accéder aux scripts.
Vous y trouverez :
- Assign_permissions.ps1 : script pour ajouter des permissions à l’identité managée (MI).
- Runbook.ps1 : le runbook d’automatisation Azure.
Création du compte Azure Automation
Objectif : Nous allons créer le compte Azure Automation qui sera utilisé pour exécuter le script.
- Allez dans Azure
- Allez dans Azure Automation
- Cliquez sur Create
- Saisissez un nom
- Choisissez un Abonnement, un Groupe de ressources et une Région
- Cliquez sur Create
Configuration de l’identité managée
Objectif : L’identité managée est utilisée pour s’authentifier auprès du tenant, évitant ainsi d’avoir à fournir des identifiants.
Lorsque vous configurez l’identité managée, une nouvelle application d’entreprise Azure sera créée.
Cette application sera utilisée pour s’authentifier auprès de votre tenant et effectuer des appels API.
Procédez comme suit :
- Allez dans Azure Automation
- Allez dans Identity
- Cliquez sur System assigned
- Sélectionnez Enable
- Cliquez sur Save
- Cliquez sur Yes
- Une fois configurée, une nouvelle application d’entreprise portant le même nom que le compte d’automatisation sera créée
Ajout de modules
Objectif : Nous devons ajouter des modules pour s’authentifier avec Graph et envoyer des mails.
N’utilisez cette étape que si vous souhaitez envoyer des informations par mail.
- Allez dans Azure Automation
- Cliquez sur Modules gallery
- Importez les modules suivants :
- Microsoft.Graph.Groups
- Microsoft.Graph.Authentication
- Microsoft.Graph.Users
Ajout du propriétaire du groupe
Objectif : Nous voulons ajouter des membres à un groupe cible, ce qui nécessite des droits sur ce groupe.
Pour cela, nous allons ajouter l’identité managée comme propriétaire du groupe.
- Ouvrez le portail Intune.
- Allez dans Groups.
- Accédez à votre groupe
- Cliquez sur Owners
- Recherchez l’identité managée.
- Sélectionnez-la
Ajout de permissions
Objectif : Afin de pouvoir répertorier les applications Azure et envoyer des mails, nous devons ajouter des permissions à notre identité managée.
Les permissions nécessaires sont :
- Mail.Send
- Group.Read.All
- User.Read.All
- GroupMember.ReadWrite.All
Procédez comme suit :
- Modifiez le script Assign_permissions.ps1.
- Modifiez les variables $TenantID et $DisplayNameOfMSI.
- Ouvrez PowerShell avec des droits d’administrateur global.
- Exécutez le script.
Modification du runbook
Informations sur les groupes
Objectif : Modifier le script du runbook pour l’adapter à vos besoins en ce qui concerne les groupes d’utilisateurs et d’appareils.
- Modifiez le script Runbook.ps1.
- Modifiez les variables suivantes :
$Users_Group = "" # ID of the users group
$Devices_Target_Group_Id = "" # ID of the target group
Informations sur le mail
Objectif : Modifier le script du runbook pour l’adapter à vos besoins concernant les notifications par mail.
- Modifiez le script Assign_permissions.ps1.
- Modifiez les variables suivantes :
$Send_Mail = $True # $True or $False
$Send_All_Devices_CSV = $False # $True or $False
$Mail_From = ""
$Mail_To = ""
$CSV_File = "TeamName_Devices_Group_new_members.csv"
$CSV_File_All = "TeamName_Devices_Group_all_members.csv"
* Replace TeamName with the name of the team for which you want to get members
Création du runbook
Objectif : Créer le script qui exécute la requête KQL à distance.
- Cliquez sur Create a runbook
- Saisissez un nom
- Dans runbook type, sélectionnez PowerShell
- Cliquez sur Create
- Cliquez sur Modify sur le runbook
- Copiez le contenu du script Runbook.ps1
- Cliquez sur Save
- Cliquez sur Publish