GERBELOTBARILLON.COM

Parce qu'il faut toujours un commencement...

Microsoft365 en PowerShell

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 :

Pour bascule de l'une à l'autre, il faut choisir le profil par
Select-Profile -Name "beta"

Select-Profile -Name "v1.0"

Installation du module

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

Connexion à Microsoft 365 en mode Délégué (interactif)

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.

Interrogation de M365

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

Fin des opérations

Ne pas oublier de fermer sa session de travail Microsoft 365 par

Disconnect-MgGraph

Connexion via l'accès application

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.