A partir de 2023, il ne sera plus conseillé d'utiliser les anciennes commandes Powershell des modules AzureAD et MSOnline. Microsoft les abandonne au profit du module Microsoft.Graph.
Toutes les commandes devront être réécrite, étant donné que le module Graph amène son lot de commandes, totalement différentes des anciennes. Bougez vos scripts... !
Ce nouveau module apportera également deux modes de connexion :
Microsoft met à disposition deux versions de Graph :
Select-Profile -Name "beta"
Select-Profile -Name "v1.0"
L'installation peut s'effectuer pour l'utilisateur uniquement ou bien pour l'ensemble des utilisateurs (les droits Administrateur sont requis).
Install-Module Microsoft.Graph -Scope CurrentUser
Install-Module Microsoft.Graph -Scope AllUsers
Pour voir la version installée, faire
Get-InstalledModule Microsoft.graph
Version Name Repository Description
------- ---- ---------- -----------
1.17.0 Microsoft.Graph PSGallery Microsoft Graph PowerShell module
Avant d'établir la connexion il faut comprendre la nouvelle notion d'autorisations mise en place. Microsoft Graph s'appuie sur une ou plusieurs étendues en fonction de ce que vous souhaitez effectuer. Pour pouvoir accéder à ces étendues, une délégation d'accées sera créé au moment de la connexion.
Par exemple, pour lire les licences disponibles dans l'organisation, il vous faudra disposer du droit Organization.Read.All. Pour accéder à la liste des utilisateurs ce sera le droit User.Read.All. Pour les groupes ce sera Group.Read.All. Et si l'on veut faire des modifications on partira sur User.ReadWrite.All.
Pour établir la connexion, il faudra donc présenter les droits que l'on souhaite disposer pour atteindre l'étendue que l'on veut manipuler.
Connect-MgGraph -Scopes "User.Read.All","Group.Read.All"
La fenêtre d'authentification s'affiche et il faudra la renseigner avec des droits administrateur
du tenant Microsoft 365. L'ouverture d'un scope spécifique peut être complétée par un ou plusieurs
autres ultérieurement en refaisant une connexion à Microsoft.Graph et en spécifiant ce que l'on souhaite
ajouter dans le scope.
Pour récupérer la liste des utilisateurs du tenant :
Get-MgUser
Pour obtenir les groupes (et si l'on a ajouté le scope Group.Read.All) : Get-MgGroup
Ne pas oublier de fermer sa session de travail Microsoft 365 par
Disconnect-MgGraph
C'est une partie qui impose davantage de préparation car cela va permettre l'automatisation sous forme de scripts auprès d'un ou plusieurs tenants Microsoft. Et pour cela, il faut obtenir des points de terminaison et des certificats.
Depuis le portail Azure, rubrique Azure Active Directory, Cliquer sur Inscriptions d'applications puis sur Nouvelle inscription. Donner un nom pour identifier cette application et laisser tout le reste tel que sélectionné automatiquement.