Magic Quadrant™ pour la gestion des accès privilégiés 2025 : Netwrix reconnue pour la quatrième année consécutive. Téléchargez le rapport.

Plateforme
Centre de ressourcesBlog
Utilisez le Cmdlet Get-Mailbox pour exporter la liste des boîtes aux lettres dans Exchange

Utilisez le Cmdlet Get-Mailbox pour exporter la liste des boîtes aux lettres dans Exchange

Sep 26, 2024

Qu'est-ce qu'une applet de commande Get-Mailbox ?

La cmdlet Get-Mailbox est une commande clé dans l'Exchange Management Shell (pour Exchange Server) et dans le module PowerShell Exchange Online (pour Office 365). Elle est utilisée pour récupérer des informations sur les boîtes aux lettres dans un environnement Exchange. Que vous traitiez des boîtes aux lettres d'utilisateurs, des boîtes aux lettres liées, des boîtes aux lettres partagées ou des boîtes aux lettres de ressources, avec Get-Mailbox les administrateurs peuvent lister toutes les boîtes aux lettres dans un périmètre spécifié, tel qu'une base de données, un serveur ou une unité organisationnelle, ou récupérer des propriétés détaillées pour une seule boîte aux lettres. Vous pouvez également filtrer les résultats pour ne retourner que les boîtes aux lettres qui répondent à des critères spécifiques.

La cmdlet PowerShell Get-Mailbox prend en charge de nombreux paramètres qui peuvent être utilisés pour personnaliser les informations retournées. Des paramètres tels que -Properties permettent d'obtenir un détail complet des attributs de la boîte aux lettres. La sortie de Get-Mailbox peut être facilement exportée aux formats CSV ou JSON, facilitant l'intégration avec d'autres outils et plateformes. La cmdlet Get-Mailbox offre également la flexibilité du scriptage PowerShell dans les environnements Exchange.

Disponibilité à la fois sur Exchange local et service basé sur le cloud

La cmdlet PowerShell Get-Mailbox est disponible à la fois dans les environnements Exchange Server sur site et Exchange Online (Office 365), bien qu'il existe des différences dans la mise en œuvre et les fonctionnalités disponibles. Introduite dans le cadre de Exchange Management Shell dans Exchange Server 2007.

Serveur Exchange On-Premises

Get-Mailbox est disponible dans Exchange Server 2010, 2013, 2016 et 2019. Get-Mailbox est utilisé via l'Exchange Management Shell (EMS) dans Exchange sur site ou via PowerShell en chargeant le module Exchange. Il comprend des paramètres pour filtrer par base de données, unité organisationnelle, type de destinataire, et plus encore. Il produit diverses propriétés de boîte aux lettres telles que le nom, l'adresse e-mail et la base de données de la boîte aux lettres.

Exchange Online (Office 365)

Get-Mailbox via PowerShell peut être utilisé pour Exchange Online, qui est accessible via des connexions PowerShell à distance. Ce module offre des capacités de gestion basées sur le cloud et est accessible à distance. Comme pour Exchange local, mais peut inclure des paramètres supplémentaires ou des fonctionnalités optimisées pour l'environnement cloud. La sortie inclut des propriétés pertinentes pour la gestion du cloud.

Recommandation pour l'utilisation de la cmdlet Get-EXOMailbox dans Exchange Online

La cmdlet Get-EXOMailbox fait partie du module PowerShell d'Exchange Online et est utilisée pour récupérer des informations sur les boîtes aux lettres dans Exchange Online (partie d'Office 365). Cette cmdlet est une alternative à Get-Mailbox avec des améliorations pour Exchange Online. Get-EXOMailbox est optimisée pour les environnements cloud et peut offrir de meilleures performances et des fonctionnalités supplémentaires conçues pour Office 365. Cette cmdlet propose des options de filtrage et d'interrogation plus avancées qui sont spécifiquement utiles dans une configuration basée sur le cloud et est mieux intégrée avec d'autres services et fonctionnalités d'Office 365.

Recommandations pour l'utilisation de Get-EXOMailbox

  • Lorsque vous travaillez dans Exchange Online, utilisez Get-EXOMailbox plutôt que Get-Mailbox pour des performances optimisées et des fonctionnalités spécifiques au cloud.
  • Utilisez le paramètre -Filter pour récupérer efficacement des sous-ensembles de boîtes aux lettres basés sur des critères spécifiques, réduisant la charge et améliorant la performance des requêtes.
  • Pour les grandes organisations, utilisez -ResultSize Unlimited pour vous assurer de capturer toutes les boîtes aux lettres pertinentes. Soyez conscient des implications sur la performance avec des ensembles de données très volumineux.
  • Utilisez Get-EXOMailbox dans les scripts PowerShell pour des tâches automatisées de reporting, de gestion et de maintenance dans Exchange Online.

Fonction du Cmdlet Get-Mailbox

La cmdlet Get-Mailbox dans Exchange Server et Exchange Online est utilisée pour récupérer des informations détaillées sur les boîtes aux lettres. La cmdlet ne modifie aucune donnée, sa fonction principale est de rassembler et d'afficher les propriétés et configurations des boîtes aux lettres, cela inclut des données sur les tailles des boîtes aux lettres, les quotas, le nombre d'éléments, le dernier accès, et bien plus encore. La cmdlet offre de la flexibilité pour cibler des boîtes aux lettres spécifiques, des ensembles de boîtes aux lettres, ou toutes les boîtes aux lettres, en fonction des paramètres utilisés.

Objectif

La cmdlet Get-Mailbox récupère des informations sur les boîtes aux lettres, y compris les boîtes aux lettres d'utilisateurs, partagées, de ressources (comme les salles, partagées et les boîtes aux lettres d'équipement), et d'autres. Elle fournit des détails tels que les propriétés des boîtes aux lettres, leur emplacement et leur configuration.

Utilisations principales

Générez des listes de boîtes aux lettres à des fins de rapport, telles que l'audit des types de boîtes aux lettres, des emplacements et des attributs. Récupérez les détails nécessaires aux tâches de gestion des boîtes aux lettres, comme la configuration des paramètres des boîtes aux lettres ou la réalisation d'opérations en masse. Aidez au diagnostic des problèmes en fournissant des informations spécifiques aux boîtes aux lettres liées aux configurations, quotas, et plus encore.

Opération

Lorsque vous exécutez la cmdlet Get-Mailbox, elle interroge les services d'annuaire Exchange, Active Directory dans les environnements locaux, ou l'annuaire Exchange Online dans Office 365, pour récupérer les informations de la boîte aux lettres. La cmdlet récupère les données de la base de données de la boîte aux lettres ou des annuaires et les présente en fonction des paramètres spécifiés. Cela inclut des propriétés comme les adresses e-mail, les tailles des boîtes aux lettres, et plus encore.

Output

Par défaut, Get-Mailbox affiche un ensemble de propriétés courantes telles que DisplayName, PrimarySmtpAddress, Database et Recipient Type. La sortie peut être personnalisée en utilisant Select-Object pour afficher des propriétés supplémentaires ou spécifiques.

Paramètres

Des paramètres tels que -Identity, -Database, -OrganizationalUnit et -Filter vous permettent de restreindre la recherche à des boîtes aux lettres spécifiques ou à des ensembles de boîtes aux lettres en fonction de critères tels que l'emplacement de la base de données, l'unité organisationnelle ou des attributs personnalisés. -ResultSize vous permet de contrôler le nombre de résultats retournés, ce qui est utile pour gérer la performance et se concentrer sur des sous-ensembles de données pertinents. Get-Mailbox prend en charge de nombreux autres paramètres pour plus de tâches.

Autorisations requises pour exécuter le Cmdlet Get-Mailbox

Des permissions spécifiques sont nécessaires pour exécuter la cmdlet Get-Mailbox dans Exchange Server et Exchange Online. Ces permissions déterminent qui peut exécuter la cmdlet pour récupérer les informations des boîtes aux lettres. Ces permissions sont généralement attribuées via le contrôle d'accès basé sur les rôles (RBAC) dans Exchange. Ces rôles incluent typiquement « Gestion des destinataires », « Gestion de l'organisation » ou « Gestion de l'organisation en lecture seule ». Ci-dessous, vous trouverez un aperçu détaillé des permissions requises pour l'exécution de la cmdlet Get-Mailbox.

Exchange Server (On-Premises)

Dans un environnement Exchange Server sur site, les autorisations sont généralement accordées via le contrôle d'accès basé sur les rôles (role-based access control). Les rôles RBAC peuvent être attribués à différents niveaux, de l'ensemble de l'organisation à des bases de données de boîtes aux lettres spécifiques.

Rôle de gestion des destinataires

Pour la gestion générale des boîtes aux lettres, y compris l'exécution de Get-Mailbox, les utilisateurs sont généralement ajoutés au groupe de rôles « Recipient Management ». Ce groupe de rôles comprend des rôles qui permettent de créer, gérer et supprimer des boîtes aux lettres, parmi d'autres tâches liées aux destinataires.

Rôle de gestion d'organisation

Pour les privilèges administratifs de haut niveau, y compris la capacité d'exécuter toutes les cmdlets liées aux boîtes aux lettres, le groupe de rôles « Organization Management » peut être utilisé, ce qui accorde des permissions dans toute l'organisation Exchange.

Rôle de gestion de l'organisation en mode lecture seule

Ce rôle offre un accès en lecture seule aux paramètres organisationnels, y compris la capacité d'exécuter Get-Mailbox mais sans la possibilité de modifier les paramètres.

Rôles RBAC personnalisés

Vous pouvez également créer des rôles personnalisés qui incluent spécifiquement la cmdlet Get-Mailbox, en personnalisant les autorisations pour répondre à des besoins spécifiques sans accorder un accès plus large que nécessaire.

Exchange Online (Office 365)

Dans Exchange Online pour Get-Mailbox, les permissions sont également gérées via RBAC, faisant partie de la structure globale des permissions d'Office 365, tous les rôles mentionnés ci-dessus pour le serveur Exchange sur site sont également disponibles, mais il existe d'autres rôles de haut niveau mentionnés ci-dessous, qui ont également les permissions pour exécuter la cmdlet Get-Mailbox.

Administrateur Global

Les utilisateurs ayant le rôle d'Administrateur Global disposent des autorisations pour exécuter Get-Mailbox ainsi que d'autres cmdlets administratives sur l'ensemble de l'organisation Exchange Online.

Rôle d'administrateur Exchange

Spécifique à Exchange Online, le rôle d'Administrateur Exchange offre les permissions nécessaires pour gérer les paramètres d'Exchange, la gestion des objets, y compris l'exécution de Get-Mailbox.

Rôles d'administrateur personnalisés

Office 365 permet la création de rôles d'administrateur personnalisés, comme Exchange on-premises. Un rôle personnalisé peut inclure spécifiquement le cmdlet Get-Mailbox, ainsi que tout autre cmdlet nécessaire, offrant un contrôle précis sur les permissions.

Syntaxe pour le Cmdlet Get-Mailbox

Syntaxe de base

L'utilisation la plus simple de la cmdlet Get-Mailbox est de récupérer toutes les boîtes aux lettres en utilisant PowerShell. La cmdlet renvoie une liste récapitulative de toutes les boîtes aux lettres lorsqu'elle est utilisée sans aucun paramètre, incluant des attributs principaux tels que DisplayName, Alias, ServerName, ProhibitSendQuota, et d'autres en fonction de l'environnement.

      Get-Mailbox
      
Image

Syntaxe générale

La structure générale de Get-Mailbox avec plusieurs paramètres est la suivante.

      Get-Mailbox [-Identity <MailboxIdParameter>] [-Database <DatabaseIdParameter>] [-OrganizationalUnit <OrganizationalUnitIdParameter>] [-RecipientTypeDetails <RecipientTypeDetails>] [-Filter <FilterExpression>] [-ResultSize <Unlimited | Integer>] [-DomainController <Fqdn>] [-ReadFromDomainController] [-Anr <String>] [-IncludeSoftDeletedMailboxes] [-MessageTrackingLogPath <String>] [-ResultSize <Unlimited | Integer>]
      

Ci-dessous se trouve la syntaxe générale avec un paramètre

      Get-Mailbox [-Parameter <value>]
      

Paramètres couramment utilisés de Get-Mailbox

Les paramètres Get-Mailbox suivants sont couramment utilisés :

Obtenir les paramètres de Get-Mialbox

Syntaxe

-Paramètre d'Identity

Get-Mailbox -Identity “BarbaraCole”

-Paramètre de filtre

Get-Mailbox -Filter {Name -like “Bar*”}

Get-Mailbox -Filter {DisplayName -like “Bar*”}

Get-Mailbox -Filter {CustomAttribute1 -like ‘TeamA’}

-Paramètre de base de données

Get-Mailbox -Database “ Mailbox Database 1767124038″

-OrganizationalUnit Paramètre

Get-Mailbox -OrganizationalUnit “OU=Versacorp,DC=MILKYWAY,DC=LOCAL”

-Paramètre d'arbitrage

Get-Mailbox -Arbitration

-Paramètre de journal d'audit

Get-Mailbox -AuditLog

-RecipientTypeDetails Paramètre

Get-Mailbox -RecipientTypeDetails SharedMailbox

-ResultSize Parameter

Get-Mailbox -ResultSize 10

-Paramètre SoftDeletedMailbox

Get-Mailbox -SoftDeletedMailbox

-Anr

Get-Mailbox -Anr “Adita”

-SortBy

Get-Mailbox -SortBy Name

Examinons chacun d'eux

-Paramètre d'Identity

Le paramètre -Identity spécifie la boîte aux lettres à récupérer. Il peut accepter plusieurs formes d'identifiants tels que le GUID de la boîte aux lettres, le Nom Distinctif (DN), Domaine\Nom d'utilisateur, Nom Principal de l'Utilisateur (UPN), DN Legacy Exchange, adresse SMTP ou Alias. Ce paramètre peut être utilisé pour accéder rapidement aux informations concernant une boîte aux lettres spécifique.

      Get-Mailbox -Identity "BarbaraCole"
      
Image

-Paramètre de filtre

Le paramètre -Filter permet des requêtes plus complexes. Il est utilisé pour définir des conditions qui ciblent précisément l'ensemble des boîtes aux lettres qui vous intéressent, en fonction d'attributs tels que le département, les attributs personnalisés ou la taille de la boîte aux lettres.

      Get-Mailbox -Filter {Name -like "Bar*"}

Get-Mailbox -Filter {DisplayName -like "Bar*"}

Get-Mailbox -Filter {CustomAttribute1 -like 'TeamA'}
      
Image

-Paramètre de base de données

Le paramètre -Database filtre les boîtes aux lettres en fonction de la base de données dans laquelle elles sont stockées. Il est utile pour les opérations ciblant des bases de données spécifiques, telles que lors de migrations ou pour des rapports spécifiques à une base de données.

      Get-Mailbox -Database " Mailbox Database 1767124038"
      
Image

-OrganizationalUnit Paramètre

Le paramètre -OrganizationalUnit restreint la recherche aux boîtes aux lettres situées dans une unité d'organisation spécifique Active Directory . Cela est particulièrement pratique dans les grandes organisations avec une hiérarchie structurée d'OU.

      Get-Mailbox -OrganizationalUnit "OU=Versacorp,DC=MILKYWAY,DC=LOCAL"
      
Image

-Paramètre d'arbitrage

Le paramètre de commutateur -Arbitration récupère les boîtes aux lettres d'arbitrage, qui sont des boîtes aux lettres système utilisées pour stocker des données organisationnelles, telles que les journaux d'audit des administrateurs, les informations eDiscovery et d'autres tâches liées au système.

      Get-Mailbox -Arbitration
      
Image

-AuditLog Paramètre

Le paramètre de commutation -AuditLog est utilisé pour récupérer les boîtes aux lettres de journal d'audit, qui contiennent les journaux d'audit pour les actions effectuées par les administrateurs et les utilisateurs. Cela est important pour la conformité et les objectifs de surveillance.

      Get-Mailbox -AuditLog
      
Image

-RecipientTypeDetails Paramètre

Ce paramètre permet de filtrer les boîtes aux lettres en fonction de leur type, telles que UserMailbox, SharedMailbox, RoomMailbox ou EquipmentMailbox, entre autres. Il facilite les opérations visant spécifiquement à gérer des types particuliers de boîtes aux lettres.

      Get-Mailbox -RecipientTypeDetails SharedMailbox
      
Image

-ResultSize Parameter

Le paramètre -ResultSize limite le nombre de résultats renvoyés par le cmdlet. Par défaut, Get-Mailbox récupère jusqu'à 1000 boîtes aux lettres. Définir ce paramètre sur “Unlimited” permet de récupérer les détails de toutes les boîtes aux lettres sans troncature ou le définir sur un nombre inférieur, par exemple 50, fournira des résultats conformément à la valeur fournie.

      Get-Mailbox -ResultSize 10
      
Image

-Paramètre SoftDeletedMailbox

Récupérez les boîtes aux lettres qui ont été supprimées de manière réversible mais pas retirées de façon permanente, ce paramètre est uniquement disponible pour Exchange Online (Office365).

      Get-Mailbox -SoftDeletedMailbox
      
Image

-Anr

Le paramètre -Anr (Ambiguous Name Resolution) est utilisé conjointement avec le paramètre -Identity pour rechercher une boîte aux lettres où la chaîne spécifiée est proche ou similaire à l'identité réelle de la boîte aux lettres. C'est utile lorsque le nom exact ou l'alias de la boîte aux lettres n'est pas connu.

      Get-Mailbox -Anr "Adita"
      
Image

-SortBy

Ce paramètre spécifie la propriété selon laquelle les résultats doivent être triés. Par exemple, en utilisant -SortBy DisplayName, cela organise la liste des boîtes aux lettres retournées alphabétiquement par le nom d'affichage des boîtes aux lettres.

      Get-Mailbox -SortBy Name
      
Image

Paramètres communs

Comme d'autres cmdlets dans PowerShell, Get-Mailbox prend en charge des paramètres communs tels que -Verbose, -Debug, -ErrorAction, -ErrorVariable, -WarningAction, -WarningVariable, -OutBuffer, -PipelineVariable et -OutVariable. Ces paramètres peuvent aider à contrôler la messagerie de cmdlet, à gérer les erreurs et les avertissements, et à gérer la sortie dans les scripts et les fonctions.

Autres paramètres disponibles pour cmdlet

-Archive : Renvoie les boîtes aux lettres avec les archives activées

-AuxAuditLog: Renvoie les boîtes aux lettres de journal d'audit auxiliaire

-Credential : Spécifie le nom d'utilisateur et le mot de passe

-DomainController: Spécifie le contrôleur de domaine

-GroupMailbox : Renvoie uniquement les groupes Microsoft 365

-IgnoreDefaultScope: Ignore le périmètre de destinataire par défaut

-InactiveMailboxOnly: Renvoie uniquement les boîtes aux lettres inactives

-IncludeInactiveMailbox: Inclut les boîtes aux lettres inactives

-MailboxPlan : Filtre les résultats par plan de boîte aux lettres

-Migration : Renvoie les boîtes aux lettres de migration

-Surveillance : Renvoie des boîtes aux lettres de surveillance

-PublicFolder: Renvoie les boîtes aux lettres de dossiers publics

-ReadFromDomainController: Lit les informations du contrôleur de domaine

-RemoteArchive : Renvoie les boîtes aux lettres d'archive distantes

-Serveur : Filtre les résultats par serveur Exchange

Combinaison de paramètres

Vous pouvez combiner plusieurs paramètres pour affiner votre requête. Voici quelques exemples.

  • La cmdlet ci-dessous récupère toutes les boîtes aux lettres utilisateur dans une base de données spécifique avec le type de destinataire en tant qu'« utilisateur ».
      Get-Mailbox -Database "Test3" -RecipientTypeDetails UserMailbox
      
Image
  • La cmdlet ci-dessous récupérera toutes les boîtes aux lettres avec un attribut personnalisé spécifique, avec tous les résultats en utilisant -ResultSize.
      Get-Mailbox -Filter {CustomAttribute1 -eq “TeamA”} -ResultSize Unlimited
      
Image

En redirigeant la sortie de la cmdlet Get-Mailbox dans la cmdlet Select-Object, l'exemple de cmdlets ci-dessous récupère une liste personnalisée affichant le nom d'affichage, l'adresse SMTP principale et le quota d'envoi pour chaque boîte aux lettres d'une OU spécifique. Ce format est particulièrement utile pour générer des rapports ou des audits.

  • Récupérez les boîtes aux lettres dans une unité d'organisation spécifique et affichez uniquement leurs noms d'affichage et adresses e-mail.
      Get-Mailbox -OrganizationalUnit "OU=Versacorp,DC=MILKYWAY,DC=LOCAL" | Select-Object DisplayName,PrimarySmtpAddress
      
Image
  • Liste de toutes les boîtes aux lettres avec propriétés détaillées
      Get-Mailbox | Select-Object DisplayName, PrimarySmtpAddress, ProhibitSendQuota
      
Image
  • L'exemple plus complexe ci-dessous combine plusieurs cmdlets pour identifier les boîtes aux lettres qui n'ont pas été accédées au cours des 90 derniers jours.
      Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | Where-Object {$_.LastLogonTime -lt (Get-Date).AddDays(-90)}
      
Image

Cas d'utilisation et scénarios

Get-Mailbox combiné avec ses paramètres, permet une large gamme d'utilisations et de scénarios qui peuvent faciliter la gestion efficace du système de messagerie, la conformité, les rapports et le dépannage. Voici quelques cas d'utilisation et scénarios.

Audit et reporting des boîtes aux lettres

Génération de rapports sur les tailles de boîtes aux lettres, les quotas et l'utilisation pour garantir la conformité avec les politiques organisationnelles. La cmdlet ci-dessous ne produit aucun résultat, vous pouvez vous rendre à l'emplacement fourni dans la cmdlet Export-CSV et ouvrir le fichier CSV, il ressemblera à la capture d'écran ci-dessous.

      Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | Select DisplayName, TotalItemSize, ItemCount, StorageLimitStatus | Export-Csv -Path "MailboxReport.csv"
      
Image

Identification des boîtes aux lettres inactives ou orphelines

Trouver des boîtes aux lettres qui n'ont pas été consultées pendant une période spécifique, ce qui pourrait indiquer des boîtes aux lettres inactives ou orphelines. Ce scénario aide à nettoyer le système de messagerie, potentiellement en libérant des ressources et des licences en identifiant les boîtes aux lettres qui ne sont plus utilisées.

      Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | Where-Object {$_.LastLogonTime -lt (Get-Date).AddMonths(-6)} | Select DisplayName, LastLogonTime
      
Image

Gestion des configurations de boîtes aux lettres

Listage des boîtes aux lettres avec certaines configurations, telles que le transfert activé ou des fonctionnalités spécifiques de la boîte aux lettres.

      Get-Mailbox -ResultSize Unlimited | Where {$_.ForwardingAddress -ne $null} | Select DisplayName, ForwardingAddress
      
Image

Gestion en masse

Effectuez des opérations en masse, telles que déplacer des boîtes aux lettres ou appliquer des paramètres de boîte aux lettres à plusieurs boîtes aux lettres à la fois. Déplacez toutes les boîtes aux lettres d'une base de données à une autre dans le cadre d'une tâche de maintenance.

      Get-Mailbox -Database "DB01" | New-MoveRequest -TargetDatabase "DB05"
      
Image

Opérations en masse et délégations

Trouver toutes les boîtes aux lettres partagées ou déléguées et examiner leurs utilisateurs délégués à des fins d'audit.

      Get-Mailbox -RecipientTypeDetails SharedMailbox -Database “Test3” | Get-MailboxPermission | Where {$_.AccessRights -contains "FullAccess"}
      
Image

Définition des quotas pour la boîte aux lettres

Si vous souhaitez définir des quotas d'envoi et de réception selon vos besoins, la cmdlet ci-dessous pourra définir le quota avec une valeur de 5 Go, vous pouvez utiliser votre propre valeur selon les besoins.

      Get-Mailbox -Identity "JackRobert" | Set-Mailbox -ProhibitSendReceiveQuota "5GB"
      

La cmdlet ci-dessus ne produira aucune sortie mais définira la valeur, vous pouvez utiliser la cmdlet ci-dessous pour vérifier la sortie souhaitée que vous avez définie à l'aide de la cmdlet ci-dessus.

      Get-Mailbox -Identity "JackRobert" | Select prohibitsendreceivequota
      
Image

Dépannage

Diagnostiquez et dépannez les problèmes liés aux boîtes aux lettres, tels que l'identification des boîtes aux lettres ayant dépassé leurs quotas. Identifiez les boîtes aux lettres qui ont dépassé leurs quotas d'envoi pour résoudre les problèmes de performance potentiels.

      Get-Mailbox -ResultSize Unlimited | Where-Object { $_.ProhibitSendQuota -ne $null -and $_.ProhibitSendQuota -lt 5GB } | Select-Object DisplayName,PrimarySmtpAddress,ProhibitSendQuota
      
Image

Gestion des unités organisationnelles

Gérez les boîtes aux lettres au sein d'une unité organisationnelle spécifique (OU), telles que l'application de paramètres ou de configurations spécifiques. Récupérez et appliquez un changement de configuration à toutes les boîtes aux lettres de l'OU “HR”.

      Get-Mailbox -OrganizationalUnit "OU=Test,DC=MILKYWAY,DC=LOCAL " | Set-Mailbox -MaxSendSize 50MB
      

La cmdlet ci-dessus ne produira aucun résultat mais assignera la valeur pour la taille maximale d'envoi des messages, pour tous les utilisateurs dans l'OU spécifié, utilisez la cmdlet ci-dessous pour confirmer.

      Get-Mailbox -OrganizationalUnit "OU=Test,DC=MILKYWAY,DC=LOCAL " | Select MaxSendSize
      
Image

Déléguer l'accès

Déléguez l'accès aux boîtes aux lettres à des fins administratives ou de support. Accordez des permissions d'accès complet à une boîte aux lettres de support pour toutes les boîtes aux lettres dans une base de données de boîtes aux lettres spécifique.

      Get-Mailbox -Database “Test3” | Add-MailboxPermission -User "administrator@milkyway.local" -AccessRights FullAccess
      
Image

Vérification des paramètres de quota de boîte aux lettres

Il est important de vérifier les paramètres de quota de la boîte aux lettres, car cela aide à garantir que les utilisateurs ne dépassent pas les limites de stockage fixées par l'organisation, ce qui pourrait affecter la fonctionnalité des e-mails.

Vue d'ensemble du quota de boîte aux lettres

Les quotas de boîte aux lettres sont utilisés pour limiter l'espace de stockage qu'une boîte aux lettres peut utiliser. Ces quotas sont inclus comme ci-dessous.

  • Quota d'avertissement d'émission: Seuil à partir duquel les utilisateurs sont avertis que leur boîte aux lettres approche de sa limite de stockage.
  • Quota d'envoi interdit: Le seuil au-delà duquel les utilisateurs ne peuvent plus envoyer de nouveaux messages.
  • Quota d'envoi et de réception interdit: Seuil au-delà duquel les utilisateurs ne peuvent plus envoyer ou recevoir de nouveaux messages.

Pour vérifier les paramètres de quota pour une boîte aux lettres spécifique, vous pouvez utiliser le cmdlet Get-Mailbox suivi de l'identité de la boîte aux lettres. Cela retournera diverses propriétés de la boîte aux lettres, y compris les paramètres de quota.

      Get-Mailbox -Identity "BarbaraCole" | Format-List IssueWarningQuota, ProhibitSendQuota, ProhibitSendReceiveQuota, UsedDatabaseQuotaDefaults
      
Image

Si vous devez examiner les paramètres de quota pour plusieurs ou toutes les boîtes aux lettres de votre environnement, vous pouvez utiliser la cmdlet Get-Mailbox sans spécifier d'identité et sortir les propriétés de quota pertinentes, et exporter les données vers un fichier CSV, ce qui facilite l'analyse et le rapport sur les configurations de quota.

      Get-Mailbox -ResultSize Unlimited -Database “Test3” | Select-Object DisplayName,ProhibitSendQuota,ProhibitSendReceiveQuota,IssueWarningQuota
      
Image

Exemple1 : Retour d'une liste récapitulative de toutes les boîtes aux lettres

Pour obtenir une liste récapitulative de toutes les boîtes aux lettres dans Exchange Online ou Exchange Server à l'aide de PowerShell, utilisez l'applet de commande ci-dessous.

La commande ci-dessous affichera un tableau dans votre console PowerShell contenant un résumé de toutes les boîtes aux lettres avec leurs noms d'affichage, alias, UPNs, dates de création et adresses e-mail principales. Ce résumé offre un aperçu rapide, utile pour les rapports, les audits ou simplement pour obtenir un aperçu des boîtes aux lettres actuellement établies dans votre environnement Exchange.

      Get-Mailbox -ResultSize Unlimited | Select-Object DisplayName, Alias, UserPrincipalName, WhenCreated, PrimarySmtpAddress | Format-Table -AutoSize
      
Image

La cmdlet ci-dessous utilisera quelques propriétés supplémentaires par ex. Database, ProhibitSendQuota, ProhibitSendReceiveQuota, IssueWarningQuota, ainsi que le nom d'affichage et l'adresse smtp principale.

      Get-Mailbox -ResultSize Unlimited | Select-Object DisplayName,PrimarySmtpAddress,Database,ProhibitSendQuota,ProhibitSendReceiveQuota,IssueWarningQuota | Format-Table -Autosize
      
Image

Exemple2 : Retour d'une liste récapitulative des boîtes aux lettres d'archive dans une base de données spécifique

Pour obtenir une liste résumée des boîtes aux lettres d'archive situées dans une base de données spécifique en utilisant PowerShell dans Exchange Online ou Exchange Server, vous pouvez utiliser une combinaison des cmdlets “Get-Mailbox” et “Get-MailboxStatistics”. Cette combinaison vous permet de filtrer les boîtes aux lettres par leur base de données hôte et ensuite vérifier chacune pour une archive. Voici comment vous pouvez réaliser cela.

      Get-Mailbox -Database "Test3" -Archive | Get-MailboxStatistics -Archive | Select-Object DisplayName, TotalItemSize, ItemCount | Format-Table -AutoSize
      
Image

Contenu connexe sélectionné :

Combiner Get-Mailbox avec d'autres cmdlets (Get-Member, Select-Object, Format-List)

La combinaison de l'applet de commande Get-Mailbox avec d'autres applets de commande PowerShell telles que Get-Member, Select-Object et Format-List peut vous aider à récupérer, visualiser et formater les informations de boîte aux lettres plus efficacement.

Get-Member

La cmdlet Get-Member est utilisée pour inspecter les propriétés et méthodes des objets retournés par Get-Mailbox. Cela est particulièrement utile pour découvrir quelles propriétés sont disponibles pour la sélection ou la mise en forme.

      Get-Mailbox -Identity "BarbaraCole@milkyway.local" | Get-Member
      
Image

Select-Object

Le cmdlet Select-Object vous permet de spécifier quelles propriétés vous souhaitez inclure dans votre sortie. Cela est utile pour créer une vue personnalisée des informations de boîte aux lettres.

      Get-Mailbox -ResultSize Unlimited | Select-Object DisplayName, PrimarySmtpAddress,Database
      
Image

Format-List

Le cmdlet Format-List formate la sortie sous forme de liste, affichant toutes les propriétés et leurs valeurs. Cela est utile pour une vue détaillée des propriétés d'un objet de boîte aux lettres.

      Get-Mailbox -Identity "BarbaraCole@milkyway.local" | Format-List DisplayName, PrimarySmtpAddress, ProhibitSendQuota
      
Image

Opérations en masse avec Get-Mailbox et Set-Mailbox

Vous souhaitez mettre à jour les paramètres de boîte aux lettres pour plusieurs boîtes aux lettres, telles que définir un quota spécifique de boîte aux lettres ou activer/désactiver l'archivage.

La commande ci-dessous trouve toutes les boîtes aux lettres dans “Test3” et définit leurs paramètres de quota. Elle met à jour le ProhibitSendQuota, le ProhibitSendReceiveQuota et l'IssueWarningQuota pour chaque boîte aux lettres.

      Get-Mailbox -ResultSize Unlimited | Where-Object { $_.Database -eq "Test3" } | Set-Mailbox -ProhibitSendQuota 5GB -ProhibitSendReceiveQuota 6GB -IssueWarningQuota 4GB
      
Image

Utilisation de filtres et tri des résultats

Lorsque vous travaillez avec de grands ensembles d'informations, vous pouvez réduire l'ensemble de données exactement à ce dont vous avez besoin, et le tri aide à organiser la sortie pour une meilleure analyse ou un meilleur rapport. Les cmdlets ci-dessous montreront comment utiliser les mécanismes de filtrage et de tri avec Get-Mailbox.

Utilisation de filtres dans Get-Mailbox

Les cmdlets de filtrage vous permettent de spécifier des critères afin d’inclure uniquement les objets qui correspondent à ces critères dans la sortie de la commande ; vous pouvez appliquer des filtres directement dans les cmdlets qui prennent en charge le paramètre -Filter ou utiliser le cmdlet Where-Object pour des scénarios de filtrage plus complexes ou non pris en charge.

      Get-Mailbox -ResultSize Unlimited | Where-Object {$_.CustomAttribute1 -eq "TeamA" -and $_.DisplayName -like "Barb*"}
      
Image

Tri des résultats avec Get-Mailbox

Le tri aide à organiser vos données dans un ordre pertinent, ce qui facilite leur lecture et leur analyse. Vous pouvez utiliser le cmdlet Sort-Object à des fins de tri. Cette commande récupère toutes les boîtes aux lettres et les trie par ordre alphabétique selon leur nom d’affichage.

      Get-Mailbox -ResultSize 10 | Sort-Object DisplayName
      
Image

Exportation des résultats vers CSV

Pour exporter des résultats dans un fichier CSV, PowerShell propose le cmdlet Export-Csv, qui prend l’entrée du pipeline et l’écrit dans un fichier CSV spécifié. Par exemple, si vous souhaitez exporter une liste de boîtes aux lettres Exchange avec leur taille et leurs détails d’utilisation, vous pouvez utiliser le cmdlet ci-dessous. Vous devez spécifier le chemin et le nom de fichier de votre CSV via le paramètre -Path.

      Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | Select-Object DisplayName, TotalItemSize, ItemCount | Export-Csv -Path "C:\Exports\MailboxDetails.csv" -NoTypeInformation
      

Regroupement et mise en forme des résultats

Le regroupement et la mise en forme des résultats améliorent considérablement la lisibilité de la sortie des données. PowerShell fournit des cmdlets tels que Group-Object, Format-Table, Format-List, etc., qui peuvent être utilisés à ces fins.

Regroupement des résultats

Le cmdlet Group-Object sert à catégoriser les objets sur la base des valeurs d’une propriété. Cela peut être particulièrement utile pour classer des boîtes aux lettres selon des attributs comme le département ou des attributs personnalisés.

      Get-Mailbox -ResultSize Unlimited | Group-Object -Property CustomAttribute1
      
Image

Mise en forme des résultats

Après que les données ont été regroupées ou lors de la présentation de n’importe quelles données, une mise en forme appropriée peut rendre la sortie plus accessible. Format-Table, souvent abrégé « ft », affiche les données sous forme de tableau. C’est idéal lorsque vous souhaitez voir vos résultats en colonnes. Vous pouvez spécifier les propriétés à afficher et même contrôler la largeur des colonnes.

      Get-Mailbox -Identity "BarbaraCole@milkyway.local" | Format-Table DisplayName,UserPrincipalName,WhenCreated,PrimarySmtpAddress,database -AutoSize
      
Image

Utilisation de « Format-List »

Format-List, abrégé « fl », affiche chaque propriété d’un objet sur une nouvelle ligne, ce qui le rend adapté à une visualisation détaillée d’un petit nombre d’objets ou lorsque l’objet possède de nombreuses propriétés qui ne tiendraient pas correctement dans un tableau.

      Get-Mailbox -Identity "BarbaraCole" | Format-List DisplayName, PrimarySmtpAddress, EmailAddresses
      
Image

Différences de comportement des cmdlets dans Exchange Online

Le cmdlet Get-Mailbox se comporte légèrement différemment dans Exchange Online par rapport à son utilisation dans Exchange local (on-premises). Ces différences proviennent essentiellement de l’architecture basée sur le cloud d’Exchange Online et de la configuration multi-locataire, ce qui influence la manière dont les administrateurs interagissent avec les boîtes aux lettres et la portée des cmdlets. Voici quelques différences clés.

  • Dans Exchange Online, les opérations des cmdlets peuvent être soumises à un throttling pour maintenir les performances globales du service ; elles peuvent donc prendre plus de temps ou nécessiter un traitement par lots dans les environnements plus vastes afin d’éviter de dépasser les limites de throttling.
  • Exchange Online inclut davantage de types de destinataires et de détails pour s’adapter à la variété des services d’Office 365 ; vous pouvez rencontrer des types de destinataires spécifiques à l’environnement cloud qui n’existent pas dans Exchange local.
  • Certaines propriétés et attributs disponibles dans Exchange local peuvent ne pas être présents ou accessibles dans Exchange Online en raison de la nature de l’environnement hébergé. Les boîtes aux lettres Exchange Online peuvent disposer de propriétés supplémentaires liées à l’environnement cloud, telles que les informations de licence et les plans de boîte aux lettres.
  • La sortie par défaut dans Exchange Online est différente pour la gestion cloud, fournissant des informations plus pertinentes pour les administrateurs du cloud. L’ensemble des propriétés affichées par défaut et les filtres intégrés peuvent différer de ceux d’un Exchange local.
  • En raison de l’architecture multi-locataire d’Exchange Online, la portée de Get-Mailbox est limitée aux boîtes aux lettres de l’organisation. Dans un environnement hybride, pour gérer les boîtes aux lettres locales, les administrateurs doivent utiliser la Exchange Management Shell locale.
  • Exchange Online s’intègre étroitement à d’autres services Office 365, offrant des fonctionnalités avancées de sécurité et de conformité. Le comportement de Get-Mailbox peut refléter ces intégrations, par exemple via des indicateurs ou des propriétés liés au litigation hold, à l’eDiscovery ou à l’Advanced Threat Protection.

Utiliser Get-EXOMailbox pour de meilleures performances

Get-EXOMailbox est un cmdlet conçu pour les environnements Exchange Online. Il offre de meilleures performances et des fonctionnalités spécifiques à la nature cloud d’Exchange Online, par rapport au cmdlet traditionnel Get-Mailbox. Get-EXOMailbox est optimisé pour une exécution plus rapide sur des connexions distantes, ce qui le rend plus efficace pour récupérer des informations de boîtes aux lettres depuis Exchange Online. La connexion requiert une authentification moderne, pouvant inclure l’authentification multifacteur (MFA), selon la configuration de votre environnement.

      Connect-ExchangeOnline -UserPrincipalName administrator@milkyway.com
      

Ci-dessous figurent quelques exemples montrant comment Get-EXOMailbox peut être utilisé pour des tâches administratives courantes.

      Get-EXOMailbox -ResultSize Unlimited
      
Image

Filtrer par type de destinataire (Recipient Type)

      Get-EXOMailbox -RecipientTypeDetails SharedMailbox | Format-Table -Autosize
      
Image

Filtrer par état d’archivage (Archive Status)

      Get-EXOMailbox -Filter { ArchiveStatus -eq "Active" } Format-Table -Autosize
      

L’archivage dans Office 365 est une fonctionnalité premium ; j’ai utilisé ArchiveStatus sur None pour illustrer la sortie ci-dessous, et le cmdlet ci-dessus fonctionnera s’il existe des boîtes aux lettres avec l’archivage activé.

Image

Select Specific Properties

      Get-EXOMailbox -ResultSize Unlimited | Select-Object DisplayName,PrimarySmtpAddress,UserPrincipalName
      
Image

Trier par nom d’affichage (Display Name)

      Get-EXOMailbox -ResultSize Unlimited | Select-Object DisplayName,UserPrincipalName | Sort-Object DisplayName
      
Image

Paramètres exclusifs de Get-Mailbox pour Exchange Online

Le cmdlet Get-Mailbox inclut des paramètres exclusifs à Exchange Online ou pertinents dans un environnement hébergé dans le cloud par rapport à une configuration Exchange Server locale. Ces paramètres exclusifs offrent des caractéristiques uniques pour la gestion des boîtes aux lettres dans le cloud, telles que la gestion des licences, l’énumération des boîtes aux lettres inactives ou la récupération des boîtes aux lettres supprimées « en douceur » (soft deleted).

-InactiveMailboxOnly

Vous pouvez choisir de limiter les résultats aux seules boîtes aux lettres inactives en utilisant le paramètre -InactiveMailboxOnly. Cet interrupteur ne requiert aucune valeur.
Une boîte aux lettres placée en litigation hold ou in-place hold avant d’être supprimée « en douceur » est considérée comme inactive.

-MailboxPlan

Ce paramètre filtre les boîtes aux lettres renvoyées par la commande pour ne conserver que celles associées à un plan de boîte aux lettres spécifique. Cette fonctionnalité est particulièrement utile dans des environnements où plusieurs plans sont en place, par exemple des plans différents pour divers départements ou rôles au sein d’une organisation.

-IncludeInactiveMailbox

Ce paramètre inclut dans les résultats les boîtes aux lettres inactives. Les boîtes aux lettres inactives sont généralement liées à des utilisateurs supprimés ou déprovisionnés, mais conservées à des fins de rétention des données, ce qui est particulièrement important pour la conformité et l’eDiscovery.

-SoftDeletedMailbox

Ce paramètre inclut dans les résultats les boîtes aux lettres supprimées en douceur (soft deleted). Les boîtes aux lettres soft deleted surviennent lorsqu’une boîte est supprimée via le centre d’administration Office 365 ou via PowerShell, mais elle est conservée pendant une période afin de permettre la récupération.

Bonnes pratiques pour Get-Mailbox

Lorsqu’il s’agit de gérer des boîtes aux lettres dans un environnement Microsoft Exchange à l’aide du cmdlet Get-Mailbox, l’adhésion aux bonnes pratiques garantit des performances optimales, la sécurité et la gestion. Voici quelques bonnes pratiques clés à considérer.

Limiter la portée de vos requêtes

Utilisez des filtres pour réduire les résultats aux seules boîtes aux lettres qui vous intéressent. Cela réduit la charge sur votre système et vous permet d’obtenir les informations plus rapidement. Lors de l’exécution de Get-Mailbox, en particulier dans les grands environnements, essayez de limiter la portée de la commande aux boîtes nécessaires. Utilisez des paramètres comme -RecipientTypeDetails ou -OrganizationalUnit pour restreindre les résultats et réduire la charge sur votre serveur Exchange.

Utiliser le filtrage côté serveur

Dans la mesure du possible, utilisez des paramètres de cmdlet qui effectuent le filtrage côté serveur au lieu de rapatrier tous les objets en mémoire et de filtrer côté client avec Where-Object. Cela améliore les performances et l’efficacité. Exploitez le paramètre -Filter pour effectuer un filtrage côté serveur. Cette approche est plus efficace et réduit la quantité de données transmises sur le réseau.

Utiliser judicieusement la taille des résultats

Soyez prudent avec le paramètre -ResultSize Unlimited, surtout dans les grands environnements. Bien qu’il soit nécessaire pour des opérations exhaustives, il peut entraîner des problèmes de performances. Envisagez de scinder les opérations volumineuses en unités plus petites.

Récupération sélective des propriétés

Par défaut, Get-Mailbox récupère de nombreuses propriétés pour chaque boîte aux lettres, ce qui n’est pas toujours nécessaire. Utilisez le paramètre -Properties pour ne spécifier que les propriétés dont vous avez besoin, ou utilisez Select-Object pour réduire les résultats. Cela peut améliorer sensiblement les performances.

Utilisation efficace des caractères génériques

Lorsque vous utilisez des wildcards (*) dans les filtres, sachez qu’ils peuvent provoquer des problèmes de performances s’ils sont utilisés de manière excessive ou inefficace. Placez les wildcards avec soin dans vos requêtes afin qu’elles soient aussi efficaces que possible.

Combiner judicieusement avec d’autres cmdlets

Souvent, Get-Mailbox est utilisé conjointement avec d’autres cmdlets pour des tâches telles que des modifications de boîtes aux lettres ou des rapports. Lorsque vous chaînez Get-Mailbox vers d’autres cmdlets, veillez à ce que la commande initiale Get-Mailbox soit la plus ciblée possible afin d’éviter un traitement inutile.

Comprendre l’impact de RecipientTypeDetails

Ce paramètre est extrêmement utile pour cibler des types spécifiques de boîtes aux lettres (par ex. UserMailbox, SharedMailbox, etc.). Le comprendre et l’utiliser efficacement peut vous aider à exécuter des opérations plus précises.

Sécurité et conformité

Lorsque vous exécutez des scripts ou des commandes Get-Mailbox susceptibles d’exposer des informations sensibles, assurez-vous de respecter les politiques de sécurité de votre organisation. Limitez l’accès à ces scripts et à leurs sorties au personnel autorisé uniquement.

Tester et valider les scripts

Avant d’exécuter en production un script qui apporte des modifications basées sur la sortie de Get-Mailbox, testez-le minutieusement dans un environnement non productif. Validez la sélection des boîtes aux lettres et les modifications prévues afin d’éviter des impacts involontaires.

Réviser et mettre à jour régulièrement les scripts

Au fur et à mesure que votre environnement Exchange évolue, vos scripts et commandes doivent également évoluer. Révisez-les et mettez-les à jour régulièrement pour vous assurer qu’ils utilisent les méthodes les plus efficaces et qu’ils sont alignés sur les meilleures pratiques actuelles.

Rester à jour

Assurez-vous que votre session PowerShell ou votre module pour Exchange est à jour. Microsoft met régulièrement à jour les cmdlets PowerShell pour Exchange Online, introduisant de nouvelles fonctionnalités et améliorations qui peuvent renforcer vos capacités de scripting.

Dépannage des problèmes courants avec Get-Mailbox

Vous pouvez rencontrer plusieurs problèmes ou comportements inattendus lorsque vous travaillez avec le cmdlet Get-Mailbox. Voici quelques problèmes courants accompagnés d’étapes de dépannage et de solutions pour les résoudre efficacement.

Cmdlet non reconnu

Vous pouvez recevoir un message d’erreur indiquant que « Get-Mailbox » n’est pas reconnu comme le nom d’un cmdlet, d’une fonction, d’un fichier de script ou d’un programme exécutable.

Étapes de dépannage

  • Assurez-vous d’exécuter le cmdlet dans la Exchange Management Shell (pour Exchange Server) ou de vous être connecté à Exchange Online PowerShell en utilisant Connect-ExchangeOnline (pour Exchange Online).
  • Pour Exchange Online, assurez-vous que le module Exchange Online PowerShell est installé et à jour.
  • Vérifiez votre session PowerShell ; il est possible que vous soyez dans une session qui ne charge pas par défaut les cmdlets Exchange.Insufficient Permissions

You are connected to Exchange Online or Exchange Server but receiving permission-related errors when attempting to execute “Get-Mailbox”.

Troubleshooting Steps

  • Verify the account you are using has the necessary permissions (e.g., Exchange Admin role for Exchange Online or appropriate RBAC roles in Exchange Server).
  • For Exchange Online, ensure that you have multi-factor authentication (MFA) set up correctly if your account requires it.
  • In Exchange Server, check that the account is explicitly granted access to use “Get-Mailbox” or added in a role that permit the operation, e.g. Recipient Management role.
  • Droits insuffisants

Vous êtes connecté à Exchange Online ou Exchange Server mais vous recevez des erreurs liées aux autorisations lors de l’exécution de Get-Mailbox.

Étapes de dépannage

  • Vérifiez que le compte utilisé dispose des autorisations nécessaires (par ex. rôle Exchange Admin pour Exchange Online ou rôles RBAC appropriés dans Exchange Server).
  • Pour Exchange Online, assurez-vous que la MFA est correctement configurée si elle est requise pour votre compte.
  • Dans Exchange Server, vérifiez que l’accès à Get-Mailbox a été explicitement accordé au compte ou que celui-ci a été ajouté à un rôle permettant l’opération (par ex. Recipient Management).

Résultats incomplets ou inattendus

Le cmdlet Get-Mailbox s’exécute sans erreurs mais renvoie des résultats incomplets ou inattendus.

Étapes de dépannage

  • Utilisez le paramètre -ResultSize pour vous assurer que toutes les boîtes aux lettres attendues sont interrogées. La valeur par défaut pourrait ne pas tout renvoyer.
  • Affinez votre requête en utilisant le paramètre -Filter pour garantir qu’elle reflète précisément les critères que vous souhaitez appliquer.
  • Vérifiez s’il existe des options de filtrage côté serveur ou côté client susceptibles de limiter les résultats.
  • Pour Exchange Online, les politiques de throttling peuvent parfois retarder l’exécution des commandes ; envisagez de réessayer après un court délai.

Problèmes de performances

Le cmdlet met longtemps à s’exécuter, surtout dans des environnements avec un grand nombre de boîtes aux lettres.

Étapes de dépannage

  • Limitez la portée de votre requête en utilisant -ResultSize, -Filter, ou d’autres paramètres spécifiques comme -OrganizationalUnit pour réduire les résultats et améliorer les performances.
  • Envisagez de diviser votre tâche en lots plus petits si vous traitez un grand nombre de boîtes aux lettres.
  • Pour Exchange Online, assurez-vous d’utiliser la dernière version du Exchange Online Management Module, optimisée pour les grands jeux de données.

Problèmes de connectivité

Vous rencontrez des problèmes de connectivité lorsque vous essayez d’utiliser Get-Mailbox dans Exchange Online.

Étapes de dépannage

  • Assurez-vous que votre connexion Internet est stable.
  • Confirmez qu’aucun incident de service n’affecte Exchange Online en vérifiant le Tableau de bord d’intégrité du service d’Office 365.
  • Rétablissez votre session PowerShell vers Exchange Online à l’aide de Connect-ExchangeOnline, car des expirations de session ou des changements réseau peuvent perturber la connectivité.

Restrictions de la stratégie d’exécution des scripts

Vous rencontrez des restrictions liées à la politique d’exécution de PowerShell lors de l’exécution de scripts incluant le cmdlet Get-Mailbox.

Étapes de dépannage

  • Utilisez Get-ExecutionPolicy pour vérifier votre politique actuelle.
  • Si nécessaire, ajustez la politique à l’aide de Set-ExecutionPolicy avec un niveau approprié (par ex. RemoteSigned) qui autorise l’exécution de votre script, en tenant compte des implications de sécurité.

Windows PowerShell Scripting Tutorial (PDF) for Beginners

Learn More

FAQs

Pourquoi Get-Mailbox n’est-il pas reconnu dans PowerShell ?

L’erreur « Get-Mailbox non reconnu » se produit parce que le module Exchange Management Shell n’est pas chargé dans votre session PowerShell. Ce cmdlet est spécifique à Exchange Server et requiert le module approprié pour fonctionner. Pour Exchange Online, vous devez installer et vous connecter avec le module Exchange Online PowerShell V2 :

      Install-Module ExchangeOnlineManagement
      

Pour Exchange local (on-premises), assurez-vous d’exécuter PowerShell depuis la Exchange Management Shell ou d’avoir importé le module Exchange. Après l’installation, connectez-vous en utilisant :

      # For cloud environments
Connect-ExchangeOnline

# For on-premises
Import-Module Exchange
      

Le nom du cmdlet diffère également selon les versions : Exchange Online utilise Get-EXOMailbox pour de meilleures performances dans les grands environnements, tandis que l’Exchange traditionnel utilise Get-Mailbox.

Comment se connecter à Exchange Online PowerShell ?

La connexion à Exchange Online PowerShell nécessite le module Exchange Online Management et une authentification adéquate. Tout d’abord, installez le module dans une session PowerShell élevée :

      Connect-ExchangeOnline
      

Ensuite, connectez-vous :

      Connect-ExchangeOnline -UserPrincipalName youradmin@domain.com -ShowProgress
      

Une invite vous demandera vos identifiants Office 365. Pour plus de sécurité, utilisez l’authentification moderne : la MFA est gérée automatiquement dans le processus de connexion. Une fois connecté, vous pouvez utiliser Get-EXOMailbox au lieu de Get-Mailbox pour de meilleures performances dans les grands environnements. Déconnectez-vous toujours lorsque vous avez terminé :

      Disconnect-ExchangeOnline
      

Cette méthode de connexion fournit un accès administratif complet aux fonctions de gestion d’Exchange Online.

Comment vérifier les autorisations d’une boîte aux lettres avec PowerShell ?

La vérification des autorisations d’une boîte aux lettres nécessite de combiner les cmdlets Get-Mailbox et Get-MailboxPermission pour obtenir des informations d’accès complètes. Utilisez cette commande pour voir qui a accès à une boîte aux lettres spécifique :

      Get-MailboxPermission -Identity username@domain.com
      

Cela affiche les autorisations Full Access, Send As et Send on Behalf. Pour une analyse en masse, chaînez la sortie de Get-Mailbox vers Get-MailboxPermission :

      Get-Mailbox | Get-MailboxPermission
      

La sortie montre AccessRights, User et Deny pour chaque entrée d’autorisation. Pour identifier des privilèges excessifs, filtrez les résultats à l’aide de Where-Object :

      Get-MailboxPermission -Identity username@domain.com | Where-Object {$_.User -notlike "NT AUTHORITY*"}
      

Cette approche offre une visibilité sur qui peut accéder à quelles données de boîtes aux lettres, ce qui est crucial pour maintenir le principe du moindre privilège et la conformité.

Comment exporter une liste de boîtes aux lettres en CSV ?

Exportation de base :

      Get-Mailbox | Select-Object DisplayName, PrimarySmtpAddress, RecipientTypeDetails | Export-CSV -Path "C:\MailboxList.csv" -NoTypeInformation
      

Rapport détaillé :

      Get-Mailbox | Select-Object DisplayName, PrimarySmtpAddress, TotalItemSize, ProhibitSendQuota, LastLogonTime | Export-CSV -Path "C:\DetailedMailboxList.csv" -NoTypeInformation
      

Le cmdlet Select-Object contrôle quels attributs de boîte aux lettres apparaissent dans votre export, tandis que Export-Csv gère la mise en forme du fichier. Pour les grands environnements, envisagez d’utiliser Get-EXOMailbox dans Exchange Online pour de meilleures performances. Ajoutez des filtres pour exporter des types spécifiques de boîtes aux lettres :

      Get-Mailbox | Where-Object {$_.RecipientTypeDetails -eq "UserMailbox"} | Export-CSV -Path "C:\UserMailboxes.csv" -NoTypeInformation
      

Cette méthode crée des fichiers de données structurés, parfaits pour les rapports de conformité, la planification de capacité et les audits de sécurité.

Get-Mailbox vs Get-EXOMailbox : lequel utiliser ?

Get-EXOMailbox est le remplaçant moderne de Get-Mailbox dans les environnements Exchange Online, offrant des performances nettement meilleures pour les grandes organisations. Utilisez Get-EXOMailbox lorsque vous travaillez avec Exchange Online, car il est optimisé pour des opérations à l’échelle du cloud et gère automatiquement la pagination. La syntaxe reste presque identique, mais Get-EXOMailbox traite les résultats plus rapidement et utilise moins de mémoire. Pour Exchange Server local (on-premises), vous devez utiliser Get-Mailbox, car Get-EXOMailbox n’existe pas dans la Exchange Management Shell traditionnelle. Dans les environnements hybrides, utilisez le cmdlet approprié pour chaque environnement — Get-EXOMailbox pour les boîtes aux lettres cloud et Get-Mailbox pour les boîtes locales. Microsoft recommande Get-EXOMailbox pour tous les nouveaux scripts Exchange Online et la migration progressive des scripts existants pour de meilleures performances et une compatibilité future.

Partager sur

En savoir plus

À propos de l'auteur

Asset Not Found

Kevin Horvatin

Architecte logiciel principal

Kevin Horvatin est Lead Software Architect chez Netwrix et responsable de Netwrix Privilege Secure. Développeur de logiciels depuis plus de 20 ans, il travaille avec PowerShell et C# depuis leur introduction.