La plupart du temps, Microsoft Office 365 et toutes les applications incluses sont gérées via un navigateur web dans une interface utilisateur graphique. Fondamentalement, vous utilisez les interfaces web du Centre d’administration Office 365 et du Centre d’administration Exchange. Cependant, vous pouvez avoir besoin d’utiliser l’interface en ligne de commande (CLI) pour effectuer des actions en masse qui s’appliquent à des centaines de comptes utilisateur. De plus, vous pouvez vouloir utiliser les cmdlets Exchange Online, qui ne sont pas disponibles dans le Centre d’administration.
De nombreux administrateurs utilisent PowerShell (fourni par Microsoft) pour gérer Microsoft Exchange Server dans l’interface en ligne de commande. Cependant, ces commandes standard pour les environnements Exchange Server sur site ne fonctionnent pas pour Exchange Online fonctionnant dans le cloud Microsoft 365. Pour utiliser PowerShell avec Office 365, vous devez installer des modules PowerShell spéciaux pour vous connecter à Office 365. Lisez cet article pour découvrir les différentes méthodes de connexion à Exchange Online PowerShell.
Exigences
Il y a quelques exigences à respecter pour se connecter à Exchange Online PowerShell.
- Vous devez utiliser PowerShell sur Windows 7 SP1, ou des versions plus récentes de Windows de bureau, et Windows Server 2008 R2 SP1, ou des versions plus récentes de Windows Server. Notez que vous devez installer .NET Framework 4.5 ou une version ultérieure en plus d’installer une version mise à jour de Windows Management Framework 3.0, 4.0, ou 5.1.
- Une connexion internet est requise. Le port TCP 80 doit être ouvert pour se connecter de votre machine locale à l’hôte de destination.
- L’accès à Exchange Online PowerShell doit être activé pour l’utilisateur actuel (par défaut, cet accès est activé pour les administrateurs).
Vous pouvez activer manuellement l’accès pour se connecter à Exchange Online PowerShell pour l’utilisateur particulier avec la commande :
Set-User -Identity [email protected] -RemotePowerShellEnabled $true
Principe de fonctionnement
Vous pouvez vous connecter à Exchange Online PowerShell, mais ce processus est plus compliqué que l’utilisation de PowerShell pour gérer un serveur Exchange local. Cependant, vous pouvez utiliser la console PowerShell intégrée pour gérer des infrastructures cloud à distance. Dans ce cas, la console est appelée PowerShell à distance ou Accès PowerShell à distance. Le processus d’ouverture d’une session PowerShell à distance pour Office 365 et Exchange Online est légèrement différent. Vous devez télécharger et installer des composants spéciaux avant de pouvoir ouvrir une session Office 365 à distance. Heureusement, les cmdlets nécessaires pour ouvrir une session PowerShell à distance pour Exchange Online sont téléchargés automatiquement lorsque vous créez une session PowerShell à distance. Différents ensembles de cmdlets PowerShell sont utilisés pour gérer Microsoft Office 365 et Microsoft Exchange Online.
La principale raison de se connecter à Microsoft Exchange Online en PowerShell implique ce qui suit :
- Création d’une session à distance vers Exchange Online en PowerShell ouverte sur votre machine locale.
- Fourniture des paramètres de connexion, passage de l’authentification.
- Importation des cmdlets PowerShell nécessaires pour gérer Exchange Online à distance.
Dans le billet de blog d’aujourd’hui, nous exécuterons des cmdlets PowerShell sur Windows 10.
Configuration manuelle
Examinons d’abord la méthode manuelle pour mieux comprendre le principe de configuration.
- Ouvrez Windows PowerShell. Vous pouvez le faire avec au moins deux méthodes.
- Cliquez sur Démarrer, tapez cmd, faites un clic droit sur l’élément Invite de commandes et sélectionnez Exécuter en tant qu’administrateur dans le menu contextuel.
- Allez à Démarrer > Windows PowerShell. Faites un clic droit sur Windows PowerShell et sélectionnez Exécuter en tant qu’administrateur pour vous assurer que vous pouvez exécuter des commandes PowerShell sans restrictions.
- Activez l’exécution des scripts (il est préférable d’exécuter cette commande au début de la préparation de PowerShell pour gérer Exchange Online et Office 365), sinon vous obtiendrez une erreur à l’avenir lors de l’exécution de la commande Import-PSSession:
Import-PSSession : Impossible de charger les fichiers car l’exécution des scripts a été désactivée sur ce système. Fournissez un certificat valide avec lequel signer les fichiers.
- Pour exécuter des scripts, la stratégie d’exécution doit être définie sur RemoteSigned.
Set-ExecutionPolicy RemoteSigned
- Appuyez sur Y pour confirmer le changement de stratégie si vous y êtes invité. Vous pouvez également utiliser la commande Set-ExecutionPolicy Unrestricted pour utiliser la stratégie Unrestricted.
Par défaut, le mode de stratégie d’exécution est Restricted.
- Exécutez la commande dans PowerShell pour obtenir les informations d’identification et saisissez votre nom d’utilisateur/mot de passe administrateur dans la fenêtre contextuelle pour accéder à Exchange Online. L’utilisateur doit avoir des autorisations administratives globales dans Office 365.
$Credential=Get-Credential
Les informations d’identification saisies seront enregistrées dans la variable et utilisées dans la prochaine commande comme $Credential. - Vous devez créer une session PowerShell à distance avec la commande New-PSSession et exécuter la commande suivante :
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $Credential -Authentication Basic -AllowRedirection
Remarquez que dans cette commande, l’URL cible du serveur Exchange Online fonctionnant dans le cloud qui doit accepter la demande est définie. Après l’exécution de la commande, les serveurs cloud de Microsoft Office 365 vous fourniront l’accès au serveur virtuel Exchange Online approprié associé à votre compte.
- Les cmdlets Exchange Online PowerShell doivent être importés dans la session en cours avec la commande :
Import-PSSession $Session
- Vous pouvez voir la barre de progression lors de la réception des commandes.
- Après avoir exécuté avec succès la commande, vous verrez le message suivant.
Note : Si vous utilisez l’authentification multifacteur pour votre compte, les cmdlets standard expliqués ci-dessus ne fonctionneront pas. Si vous souhaitez vous connecter à Exchange Online en PowerShell en utilisant l’authentification multifacteur, exécutez la commande suivante :
Connect-EXOPSSession -UserPrincipalName VOTRE_UPN
Où VOTRE_UPN (nom principal d’utilisateur) est le nom du compte Office 365 que vous utilisez. Vous devrez peut-être installer le Module PowerShell distant pour Exchange Online de Microsoft. Soyez conscient que lors de l’utilisation de ce module, la session se termine après une heure, ce qui peut être gênant pour l’exécution de scripts longs. Considérez l’utilisation d’adresses IP de confiance (c’est-à-dire les adresses IP de votre organisation) pour contourner l’authentification multifacteur lors de la connexion depuis le réseau de votre entreprise à Exchange Online PowerShell. L’authentification multifacteur (MFA) est la méthode avancée d’authentification qui ajoute une deuxième couche de sécurité. Après avoir saisi un mot de passe, le code de confirmation est envoyé au téléphone portable de l’utilisateur et l’utilisateur doit saisir le code de confirmation pour vérifier le compte et accéder aux services cloud Office 365.
- Une fois que vous êtes connecté à Office 365 et Exchange Online, vous pouvez gérer votre environnement cloud Office 365. Vérifions que nous sommes correctement connectés à Exchange Online et listons les boîtes aux lettres des utilisateurs, par exemple.
Get-Mailbox
Vous pouvez lister toutes les cmdlets disponibles pour Exchange Online PowerShell avec la commande suivante :
Get-Command -Module tmp*
Les noms des cmdlets PowerShell d’Exchange Online ne sont pas convertis.
- Quand vous terminez votre travail avec Exchange 365, déconnectez la session. C’est la pratique recommandée.
Remove-PSSession $Session
Malheureusement, aucun message n’est affiché après l’exécution de cette commande. Vous pouvez vérifier si la session est déconnectée en exécutant la commande Get-MailBox. Si la session est déconnectée, vous obtiendrez l’erreur expliquant que vous ne pouvez pas exécuter les cmdlets Exchange Online après la déconnexion.
Pourquoi devriez-vous déconnecter la session ? Eh bien, simplement parce que le nombre de sessions actives simultanées qui peuvent être ouvertes en même temps est limité à trois. Si vous ouvrez trois sessions Exchange Online PowerShell à la fois et que vous ne déconnectez aucune d’entre elles lorsqu’elles ne sont pas utilisées, vous devrez attendre qu’une de ces sessions expire avant de pouvoir vous connecter à Exchange Online PowerShell à nouveau à partir d’un nouveau console PowerShell.
Configuration Automatisée
Maintenant que vous connaissez le principe de la connexion à Exchange Online PowerShell manuellement, vous pouvez utiliser la méthode automatisée. L’avantage de cette méthode est le nombre réduit de commandes que vous devez saisir.
- Télécharger le script à partir du site Web de Microsoft. Le nom du fichier de script est ConnectExchangeOnlinePowerShell.ps1 dans ce cas.
- Allez dans le répertoire où se trouve le script ; dans notre exemple, le script est enregistré dans C:\temp_win\.
- Avant de lancer le script, modifiez la stratégie d’exécution du script (de manière similaire à ce qui est montré dans la première méthode), sinon vous obtiendrez l’erreur:
Le fichier C:\temp_win\ConnectExchangeOnlinePowerShell.ps1 n’est pas signé numériquement. Vous ne pouvez pas exécuter ce script sur le système actuel.
Vous pouvez appliquer la stratégie d’exécution Ignorer pour éviter ce problème:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
- Tapez Y pour confirmer le changement de stratégie d’exécution.
- Après cela, vous pouvez exécuter le script. Si vous n’utilisez pas MFA, exécutez le script sans arguments supplémentaires:
.\ConnectExchangeOnlinePowerShell.ps1
Si MFA (Multi-Factor Authentication) est utilisé dans votre environnement Office 365, essayez la commande:
.\ConnectExchangeOnlinePowerShell.ps1 -MFA
- Maintenant que vous êtes connecté avec succès à Exchange Online, vous pouvez gérer vos comptes utilisateur, leurs boîtes aux lettres, etc. Par exemple, vous pouvez répertorier les boîtes aux lettres de vos utilisateurs :
Ce script peut être utilisé pour planifier et automatiser des tâches. Par exemple, vous pouvez vous connecter à Exchange Online sans entrer d’informations d’identification dans la fenêtre interactive comme indiqué ci-dessus. Vous pouvez saisir votre nom d’utilisateur et votre mot de passe en ligne de commande en tant qu’options de commande lors de l’exécution du script :
./ConnectExchangeOnlinePowerShell.ps1 -UserName admin@your_domain.com -Password your_password
Gardez à l’esprit que saisir des mots de passe en texte brut dans la ligne de commande peut ne pas être sécurisé.
- Lorsque vous avez fini de travailler avec Exchange Online dans PowerShell, n’oubliez pas de terminer la session :
./ConnectExchangeOnlinePowerShell.ps1 -Déconnecter
Méthode Alternative
Considérons une autre méthode qui peut être utilisée pour se connecter à PowerShell Exchange Online. Cette méthode peut être considérée comme une modification de la première méthode.
- Créez un nouveau profil pour PowerShell avec la fonction :
New-item -type file -force $profile
- Modifiez le fichier de configuration du profil dans l’éditeur de texte pour ajouter la fonction intitulée Connect-EXOnline:
notepad $profile
- Ajoutez le contenu suivant au fichier de configuration de profil PowerShell et changez [email protected] par votre nom de compte, puis enregistrez le fichier texte.
Function Connect-EXOnline
{
$credentials = Get-Credential -Credential [email protected]
Write-Output “Récupération des cmdlets Exchange Online”
$Session = New-PSSession -ConnectionUri https://outlook.office365.com/powershell-liveid/ `
-ConfigurationName Microsoft.Exchange -Credential $credentials `
-Authentication Basic -AllowRedirection
Import-PSSession $Session
} - Fermez la fenêtre PowerShell actuelle et ouvrez une nouvelle fenêtre PowerShell en tant qu’administrateur. Exécutez la commande pour vous connecter à PowerShell Exchange Online :
Connect-ExOnline
Entrez votre mot de passe dans la fenêtre contextuelle. - Quand vous avez fini de travailler avec PowerShell Exchange Online, terminez la session avec la commande :
Get-PSSession | Remove-PSSession
Conclusion
Exchange Online PowerShell est une bonne alternative à l’interface web du Centre d’administration Exchange. Avec PowerShell pour Office 365 et Exchange Online PowerShell, vous pouvez effectuer des opérations groupées et des actions avec plusieurs objets en utilisant une seule commande ou un script. Le billet de blog d’aujourd’hui a couvert comment se connecter à Exchange Online PowerShell en utilisant trois méthodes, dont l’une est automatisée. Le principe de fonctionnement de chaque méthode est similaire et se compose de trois étapes principales : créer une session PowerShell à distance, s’authentifier et importer les cmdlets Exchange Online PowerShell.
Une recommandation importante est de déconnecter la session PowerShell à distance lorsque vous avez fini de travailler avec Exchange Online PowerShell pour éviter une situation où toutes les sessions sont occupées et où l’ouverture d’une nouvelle session PowerShell à distance pour Exchange Online n’est pas possible. Avoir Exchange Server dans le cloud est une solution fiable, mais même dans ce cas, il est recommandé de sauvegarder votre serveur Exchange pour protéger vos données contre une suppression accidentelle et d’autres catastrophes.
Source:
https://www.nakivo.com/blog/how-to-connect-office-365-exchange-online-powershell/