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 pour se connecter à Exchange Online PowerShell à l’aide du module PowerShell Exchange Online avec ou sans authentification multifacteur (MFA).
Conseil
Les instructions de connexion de cet article s’appliquent également au module complémentaire de sécurité intégré pour les boîtes aux lettres locales.
Le module PowerShell Exchange Online utilise l’authentification moderne pour la connexion à Exchange Online PowerShell et à PowerShell security & Compliance. Pour plus d’informations sur le module PowerShell Exchange Online, consultez À propos du module PowerShell Exchange Online.
Pour vous connecter à Exchange Online PowerShell pour l’automatisation, consultez Authentification d’application uniquement pour les scripts sans assistance et Utiliser Azure identités managées pour se 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 Installer et gérer le module PowerShell Exchange Online.
Les connexions d’API REST dans le module Exchange Online PowerShell V3 nécessitent les modules PowerShellGet et PackageManagement. Pour plus d’informations, consultez PowerShellObtenir des connexions REST dans Windows.
Après vous être 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 ou n’avez pas accès. 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 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 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 du profil du compte que vous avez utilisé pour vous connecter contient des caractères PowerShell spéciaux (par exemple, $). La solution de contournement consiste à se connecter à l’aide d’un autre compte qui n’a 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> est 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 courantes 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 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 en ligne de commande pour Exchange Online applets de commande PowerShell n’est plus chargée par défaut. Utilisez le commutateur LoadCmdletHelp afin que l’aide pour Exchange Online applets de commande PowerShell 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 plus loin dans cet article.
Selon la nature de votre organization, vous pouvez peut-être omettre le paramètre UserPrincipalName dans la commande de connexion. 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 compte web (WAM) si vous recevez des erreurs de connexion liées à WAM.
Les exemples de connexion dans les sections suivantes utilisent l’authentification moderne et ne peuvent pas utiliser l’authentification de base.
Se connecter à Exchange Online PowerShell avec une invite de connexion interactive
Les exemples suivants fonctionnent dans Windows PowerShell 5.1 et PowerShell 7 pour les comptes avec ou sans authentification multifacteur :
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 (SSO) basée sur un navigateur est utilisée par défaut. Par conséquent, 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 remis 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 demande 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 authentification multifacteur, 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 l’authentification.
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 obtenues.
Dans l’invite de confirmation, sélectionnez Continuer. Le message suivant doit indiquer la réussite et vous pouvez fermer le navigateur ou l’onglet.
La commande de l’étape 1 continue de vous connecter à Exchange Online PowerShell.
Se connecter à 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 Sécurité & Conformité PowerShell.
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’administrateur délégué granulaires (GDAP)
Cet exemple se connecte aux organisations clientes dans les scénarios suivants :
Connectez-vous à un client organization à l’aide d’un compte CSP.
Connectez-vous à un organization client à l’aide d’un GDAP.
Connectez-vous à un client organization en tant qu’invité.
Connect-ExchangeOnline -UserPrincipalName navin@contoso.onmicrosoft.com -DelegatedOrganization adatum.onmicrosoft.com
Se connecter à Exchange Online PowerShell à l’aide d’une identité managée
Pour plus d’informations, consultez Utiliser Azure identités managées 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 : Se déconnecter 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 pouvez utiliser toutes les sessions disponibles et vous devez attendre l’expiration des sessions. Pour déconnecter la session, exécutez la commande suivante :
Disconnect-ExchangeOnline
Pour vous déconnecter en mode silencieux sans invite de confirmation, exécutez la commande suivante :
Disconnect-ExchangeOnline -Confirm:$false
Remarque
La commande disconnect échoue probablement si le chemin du profil du compte que vous avez utilisé pour vous connecter contient des caractères PowerShell spéciaux (par exemple, $). La solution de contournement consiste à se connecter à l’aide d’un autre compte qui n’a pas de caractères spéciaux dans le chemin d’accès du profil.
Comment savez-vous que 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 Exchange Online, par exemple Get-AcceptedDomain, et à voir 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 accordez une attention particulière au nom d’utilisateur et au mot de passe que vous utilisez.
Le compte auquel vous utilisez pour vous connecter doit être activé pour 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. Au lieu de cela, créez et utilisez un compte non féderé 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 avoir les deux modules installés. Par exemple, vous pouvez voir l’erreur suivante :
Le terme « Update-ModuleManifest » n’est pas reconnu comme le nom d’une applet de commande, d’une fonction, d’un fichier de script ou d’un programme opérable. 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 des modules PowerShellGet et PackageManagement, consultez PowerShellGet pour les connexions REST dans Windows.
Une fois que vous vous êtes connecté, vous pouvez recevoir une erreur qui ressemble à ceci :
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 Exchange Online est en conflit avec un autre module importé dans l’instance d’exécution. Essayez de vous connecter dans une nouvelle fenêtre 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 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
Exchange Online module PowerShell avec invite d’informations d’identification interactives :
Connect-ExchangeOnline -UserPrincipalName admin@contoso.onmicrosoft.comExchange Online module PowerShell sans invite d’informations d’identification interactives :
$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
Exchange Online module PowerShell avec invite d’informations d’identification interactives :
Connect-ExchangeOnline -UserPrincipalName admin@contoso.onmicrosoft.comAuthentification de base : non disponible.
New-PSSession avec jeton OAuth : non disponible.
Se connecter à un organization client avec un compte CSP
Exchange Online module PowerShell :
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 à un organization client à l’aide de GDAP
Exchange Online module PowerShell :
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 à un organization client en tant qu’invité
Exchange Online module PowerShell :
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 pour exécuter des scripts sans assistance
Exchange Online module PowerShell :
Empreinte numérique 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 certificate :
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 d’application uniquement pour les scripts sans assistance dans Exchange Online PowerShell et Sécurité & Conformité PowerShell.
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
Exchange Online module PowerShell :
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 Azure identités managées pour se connecter à Exchange Online PowerShell.
Authentification de base : non disponible.
New-PSSession avec jeton OAuth : non disponible.