Connexion à Exchange Online PowerShell

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

É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 O365USGovGCCHigh
    Microsoft 365 DoD O365USGovDoD
    Office 365 Allemagne O365GermanyCloud
    Office 365 géré par 21Vianet O365China

    * La valeur O365Default requise é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

  1. 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.com
      
    • Cet exemple se connecte à Exchange Online PowerShell dans une organisation Microsoft GCC High :

      Connect-ExchangeOnline -UserPrincipalName laura@blueyonderairlines.us -ExchangeEnvironmentName O365USGovGCCHigh
      
    • Cet exemple se connecte à Exchange Online PowerShell dans une organisation Microsoft 365 DoD :

      Connect-ExchangeOnline -UserPrincipalName julia@adatum.mil -ExchangeEnvironmentName O365USGovDoD
      
    • Cet exemple se connecte à Exchange Online PowerShell dans une organisation Office 365 Allemagne :

      Connect-ExchangeOnline -UserPrincipalName lukas@fabrikam.de -ExchangeEnvironmentName O365GermanyCloud
      
  2. Dans la fenêtre de connexion qui s’ouvre, entrez votre mot de passe, puis sélectionnez Se connecter.

    Entrer votre mot de passe dans la fenêtre Connectez-vous à votre compte.

    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.

  3. 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.

    Entrer votre code de vérification dans la fenêtre Connectez-vous à votre compte.

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 -InlineCredential
    
  • Dans 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) :

    1. Exécutez la commande suivante sur l’ordinateur sur lequel vous souhaitez vous connecter :

      Connect-ExchangeOnline -Device
      

      La 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> .

    2. 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.

    3. Entrez vos informations d’identification dans les pages de résultats.

    4. 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.

    5. 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 :

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.com
    
  • Module 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 $o365cred
    
  • 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 $Session
    
  • New-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.com
    
  • Authentification 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.com
    
  • 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/?DelegatedOrg=delegated.onmicrosoft.com&email=SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}@delegated.onmicrosoft.com -Credential $o365cred -Authentication Basic -AllowRedirection
    
    Import-PSSession $Session
    
  • New-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.com
    
  • 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/?DelegatedOrg=delegated.onmicrosoft.com&email=SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}@delegated.onmicrosoft.com -Credential $o365cred -Authentication Basic -AllowRedirection
    
    Import-PSSession $Session
    
  • New-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.com
    
  • 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/?DelegatedOrg=delegated.onmicrosoft.com&email=SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}@delegated.onmicrosoft.com -Credential $o365cred -Authentication Basic -AllowRedirection
    
    Import-PSSession $Session
    
  • New-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 $Session
    
  • New-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.