Connexion à Exchange Online d’Office 365 avec PowerShell : guide étape par étape

Gérer Microsoft 365 avec toutes les applications à l’aide d’une interface graphique dans un navigateur Web peut être pratique, mais seulement dans une certaine mesure. Les deux interfaces les plus utilisées par les professionnels de l’informatique sont Exchange Admin Center et Office 365 Admin Center. Cependant, lorsque vous devez gérer des centaines de comptes Microsoft 365 au sein d’une organisation, l’interface de ligne de commande (CLI) peut s’avérer une solution plus efficace. Vous pouvez l’utiliser pour appliquer des commandes Exchange Online indisponibles dans le Centre d’administration. En tant qu’administrateur, vous pouvez gérer Microsoft Exchange Server via l’interface de ligne de commande dans PowerShell de Microsoft. Le problème est que les cmdlets habituellement utilisables dans un environnement Exchange Server sur site ne conviennent pas à Exchange Online, qui est basé sur le cloud. Vous devez installer les modules Exchange Online Powershell pour activer les applets de commande PowerShell dans Office 365. Dans cet article, nous expliquons les différentes façons de connecter Exchange Online à PowerShell. L’utilisation des cmdlets dans Exchange Online permet de rationaliser la gestion, ce qui représente un gain de temps et d’efforts.

Backup for Microsoft 365 Data

Backup for Microsoft 365 Data

Use the NAKIVO solution to back up Microsoft 365 data in Exchange Online, Teams, OneDrive and SharePoint Online for uninterrupted workflows and zero downtime.

Préparation de votre environnement

Conditions à remplir

Pour connecter Exchange Online à Powershell, assurez-vous que votre système répond aux conditions à remplir suivantes :

  • Windows 7 SP1 ou versions Windows de bureau plus récentes, et Windows Server 2008 R2 SP1 ou versions Windows serveur plus récentes. En plus de Windows Management Framework 3.0, 4.0 ou 5.1, .NET Framework 4.5 ou une version ultérieure doit être installé.
  • Connexion Internet : ouvrez le port TCP 80 pour établir une connexion entre votre ordinateur local et l’hôte de destination.
  • L’utilisateur actuel disposant d’Exchange Online PowerShell a un accès activé. Les comptes administrateurs disposent de cet accès par défaut.

    Vous pouvez activer l’accès à Exchange Online PowerShell pour un compte spécifique à l’aide de la cmdlet suivante :

    Set-User -Identity user@domain.com -RemotePowerShellEnabled $true

Installation du module PowerShell Exchange Online

L’installation du module Exchange Online PowerShell est nécessaire car il comprend des applets de commande et active ainsi la gestion d’Exchange pour un tenant. Dans ce guide, nous installons le module PowerShell Exchange Online V2. Cependant, vous pouvez vérifier si le module Exchange Online est déjà installé sur l’ordinateur client. Pour ce faire, exécutez la cmdlet suivante :Get-Module -ListAvailable -Nom ExchangeOnlineManagementSi vous ne trouvez pas le module, procédez à l’installation. Vous pouvez installer le module Exchange Online Powershell à l’aide d’une seule commande PowerShell. Pour démarrer le processus, exécutez Windows PowerShell en tant qu’administrateur, puis exécutez la cmdlet suivante :#Install Exchange Online ManagementModuleInstall-Module -Name ExchangeOnlineManagement -ForceSile système vous demande de confirmer l’installation à partir d’un référentiel non approuvé, appuyez sur Y pour continuer.Si le module Exchange Online PowerShell est absent de votre système, le message d’erreur suivant s’affiche :Connect-ExchangeOnline : Le terme « Connect-ExchangeOnline » n’est pas reconnu comme le nom d’une cmdlet, d’une fonction, d’un fichier script ou d’un programme exécutable.Vous pouvez mettre à jour le module à l’aide de cette applet de commande :Update-Module ExchangeOnlineManagement

Configuration de la connexion

Dans ce guide, nous abordons les deux principales méthodes utilisées pour connecter PowerShell à Exchange Online : la configuration manuelle et la configuration automatisée.

configuration manuelle

Débutons par la méthode manuelle afin de mieux comprendre le processus de configuration :

  1. Ouvrez Windows PowerShell, puis choisissez l’une des options suivantes pour continuer :
    • Cliquez sur Démarrer, tapez cmd, puis cliquez avec le bouton droit sur l’élément Invite de commandes. Dans le menu contextuel, sélectionnez Exécuter en tant qu’administrateur.
    • OU allez dans Démarrer > Windows PowerShell. Cliquez avec le bouton droit sur Windows PowerShell, puis sélectionnez Exécuter en tant qu’administrateur dans le menu contextuel. L’exécution de PowerShell en mode administrateur est activée, ce qui vous permet d’exécuter des applets de commande sans aucune restriction.
  2. Les scripts doivent être activés pour pouvoir utiliser PowerShell correctement. Pour exécuter des scripts, vous devez définir la politique sur RemoteSigned. Exécutez cette commande pour définir la politique d’exécution :

    Définir la politique d'exécution RemoteSigned

    Envisagez d’exécuter cette applet de commande dès que vous commencez à configurer PowerShell pour la gestion d’Exchange Online et de Microsoft 365. Sinon, vos tentatives ultérieures d’exécution de la commande Import-PSSession entraîneront l’erreur suivante :

    Import-PSSession : les fichiers ne peuvent pas être chargés car l’exécution de scripts a été désactivée sur ce système. Fournissez un certificat valide permettant de signer les fichiers.

  3. Si le système demande une confirmation, appuyez sur Y pour confirmer la modification de la politique. Vous pouvez également utiliser la politique sans restriction avec cette applet de commande :

    Définir la politique d'exécution sur « Sans restriction »

    Par défaut, le mode de politique d’exécution est Restreint.

  4. Vous devez créer un objet d’identification et fournir votre identifiant et votre mot de passe administrateur dans la fenêtre contextuelle pour activer l’accès à Exchange Online. L’utilisateur qui obtient l’accès doit disposer des autorisations d’administrateur global Microsoft 365.

    $Credential=Obtenir les identifiants de connexion

  5. Le système enregistre ensuite les identifiants de connexion fournis en tant que $Credential variable à utiliser dans la commande suivante.
  6. Utilisez la cmdlet New-PSSession pour créer une session PowerShell à distance. Exécutez ce qui suit :

    $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential identifiants de connexion $Credential -Authentication Basic -AllowRedirection

    Remarque : dans cette applet de commande, nous définissons l’URL cible du serveur Exchange Online cloud, qui doit accepter la demande. Après avoir exécuté la commande, les serveurs cloud Microsoft 365 vous donnent accès au serveur virtuel Exchange Online associé à votre compte Microsoft 365 actuel.

  7. Vous devez importer les applets de commande Exchange Online PowerShell dans la session actuelle. Voici la commande à utiliser :

    Import-PSSession $Session

    Pendant le processus d’importation, vous pouvez voir la barre de progression.

  8. Le message suivant s’affiche après que la commande ait été exécutée avec succès :

    Commande exécutée avec succès

    REMARQUE : avec l’authentification multifacteur (MFA) utilisée pour un compte Microsoft 365, les applets de commande standard mentionnées précédemment ne fonctionneront pas. Pour connecter PowerShell à Exchange Online avec l’authentification multifacteur (MFA) activée, exécutez la commande suivante :

    Connect-EXOPSSession -UserPrincipalName VOTRE_UPN

    Dans cette applet de commande, YOUR_UPN représente le nom principal d’utilisateur, qui est le nom du compte Microsoft 365 que vous utilisez. Vous devrez peut-être installer un autre module ici : Module PowerShell distant Exchange Online de Microsoft .

    N’oubliez pas que ce module peut être peu pratique pour exécuter des scripts longs, car la session se termine après une heure d’utilisation. Envisagez également d’utiliser des adresses IP approuvées (c’est-à-dire les adresses IP de votre organisation). Cela peut vous aider à contourner l’authentification multifacteur (MFA) lorsque vous vous connectez à Exchange Online PowerShell from le réseau de votre organisation.

  9. Après la connexion à Microsoft 365 et Exchange Online établie, vous pouvez commencer la gestion de votre environnement cloud Office 365. Vous pouvez exécuter une applet de commande pour vérifier si la connexion Arbeit. Par exemple, essayez d’afficher la liste des boîtes de messagerie disponibles à l’aide de cette commande :

    Get-BoîteDeMessagerie

    La cmdlet suivante permet d’obtenir la liste des commandes PowerShell Exchange Online disponibles :

    Get-Command -Module tmp*

  10. Après votre travail avec Exchange, fermez la session. Cette pratique est recommandée à la fois pour la sécurité et l’optimisation des performances. Voici la cmdlet :

    Enlever la session PSSession $Session

    REMARQUE : aucun message ne s’affichera après l’exécution de cette commande. Pour vérifier si la session a bien été enlevée, vous pouvez utiliser la même commande Get-MailBox. Si la session a été déconnectée, vous verrez s’afficher le message d’erreur indiquant qu’il est impossible d’exécuter les applets de commande Exchange Online.

Le nombre de sessions que vous pouvez ouvrir par fois est limité. Vous pouvez exécuter trois sessions simultanément et, si vous ne déconnectez aucune d’entre elles, vous devrez attendre l’expiration de la session avant de vous connecter à Exchange Online PowerShell avec une nouvelle session from une autre console PowerShell.

Configuration automatisée

En plus de l’approche manuelle, vous pouvez connecter PowerShell et Exchange Online à l’aide des fonctionnalités d’automatisation de PowerShell. L’automatisation réduit le nombre de commandes à utiliser, accélérant ainsi le processus de configuration. Procédez comme suit :

  1. Téléchargez le script. Dans notre exemple, le fichier script s’appelle ConnectExchangeOnlinePowerShell.ps1.
  2. Recherchez le fichier script dans le répertoire après le téléchargement. Le script se trouve dans C:temp_win.
  3. Avant d’exécuter le script, définissez la politique d’exécution des scripts sur RemoteSigned à l’aide de cette applet de commande :

    Définir la politique d'exécution RemoteSigned

    Cela vous permet d’éviter l’erreur suivante :

    Le fichier C:temp_winConnectExchangeOnlinePowerShell.ps1 n’est pas signé numériquement. Vous ne pouvez pas exécuter ce script sur le système actuel.

    La politique d’exécution Bypass appliquée vous active également pour éviter ce problème. Voici la cmdlet requise :

    Définir-ExécutionPolitique -Portée Processus -ExécutionPolitique Contournement

  4. Confirmez les modifications apportées à la politique d’exécution par tapant Y.
  5. Vous pouvez maintenant continuer avec le script. Si l’authentification multifacteur n’est pas activée pour votre compte Microsoft 365, le script ne nécessitera pas d’arguments supplémentaires :

    ConnectExchangeOnlinePowerShell.ps1

    Si l’authentification multifacteur (MFA) est activée dans votre environnement Microsoft 365, utilisez la commande suivante :

    ConnectExchangeOnlinePowerShell.ps1 -MFA

  6. Après la connexion entre Exchange Online et PowerShell établie, vous pouvez commencer à utiliser les applets de commande pour gérer les comptes d’utilisateurs, les boîtes de messagerie, entre autres éléments, et les flux de travail. Par exemple, cette applet de commande vous permet d’obtenir la liste des boîtes de messagerie utilisateur disponibles :

    Get-BoîteDeMessagerie

    Vous pouvez également utiliser le script pour planifier et automatiser davantage les flux de travail. Par exemple, connectez-vous à Exchange Online sans fournir d’identifiants de connexion. Le script est activé pour vous permettre d’ajouter un identifiant et un mot de passe comme options d’exécution :

    ./ConnectExchangeOnlinePowerShell.ps1 -Nom d'utilisateur admin@your_domain.com -Password votre_mot_de_passe

    Notez que fournir vos mots de passe en texte clair dans la ligne de commande du script peut constituer un risque pour la sécurité en cas de violation des données.

  7. La limitation à trois sessions consécutives reste en vigueur. Vous devriez donc mettre fin à votre session après avoir terminé votre travail avec Exchange Online PowerShell. La cmdlet permettant de mettre fin à la session est la suivante :

    ./ConnectExchangeOnlinePowerShell.ps1 -Disconnect

Comment gérer Exchange Online via PowerShell sur MacOS

Il existe plusieurs façons d’installer PowerShell sur MacOS. La méthode la plus pratique et la plus simple consiste à télécharger le client directement from le site de Microsoft. PowerShell prend en charge les processeurs Apple Silicon dans la version 7.2 ou ultérieure. N’oubliez pas que vous devez disposer d’un Mac fonctionnant au minimum sous macOS 11 Big Sur. Après avoir installé le package PowerShell sur tel appliance, utilisez l’approche de configuration manuelle ou automatisée décrite ci-dessus pour connecter votre PowerShell à Exchange Online.

Utilisation de PowerShell avec Exchange Online

Grâce aux applets de commande PowerShell, vous pouvez optimiser le temps et les efforts consacrés à la gestion d’Exchange Online. Voici quelques-unes des applets de commande de base :

  • New-Mailbox – pour créer une nouvelle boîte de messagerie utilisateur
  • Set-Mailbox – pour modifier les paramètres d’une boîte de messagerie existante
  • Get-Mailbox pour afficher des informations sur les boîtes de messagerie disponibles dans l’environnement
  • Enlever-boîte de messagerie pour supprimer une boîte de messagerie from Exchange Online

Pour afficher la liste des applets de commande PowerShell disponibles, utilisez cette commande :Get-command -Module ExchangeOnlineManagement Enfin, consultez cet exemple de script. Le script vous permet d’obtenir toutes les boîtes de messagerie from Exchange Online :

#Importer le module PowerShell pour Exchange Online Import-Module ExchangeOnlineManagement

#Se connecter à Exchange Online Connect-ExchangeOnline -Identifiants de connexion (Get-Credential) -ShowBanner :$False

#Obtenir toutes les boîtes de messagerie Get-EXOMailbox | Format-table UserPrincipalName,DisplayName

#Déconnecter Exchange Online Disconnect-ExchangeOnline -Confirm :$False

Conclusion

La connexion d’Exchange Online à PowerShell vous active la gestion rapide et facile des boîtes de messagerie Exchange. De plus, vous pouvez utiliser des scripts pour automatiser les actions, les modifications et les ajustements pour plusieurs comptes, plusieurs fois, ce qui augmente l’efficacité opérationnelle. Étant donné que Microsoft ne propose pas d’outils de sauvegarde natifs pour Exchange Online, Microsoft Teams, OneDrive et SharePoint Online, veillez à utiliser une solution de sauvegarde dédiée pour éviter toute perte de données dans le cloud. NAKIVO Backup & Replication est une solution universelle de protection des données qui vous permet d’envoyer des sauvegardes des données Microsoft 365 vers différentes cibles de stockage, y compris les clouds publics.

Les gens qui ont consulté cet article ont également lu