Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article contient des instructions sur la connexion à Exchange Online PowerShell à l’aide du module PowerShell d’Exchange Online avec ou sans authentification multifacteur (MFA).
Conseil
Les instructions de connexion décrites dans cet article s’appliquent également au module complémentaire de sécurité intégré pour les boîtes aux lettres locales.
Le module Exchange Online PowerShell utilise l’authentification moderne pour se connecter à Exchange Online PowerShell et à & de sécurité PowerShell. Pour plus d’informations sur le module PowerShell pour Exchange Online, consultez l’article À propos du module PowerShell pour Exchange Online.
Pour vous connecter à Exchange Online PowerShell pour l’automatisation, consultez Authentification d’application uniquement pour les scripts sans assistance et Utiliser des identités managées Azure pour vous connecter à Exchange Online PowerShell.
Pour vous connecter à Exchange Online PowerShell à partir de C#, consultez Utiliser C# pour vous connecter à Exchange Online PowerShell.
Ce qu'il faut savoir avant de commencer
Les conditions requises pour l’installation et l’utilisation du module sont décrites dans les conditions préalables pour le module Exchange Online PowerShell et Systèmes d’exploitation pris en charge pour le module Exchange Online PowerShell.
Une fois que vous êtes connecté, le contrôle d’accès en fonction du rôle (RBAC) contrôle les applets de commande et les paramètres auxquels vous avez accès ou non. Pour plus d'informations, voir Permissions en échange en ligne.
Pour trouver les autorisations requises pour exécuter une cmdlet d’Exchange Online spécifique, voir Trouver les autorisations requises pour exécuter une cmdlet Exchange.
Étape 1 : charger le module PowerShell d’Exchange Online
Remarque
Si le module est déjà installé, vous pouvez généralement ignorer cette étape et exécuter Connect-ExchangeOnline sans charger manuellement le module au préalable.
Après avoir installé le module, ouvrez une fenêtre PowerShell et chargez le module en exécutant la commande suivante :
Import-Module ExchangeOnlineManagement
Étape 2 : Se connecter et s’authentifier
Remarque
Les commandes de connexion échouent probablement si le chemin d’accès du profil du compte que vous avez utilisé pour vous connecter contient des caractères PowerShell spéciaux (par exemple, $). La solution consiste à se connecter à l’aide d’un autre compte qui ne comporte pas de caractères spéciaux dans le chemin d’accès du profil.
La commande à exécuter utilise la syntaxe suivante:
Connect-ExchangeOnline [-UserPrincipalName <UPN>] [-ExchangeEnvironmentName <Value>] [-ShowBanner:$false] [-LoadCmdletHelp] [-DelegatedOrganization <String>] [-SkipLoadingFormatData] [-DisableWAM]
Pour obtenir des informations de syntaxe et de paramètre détaillées, voir Connect-ExchangeOnline.
<UPN> correspond à votre compte au format de nom d’utilisateur principal (par exemple,
navin@contoso.onmicrosoft.com).Lorsque vous utilisez le paramètre ExchangeEnvironmentName, vous n'avez pas besoin d'utiliser les paramètres ConnectionUri ou AzureADAuthorizationEndPointUrl. Les valeurs communes du paramètre ExchangeEnvironmentName sont décrites dans le tableau suivant :
Environnement Valeur Microsoft 365 ou Microsoft 365 GCC s/o* Microsoft 365 GCC High O365USGovGCCHighMicrosoft 365 DoD O365USGovDoDOffice 365 Allemagne O365GermanyCloudOffice 365 géré par 21Vianet O365China* La valeur
O365Defaultrequise étant également la valeur par défaut, vous n’avez donc pas besoin d’utiliser le paramètre ExchangeEnvironmentName dans les environnements Microsoft 365 ou Microsoft 365 GCC.Dans la version 3.7.0 ou ultérieure, l’aide de ligne de commande pour les applets de commande PowerShell d’Exchange Online n’est plus chargée par défaut. Utilisez le commutateur LoadCmdletHelp pour que l’aide des applets de commande PowerShell d’Exchange Online soit disponible pour l’applet de commande Get-Help.
Le paramètre l’Organisation Déléguée indique l’organisation cliente que vous voulez gérer en tant que partenaire Microsoft agréé. Pour plus d’informations, consultez les exemples de connexion fournis plus loin dans cet article.
Selon la nature de votre organisation, vous pouvez peut-être omettre le paramètre UserPrincipalName dans la commande connection. Au lieu de cela, vous entrez le nom d’utilisateur et le mot de passe, ou sélectionnez les informations d’identification stockées après exécution de la commande Connect-ExchangeOnline. Si cela ne fonctionne pas, vous devez utiliser le paramètre UserPrincipalName.
Si vous n’utilisez pas MFA, vous devez pouvoir utiliser le paramètre Credential à la place du paramètre UserPrincipalName. Tout d’abord, exécutez la commande
$Credential = Get-Credential, entrez votre nom d’utilisateur et votre mot de passe, puis utilisez le nom de la variable pour le paramètre Credential (-Credential $Credential). Si cela ne fonctionne pas, vous devez utiliser le paramètre UserPrincipalName.Utilisez le commutateur SkipLoadingFormatData pour éviter les erreurs lors de la connexion à Exchange Online PowerShell à partir d’un service Windows.
PowerShell 7 nécessite la version 2.0.4 ou ultérieure.
Dans la version 3.7.2 ou ultérieure, le commutateur DisableWAM est disponible pour désactiver le gestionnaire de comptes web (WAM) si vous obtenez des erreurs de connexion liées à WAM.
Les exemples de connexion des sections suivantes utilisent l’authentification moderne et ne peuvent pas utiliser l’authentification de base.
Connectez-vous à Exchange Online PowerShell à l’aide d’une invite de connexion interactive
Les exemples suivants fonctionnent dans Windows PowerShell 5.1 et PowerShell 7 pour les comptes avec ou sans MFA :
Cet exemple se connecte à Exchange Online PowerShell dans une organisation Microsoft 365 ou Microsoft 365 GCC:
Connect-ExchangeOnline -UserPrincipalName navin@contoso.onmicrosoft.comCet exemple se connecte à Exchange Online PowerShell dans une organisation Microsoft GCC High :
Connect-ExchangeOnline -UserPrincipalName laura@blueyonderairlines.us -ExchangeEnvironmentName O365USGovGCCHighCet exemple se connecte à Exchange Online PowerShell dans une organisation Microsoft 365 DoD :
Connect-ExchangeOnline -UserPrincipalName julia@adatum.mil -ExchangeEnvironmentName O365USGovDoDCet exemple se connecte à Exchange Online PowerShell dans une organisation Office 365 Allemagne :
Connect-ExchangeOnline -UserPrincipalName lukas@fabrikam.de -ExchangeEnvironmentName O365GermanyCloud
Dans la fenêtre de connexion qui s’ouvre, entrez votre mot de passe, puis sélectionnez Se connecter.
Remarque
Dans PowerShell 7, l’authentification unique basée sur le navigateur (SSO) est utilisée par défaut, de sorte que l’invite de connexion s’ouvre dans votre navigateur web par défaut au lieu d’une boîte de dialogue autonome.
MFA uniquement : un code de vérification est généré et envoyé en fonction de l’option de réponse configurée pour votre compte (par exemple, un SMS ou l’application Microsoft Authenticator sur votre appareil).
Dans la fenêtre de vérification qui s’ouvre, entrez le code de vérification, puis sélectionnez Vérifier.
Méthodes de connexion exclusives PowerShell 7
Dans PowerShell 7 pour les comptes sans authentification multifacteur, cet exemple invite à entrer des informations d’identification dans la fenêtre PowerShell :
Connect-ExchangeOnline -UserPrincipalName navin@contoso.onmicrosoft.com -InlineCredentialDans PowerShell 7 pour les comptes avec ou sans MFA, cet exemple utilise un autre ordinateur pour authentifier et terminer la connexion. En règle générale, vous utilisez cette méthode sur les ordinateurs qui n’ont pas de navigateur web (les utilisateurs ne peuvent pas entrer leurs informations d’identification dans PowerShell 7) :
Exécutez la commande suivante sur l’ordinateur sur lequel vous souhaitez vous connecter :
Connect-ExchangeOnline -DeviceLa commande de connexion attend la sortie suivante :
Pour vous connecter, utilisez un navigateur web pour ouvrir la page https://microsoft.com/devicelogin et entrez le code <XXXXXXXXX> pour vous authentifier.
Notez la valeur de <code XXXXXXXXX> .
Sur tout autre appareil disposant d’un navigateur web et d’un accès à Internet, ouvrez https://microsoft.com/devicelogin et entrez la <valeur de code XXXXXXXXX> de l’étape précédente.
Entrez vos informations d’identification dans les pages de résultats.
Dans l’invite de confirmation, sélectionnez Continuer. Le message suivant doit indiquer que vous avez réussi et vous pouvez fermer le navigateur ou l’onglet.
La commande de l’étape 1 continue de vous connecter à Exchange Online PowerShell.
Connectez-vous à Exchange Online PowerShell sans invite de connexion (scripts sans assistance)
Pour obtenir des instructions complètes, consultez Authentification d’application uniquement pour les scripts sans assistance dans Exchange Online PowerShell et PowerShell Sécurité & conformité.
Se connecter à Exchange Online PowerShell dans les organisations clientes
Pour plus d’informations sur les partenaires et les organisations clientes, consultez les articles suivants :
- Qu’est-ce que le programme Fournisseur de solutions Cloud (CSP) ?.
- Présentation des privilèges d’administrateurs délégués granulaires (GDAP)
Cet exemple se connecte aux organisations clientes dans les scénarios suivants :
Connectez-vous à une organisation cliente à l’aide d’un compte CSP.
Connectez-vous à une organisation cliente à l’aide d’un GDAP.
Connectez-vous à une organization cliente en tant qu’invité.
Connect-ExchangeOnline -UserPrincipalName navin@contoso.onmicrosoft.com -DelegatedOrganization adatum.onmicrosoft.com
Connexion à Exchange Online PowerShell à l’aide d’une identité managée
Pour plus d’informations, consultez Utiliser des identités managées Azure pour se connecter à Exchange Online PowerShell.
Identité managée affectée par le système :
Connect-ExchangeOnline -ManagedIdentity -Organization "cohovinyard.onmicrosoft.com"Identité managée affectée par l’utilisateur :
Connect-ExchangeOnline -ManagedIdentity -Organization "constoso.onmicrosoft.com" -ManagedIdentityAccountId <ManagedIdentityAccountIdGuid>
Étape 3 : déconnectez-vous lorsque vous avez terminé
Veillez à déconnecter la session lorsque vous avez terminé. Si vous fermez la fenêtre PowerShell sans déconnecter la session, vous pourriez utiliser toutes les sessions disponibles et vous devez attendre leur expiration. Pour déconnecter la session, exécutez la commande suivante :
Disconnect-ExchangeOnline
Pour vous déconnecter silencieusement sans invite de confirmation, exécutez la commande suivante :
Disconnect-ExchangeOnline -Confirm:$false
Remarque
La commande de déconnexion échoue probablement si le chemin d’accès du profil du compte que vous avez utilisé pour vous connecter contient des caractères PowerShell spéciaux (par exemple, $). La solution consiste à se connecter à l’aide d’un autre compte qui ne comporte pas de caractères spéciaux dans le chemin d’accès du profil.
Comment savez-vous que vous vous êtes connecté avec succès ?
Si vous ne recevez aucune erreur, la connexion est établie. Un test rapide consiste à exécuter une applet de commande PowerShell d’Exchange Online, par exemple, Get-AcceptedDomain, et à afficher les résultats.
Si vous recevez des erreurs, vérifiez les conditions requises suivantes :
Un mot de passe incorrect est un problème courant. Réexécutez les étapes de connexion et portez une attention particulière au nom d’utilisateur et au mot de passe que vous utilisez.
Le compte que vous utilisez pour vous connecter doit être activé pour autoriser l’accès PowerShell. Pour plus d’informations, consultez Activer ou désactiver l’accès à Exchange Online PowerShell.
Le trafic du port TCP 80 doit être ouvert entre votre ordinateur local et Microsoft 365. Il est probablement ouvert, mais vous devez y penser si votre organisation a une stratégie restrictive d’accès à Internet.
Si votre organisation utilise l’authentification fédérée et que votre fournisseur d’identité (IDP) et/ou le service d’émission de jeton de sécurité (STS) n’est pas disponible publiquement, vous ne pouvez pas utiliser un compte fédéré pour vous connecter à Exchange Online PowerShell. Créez et utilisez plutôt un compte non fédéré dans Microsoft 365 pour vous connecter à Exchange Online PowerShell.
Les connexions REST à Exchange Online PowerShell nécessitent le module PowerShellGet. Par dépendance, le module PowerShellGet nécessite le module PackageManagement. Vous obtenez des erreurs si vous essayez de vous connecter sans que les deux modules soient installés. Par exemple, le message d’erreur suivant peut s’afficher :
Le terme « Update-ModuleManifest » n’est pas reconnu comme nom de cmdlet, d’une fonction, d’un fichier de script ou d’un programme utilisable. Vérifiez l’orthographe du nom ou, si un chemin d’accès a été inclus, vérifiez que le chemin est correct, puis réessayez.
Pour plus d’informations sur les exigences relatives aux modules PowerShellGet et PackageManagement, consultez PowerShellGet pour les connexions REST dans Windows.
Après vous être connecté, une erreur semblable à celle-ci peut s’afficher :
Impossible de charger le fichier ou lʼassembly « System.IdentityModel.Tokens.Jwt,Version=<Version>, Culture=neutral, PublicKeyToken=<TokenValue> ». Impossible de trouver ou de charger un fichier spécifique.
Cette erreur se produit lorsque le module PowerShell d’Exchange Online entre en conflit avec un autre module importé dans l’espace d’exécution. Essayez de vous connecter dans une nouvelle fenêtre de Windows PowerShell avant d’importer d’autres modules.
Annexe : Comparaison des anciennes et nouvelles méthodes de connexion
Cette section tente de comparer les anciennes méthodes de connexion remplacées par le module PowerShell d’Exchange Online. Les procédures d’authentification de base et de jeton OAuth sont incluses à titre de référence historique uniquement et ne sont plus prises en charge.
Se connecter sans authentification multifacteur
Module PowerShell d’Exchange Online avec invite interactive d’informations d’identification :
Connect-ExchangeOnline -UserPrincipalName admin@contoso.onmicrosoft.comModule PowerShell d’Exchange Online sans invite interactive d’informations d’identification :
$secpasswd = ConvertTo-SecureString '<Password>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $secpasswd) Connect-ExchangeOnline -Credential $o365credAuthentification de base :
$secpasswd = ConvertTo-SecureString '<Password>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $secpasswd) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/ -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $SessionNew-PSSession avec jeton OAuth :
$oauthTokenAsPassword = ConvertTo-SecureString '<EncodedOAuthToken>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $oauthTokenAsPassword) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/?BasicAuthToOAuthConversion=true -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $Session
Se connecter avec l’authentification multifacteur
Module PowerShell d’Exchange Online avec invite interactive d’informations d’identification :
Connect-ExchangeOnline -UserPrincipalName admin@contoso.onmicrosoft.comAuthentification de base : non disponible.
New-PSSession avec jeton OAuth : non disponible.
Se connecter à une organisation cliente avec un compte CSP
Module PowerShell pour Exchange Online :
Connect-ExchangeOnline -UserPrincipalName admin@contoso.onmicrosoft.com -DelegatedOrganization delegated.onmicrosoft.comAuthentification de base :
$secpasswd = ConvertTo-SecureString '<Password>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $secpasswd) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/?DelegatedOrg=delegated.onmicrosoft.com&email=SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}@delegated.onmicrosoft.com -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $SessionNew-PSSession avec jeton OAuth :
$oauthTokenAsPassword = ConvertTo-SecureString '<EncodedOAuthToken>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $oauthTokenAsPassword) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/? DelegatedOrg=delegated.onmicrosoft.com&BasicAuthToOAuthConversion=true&email=SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}@delegated.onmicrosoft.com -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $Session
Se connecter à une organisation cliente à l’aide de GDAP
Module PowerShell pour Exchange Online :
Connect-ExchangeOnline -UserPrincipalName admin@contoso.onmicrosoft.com -DelegatedOrganization delegated.onmicrosoft.comAuthentification de base :
$secpasswd = ConvertTo-SecureString '<Password>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $secpasswd) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/?DelegatedOrg=delegated.onmicrosoft.com&email=SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}@delegated.onmicrosoft.com -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $SessionNew-PSSession avec jeton OAuth :
$oauthTokenAsPassword = ConvertTo-SecureString '<EncodedOAuthToken>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $oauthTokenAsPassword) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/?DelegatedOrg=delegated.onmicrosoft.com&BasicAuthToOAuthConversion=true&email=SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}@delegated.onmicrosoft.com -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $Session
Se connecter à une organisation cliente en tant qu’invité
Module PowerShell pour Exchange Online :
Connect-ExchangeOnline -UserPrincipalName admin@contoso.onmicrosoft.com -DelegatedOrganization delegated.onmicrosoft.comAuthentification de base :
$secpasswd = ConvertTo-SecureString '<Password>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $secpasswd) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/?DelegatedOrg=delegated.onmicrosoft.com&email=SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}@delegated.onmicrosoft.com -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $SessionNew-PSSession avec jeton OAuth :
$oauthTokenAsPassword = ConvertTo-SecureString '<EncodedOAuthToken>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $oauthTokenAsPassword) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/?DelegatedOrg=delegated.onmicrosoft.com&BasicAuthToOAuthConversion=true&email=SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}@delegated.onmicrosoft.com -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $Session
Connectez-vous pour exécuter des scripts sans assistance
Module PowerShell pour Exchange Online :
Empreinte du certificat :
Remarque
Le paramètre CertificateThumbprint est pris en charge uniquement dans Microsoft Windows.
Connect-ExchangeOnline -CertificateThumbPrint "012THISISADEMOTHUMBPRINT" -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contoso.onmicrosoft.com"Objet du certificat :
Connect-ExchangeOnline -Certificate <%X509Certificate2Object%> -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contoso.onmicrosoft.com"Fichier de certificat :
Connect-ExchangeOnline -CertificateFilePath "C:\Users\navin\Desktop\automation-cert.pfx" -CertificatePassword (ConvertTo-SecureString -String "<Password>" -AsPlainText -Force) -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contoso.onmicrosoft.com"
Pour plus d’informations, consultez Authentification par application uniquement pour les scripts sans assistance dans Exchange Online PowerShell et PowerShell Sécurité & conformité.
Authentification de base :
$secpasswd = ConvertTo-SecureString '<Password>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $secpasswd) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/ -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $SessionNew-PSSession avec jeton OAuth :
$oauthTokenAsPassword = ConvertTo-SecureString '<EncodedOAuthToken>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $oauthTokenAsPassword) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/?BasicAuthToOAuthConversion=true&email=SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}@contoso.onmicrosoft.com -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $Session
Se connecter à l’aide d’une identité managée
Module PowerShell pour Exchange Online :
Identité managée affectée par le système :
Connect-ExchangeOnline -ManagedIdentity -Organization "contoso.onmicrosoft.com"Identité managée affectée par l’utilisateur :
Connect-ExchangeOnline -ManagedIdentity -Organization "contoso.onmicrosoft.com" -ManagedIdentityAccountId <UserAssignedManagedIdentityPrincipalIdValue>
Pour plus d’informations, consultez Utiliser des identités managées Azure pour se connecter à Exchange Online PowerShell.
Authentification de base : non disponible.
New-PSSession avec jeton OAuth : non disponible.