PowerShell : comment installer le module Exchange Online V3 ?
Sommaire
I. Présentation
Dans ce tutoriel, nous allons apprendre à installer le module PowerShell "Exchange Online V3" connu sous le nom "EXO V3", sur lequel Microsoft a travaillé pendant plusieurs mois. Il représente l'avenir et va devenir incontournable pour les personnes qui ont des scripts de configuration d'Exchange Online.
Pour refaire un peu l'historique, Microsoft a mis en ligne la V2 (2.0.3) de ce module le 21 septembre 2020. Ensuite, les versions preview se sont enchainées jusqu'à ce que sorte la version V2.0.5 le 11 mai 2021. Ensuite, il y a eu plusieurs preview de la version V2.0.6... Et finalement, cette version est sortie en version stable en tant que version 3.0.0.
A ce jour, c'est la version la plus évoluée, qui reprend les améliorations des versions précédentes comme la prise en charge l'authentification moderne avec ou sans MFA. Le module EXO V3 va plus loin car il supporte aussi l'authentification par certificat pour la partie "Sécurité et conformité" et interroge le Cloud via une API REST.
Ce module est capable de s'authentifier sur Exchange Online, Exchange Online Protection et Sécurité et Conformité.
Note : A partir de juin 2023, il ne sera plus possible d'utiliser le module Exchange Online V2 pour administrer Exchange Online car il ne supporte pas l'authentification moderne. D'où l'intérêt de passer sur la dernière version de ce module.
Pour en savoir plus sur tous les changements, vous pouvez consulter la documentation officielle de Microsoft :
II. Installer le module Exchange Online V3
Ce module est publié sur la PowerShell Gallery (voir ici) et on peut l'installer facilement via PowerShellGet avec la commande habituelle : Install-Module. Ceci nous donne la commande suivante :
Install-Module -Name ExchangeOnlineManagement
Pour cibler une version spécifique, par exemple la v3.0.0, on peut aussi la préciser de cette façon :
Install-Module -Name ExchangeOnlineManagement -RequiredVersion 3.0.0
L'installation s'effectue en quelques secondes, après avoir validé avec "A" puis "Entrée".
Une fois l'installation effectuée, on peut lister les commandes du module :
Get-Command -Module ExchangeOnlineManagement
Voici la liste :
Les nouvelles commandes, disponibles depuis la V2 de ce module, sont préfixées par "EXO". Voici quelques exemples :
- Get-CASMailbox devient Get-EXOCASMailbox
- Get-Mailbox devient Get-EXOMailbox
- Get-MailboxFolderPermission devient Get-EXOMailboxFolderPermission
- Get-MailboxFolderStatistics devient Get-EXOMailboxFolderStatistics
- Get-MailboxPermission devient Get-EXOMailboxPermission
- Etc...
Rassurez-vous, les anciennes commandes restent utilisables malgré tout. 😉
III. Se connecter à Exchange Online avec PowerShell
Le module est installé, donc nous allons pouvoir établir la connexion avec un environnement Office 365 via la commande Connect-ExchangeOnline.
Pour s'authentifier, il suffit de préciser son adresse e-mail (associé au compte qui a les droits) :
Connect-ExchangeOnline -UserPrincipalName [email protected]
Un navigateur va s'ouvrir, pour vous demander de vous connecter avec le mot de passe correspondant au compte mentionné. Ensuite, la connexion sera établie si votre compte n'est pas protégé par MFA. Dans le cas où il y a le MFA sur le compte, l'étape du MFA s'affiche, comme ceci :
Après avoir validé ce second facteur d'authentification, la connexion est établie. Le message "Authentication complete. You can return to the application. Feel free to close this browser tab." s'affiche dans le navigateur. Vous pouvez fermer la fenêtre et commencer à exécuter des commandes comme celle-ci pour lister les boites aux lettres.
Get-EXOMailbox
Vous avez aussi la possibilité d'utiliser le mode d'authentification basé sur le périphérique, où un code sera donné, et il doit être saisit dans le navigateur à partir du compte déjà connecté à l'environnement cible. Dans ce cas, c'est cette commande qu'il faut utiliser :
Connect-ExchangeOnline -Device
Par la suite, lorsque vous avez terminé vos actions, vous pouvez fermer la session (ou les sessions) avec la commande suivante :
Disconnect-ExchangeOnline
Il sera nécessaire de valider pour déconnecter toutes les sessions :
Pour supprimer la demande de confirmation :
Disconnect-ExchangeOnline -Confirm:$false
Dans le cas où l'on souhaite se connecter à la plateforme Sécurité et Conformité, le cmdlet Connect-IPPSession doit être utilisé.
IV. Conclusion
Vous êtes désormais en mesure d'installer le module Exchange Online Management "EXO V3" de PowerShell et de vous connecter à votre environnement Cloud, vous n'avez plus qu'à l'exploiter pour vos tâches d'administration !