La gestion de Microsoft 365 (anciennement Office 365) nécessite souvent PowerShell pour les opérations en masse, l’automatisation et l’accès aux paramètres non disponibles dans le centre d’administration. Ce guide couvre la méthode moderne de connexion avec le module ExchangeOnlineManagement ainsi que la connexion à d’autres services Microsoft 365.
Important : Microsoft a abandonné l’authentification de base pour Exchange Online en octobre 2022. L’ancienne méthode avec
New-PSSessionne fonctionne plus. Utilisez la méthode moderne avec les modules décrite ci-dessous.
Prérequis
- Windows PowerShell 5.1 ou PowerShell 7+
- Compte administrateur Microsoft 365
- Connectivité Internet
- Module PowerShellGet (inclus dans Windows 10/11 et Server 2016+)
Installation des modules nécessaires
Module de gestion Exchange Online
# Installer le module (exécuter PowerShell en tant qu'administrateur)
Install-Module -Name ExchangeOnlineManagement -Force -AllowClobber
# Ou mettre à jour s'il est déjà installé
Update-Module -Name ExchangeOnlineManagement
# Vérifier l'installation
Get-Module -Name ExchangeOnlineManagement -ListAvailable
Autres modules Microsoft 365 utiles
# Microsoft Graph (remplace les modules AzureAD et MSOnline)
Install-Module -Name Microsoft.Graph -Force
# Microsoft Teams
Install-Module -Name MicrosoftTeams -Force
# SharePoint Online
Install-Module -Name Microsoft.Online.SharePoint.PowerShell -Force
Connexion à Exchange Online
Connexion standard (avec support MFA)
# Importer le module
Import-Module ExchangeOnlineManagement
# Se connecter — ouvre une fenêtre de navigateur pour l'authentification
Connect-ExchangeOnline -UserPrincipalName admin@votredomaine.com
Une fenêtre de navigateur s’ouvre pour l’authentification. Complétez votre mot de passe et la vérification MFA.
Connexion sans invite de navigateur
Pour les scripts automatisés dans les environnements sans navigateur :
# Authentification par certificat (recommandée pour l'automatisation)
Connect-ExchangeOnline -CertificateThumbprint "THUMBPRINT" `
-AppId "APP-ID" `
-Organization "votredomaine.onmicrosoft.com"
Connexion à un tenant spécifique (pour partenaires/MSPs)
Connect-ExchangeOnline -UserPrincipalName admin@partenaire.com `
-DelegatedOrganization "tenant-client.onmicrosoft.com"
Tâches de gestion courantes
Une fois connecté, vous pouvez exécuter les cmdlets Exchange Online :
Gestion des boîtes aux lettres
# Lister toutes les boîtes aux lettres
Get-EXOMailbox -ResultSize Unlimited | Select-Object DisplayName, PrimarySmtpAddress
# Obtenir une boîte aux lettres spécifique
Get-EXOMailbox -Identity "utilisateur@votredomaine.com" | Format-List
# Obtenir les statistiques de la boîte aux lettres (taille, nombre d'éléments)
Get-EXOMailboxStatistics -Identity "utilisateur@votredomaine.com" |
Select-Object DisplayName, TotalItemSize, ItemCount
# Configurer les propriétés de la boîte aux lettres
Set-Mailbox -Identity "utilisateur@votredomaine.com" -MaxReceiveSize 50MB
Groupes de distribution
# Lister tous les groupes de distribution
Get-DistributionGroup -ResultSize Unlimited
# Obtenir les membres d'un groupe
Get-DistributionGroupMember -Identity "equipe-ventes@votredomaine.com"
# Ajouter un membre
Add-DistributionGroupMember -Identity "equipe-ventes" -Member "nouveauutilisateur@votredomaine.com"
Règles de flux de messagerie (règles de transport)
# Lister toutes les règles de transport
Get-TransportRule | Select-Object Name, State, Priority
# Désactiver une règle
Disable-TransportRule -Identity "Nom de la règle"
Connexion à d’autres services Microsoft 365
Microsoft Graph (utilisateurs, groupes, licences)
Import-Module Microsoft.Graph
# Se connecter avec des permissions spécifiques
Connect-MgGraph -Scopes "User.Read.All", "Group.ReadWrite.All"
# Lister tous les utilisateurs
Get-MgUser -All | Select-Object DisplayName, UserPrincipalName, AccountEnabled
# Obtenir les informations de licences
Get-MgSubscribedSku | Select-Object SkuPartNumber, ConsumedUnits,
@{N='Total';E={$_.PrepaidUnits.Enabled}}
Microsoft Teams
Import-Module MicrosoftTeams
Connect-MicrosoftTeams
# Lister toutes les équipes
Get-Team | Select-Object DisplayName, GroupId, Visibility
Déconnexion des sessions
Déconnectez-vous toujours à la fin pour libérer les ressources :
# Déconnecter Exchange Online
Disconnect-ExchangeOnline -Confirm:$false
# Déconnecter Microsoft Graph
Disconnect-MgGraph
# Déconnecter Teams
Disconnect-MicrosoftTeams
Méthode obsolète (ne fonctionne plus)
Pour référence historique, voici l’ancienne méthode de connexion. Elle a cessé de fonctionner en octobre 2022 lorsque Microsoft a désactivé l’authentification de base :
# OBSOLÈTE — NE PAS UTILISER
$cred = Get-Credential
$session = New-PSSession -ConfigurationName Microsoft.Exchange `
-ConnectionUri https://ps.outlook.com/powershell/ `
-Credential $cred -Authentication Basic -AllowRedirection
Import-PSSession $session -Prefix o365
Si vous avez encore des scripts utilisant cette méthode, mettez-les à jour pour utiliser Connect-ExchangeOnline.
Dépannage
Module non trouvé
# Mettre à jour PowerShellGet d'abord
Install-Module -Name PowerShellGet -Force
# Puis réessayer l'installation d'ExchangeOnlineManagement
Accès refusé
Assurez-vous que votre compte dispose des rôles administrateur requis :
- Exchange Administrator pour la gestion des boîtes aux lettres
- Global Administrator pour un accès complet
- Security Administrator pour les fonctions de conformité
Timeout de connexion derrière un proxy
Connect-ExchangeOnline -UserPrincipalName admin@votredomaine.com `
-PSSessionOption (New-PSSessionOption -ProxyAccessType IEConfig)
Résumé
La méthode moderne pour gérer Microsoft 365 via PowerShell est le module ExchangeOnlineManagement avec Connect-ExchangeOnline. Il prend en charge la MFA, est activement maintenu par Microsoft et remplace la méthode obsolète d’authentification de base. Pour la gestion des utilisateurs et groupes en dehors d’Exchange, utilisez le module Microsoft.Graph.