Renvoi des informations de boîte aux lettres Exchange Online

 

Dernière rubrique modifiée : 2014-06-09

Résumé :Utilisez Windows PowerShell pour gérer Office 365 à l'aide des applets de commande, des scripts et des processus de traitement par lots Windows PowerShell.

Pour vous donner une idée de ce que vous pouvez faire avec Exchange Online et Windows PowerShell, jetons un œil aux boîtes aux lettres utilisateur. Vous vous en doutez peut-être, vous pouvez facilement obtenir des informations sur la boîte aux lettres d’un seul utilisateur ; voici une commande qui renvoie des informations sur la boîte aux lettres de Ken Myer :

Get-Mailbox -Identity "Ken Myer"

Celle-ci renvoie un résultat semblable au suivant :

Name      Alias       ServerName      ProhibitSendQuota
----      -----       ----------      -----------------
kenmyer   kenmyer     bn1pr02mb038    49.5 GB (53,150,220,288 bytes)

Voilà qui est pratique : vous pouvez consulter l’alias et le quota de messagerie de Ken d’un coup d’œil. Une messagerie Exchange Online ne se résume pas aux quatre propriétés renvoyées par la cmdlet Get-Mailbox. Comment accéder à toutes ces informations ?

Voici comment procéder :

Get-Mailbox -Identity "Ken Myer" | Select-Object *

La syntaxe Select-Object * indique à Windows PowerShell de renvoyer toutes les informations pouvant être renvoyées par la cmdlet Get-Mailbox ; pour une boîte aux lettres utilisateur, il peut s’agir de 200 propriétés et valeurs de propriété différentes. Comme nous l’avons déjà vu, si nous exécutons la commande Get-Mailbox –Identity "Ken Myer", nous n’obtenons en retour que le petit sous-ensemble d’informations renvoyé par défaut par la cmdlet Get-Mailbox. Bien entendu, vous pouvez toujours utiliser la cmdlet Select-Object pour indiquer un ensemble spécifique de valeurs de propriété devant être renvoyé. Vous souhaitez simplement en savoir plus sur les propriétés liées à la mise en attente pour litige pour Ken Myer ? Il fallait le dire tout de suite !

Get-Mailbox -Identity "Ken Myer" | Select-Object DisplayName, LitigationHoldEnabled, LitigationHoldDate, LitigationHoldOwner, LitigationHoldDuration

Voici une astuce très pratique : vous pouvez utiliser des caractères génériques lorsque vous utilisez la cmdlet Select-Object. En effet, toutes les propriétés de mise en attente pour litige commencent par les lettres lit. Cela signifie que nous pouvons récupérer ces informations à l’aide de la commande suivante :

Get-Mailbox -Identity "Ken Myer" | Select-Object DisplayName, Lit*

Cette commande indique à la cmdlet Get-Mailbox de récupérer la valeur de la propriété DisplayName de Ken, ainsi que les valeurs de toutes les propriétés dont le nom commence par les lettres lit. Observez le résultat obtenu :

DisplayName            : Ken Myer
LitigationHoldEnabled  : False
LitigationHoldDate     :
LitigationHoldOwner    :
LitigationHoldDuration : Unlimited

En fait, nous pourrions réduire encore davantage notre commande en utilisant un caractère générique pour la propriété DisplayName également :

Get-Mailbox -Identity "Ken Myer" | Select-Object Disp*, Lit*

Nous aurions également pu réduire Lit* à L* :

Get-Mailbox -Identity "Ken Myer" | Select-Object DisplayName, L*

Cependant, cela présente un inconvénient : vous auriez obtenu en retour toutes les valeurs de propriété dont le nom commence par la lettre L :


DisplayName             : Ken Myer
Location                :
LitigationHoldEnabled   : False
LitigationHoldDate      :
LitigationHoldOwner     :
LitigationHoldDuration  : Unlimited
Languages               : {en-US}
LinkedMasterAccount     :
LastExchangeChangedTime :
LegacyExchangeDN        : /o=ExchangeLabs/ou=Exchange Administrative 
                          Group(FYDIBOHF23SPDLT)/cn=Recipients/
                          cn=44386eeefe7c4c2a92199aff4a2bc7b0-KenMyer

Vous ne souhaitez peut-être pas obtenir toutes ces informations.

De plus, ces informations ne concernent qu’une boîte aux lettres. Est-il possible de renvoyer des informations sur plusieurs boîtes aux lettres ? Bien entendu. Il vous suffit de ne pas inclure le paramètre Identity :

Get-Mailbox 

Vous pouvez également transmettre ces données à la cmdlet Select-Object afin que celle-ci renvoie certaines valeurs de propriété spécifiées :

Get-Mailbox | Select-Object DisplayName, LitigationHoldEnabled

Cette méthode est très intéressante et très pratique. Par ailleurs, il se peut que vous souhaitiez consulter uniquement un sous-ensemble de vos comptes de boîte aux lettres. Supposons que l’on vous demande d’obtenir une liste de toutes les boîtes aux lettres qui ont été mises en attente pour litige. À quelle vitesse pouvez-vous obtenir cette liste ? Si vous devez renvoyer tous vos comptes de boîte aux lettres, puis rechercher un par un ceux étant mis en attente pour litige, vous pouvez en avoir pour un certain temps (si vous avez de nombreux utilisateurs). Nous vous recommandons d’ajouter un filtre à votre commande Get-Mailbox, comme ceci :

Get-Mailbox -Filter '(LitigationHoldEnabled -eq $True)'

Vous vous posez peut-être la question suivante : pourquoi ne pas transmettre les informations de boîte aux lettres renvoyées à la cmdlet Where-Object, comme nous l’avions fait avec les comptes d’utilisateur Office 365 ? Cette commande ne fonctionne-t-elle pas de la même façon ?

Get-Mailbox | Where-Object {$_.LitigationHoldEnabled -eq $True}

Pour être honnête, tout dépend de ce que vous entendez par « de la même façon ». Les deux commandes renvoient bien les mêmes informations. Toutefois, lorsque vous transmettez un élément à la cmdlet Where-Object, le processus fonctionne de la manière suivante :

  1. La cmdlet Get-Mailbox contacte le serveur et récupère toutes les informations de boîte aux lettres disponibles.

  2. Toutes ces informations sont transférées via le réseau sur votre ordinateur local.

  3. Les informations sont ensuite filtrées sur votre ordinateur local et les données « en trop » sont ignorées.

Que se passe-t-il si nous utilisons le paramètre Filter à la place ? Voici ce qui arrive :

  1. La cmdlet Get-Mailbox contacte le serveur et les informations de boîte aux lettres sont filtrées sur ce dernier.

  2. Seules ces informations filtrées (qui représentent généralement un très petit sous-ensemble du nombre total d’informations de boîte aux lettres) sont transférées via le réseau sur votre ordinateur local.

En d’autres termes, en utilisant le paramètre Filter vous laissez le serveur faire une majeure partie du travail, et vous réduisez considérablement la quantité d’informations à transférer via le réseau. Autrement dit, lorsqu’une cmdlet Office 365 prend en charge le paramètre Filter, nous vous recommandons d’utiliser ce dernier au lieu de Where-Object.

RemarqueRemarque :
Tout dépend de ce que vous tentez de filtrer. Les valeurs de propriété ne peuvent pas toutes être utilisées dans un filtre.

Dans cette optique, étudions un autre exemple concernant le filtrage. Vous souhaitez peut-être savoir quels utilisateurs ont activé le transfert de messages dans leur boîte aux lettres. Pouvez-vous le découvrir aussi rapidement ? Voyez par vous-même :

Get-Mailbox -Filter '(DeliverToMailboxAndForward -eq $False)'

Vous souhaitez limiter les données renvoyées au nom d’affichage de l’utilisateur et à l’adresse à laquelle son message est transféré ? Pourquoi pas !

Get-Mailbox -Filter '(DeliverToMailboxAndForward -eq $True)' | Select-Object DisplayName, ForwardingSmtpAddress

Voici un dernier exemple : Supposons que vous souhaitiez vous assurer que tous vos utilisateurs ont activé la règle de courrier indésirable. Voici un moyen rapide de déterminer si l’un de vos utilisateurs n’a pas activé cette règle :

Get-Mailbox | Get-MailboxJunkEmailConfiguration | Where-Object {$_.Enabled -eq $False}
RemarqueRemarque :
Pourquoi n’avons-nous pas utilisé le paramètre Filter dans cet exemple ? C’est simple : nous ne pouvons pas utiliser le paramètre Filter car la cmdlet Get-MailboxJunkEmailConfiguration ne prend pas en charge ce paramètre.

C’est une bonne observation : tous les utilisateurs doivent avoir activé la règle de courrier indésirable, n’est-ce pas ? En outre, ils doivent également tous avoir inclus fabrikam.com dans la liste des expéditeurs bloqués et dans celle des domaines. N’attendez plus !

Get-Mailbox | Set-MailboxJunkEmailConfiguration -Enabled $True -BlockedSendersAndDomains @{Add="fabrikam.com"}

Peut-être fabrikam.com figure-t-il dans la liste des expéditeurs bloqués de certains de vos utilisateurs alors qu’il ne le devrait pas ? Pouvons-nous déterminer quels sont ces utilisateurs et supprimer fabrikam.com de leur liste d’expéditeurs bloqués ? Non, nous ne pouvons pas le faire. Mais c’est possible avec Windows PowerShell :

Get-Mailbox | Get-MailboxJunkEmailConfiguration | Where-Object {$_.BlockedSendersAndDomains -match "fabrikam.com"} | Set-MailboxJunkEmailConfiguration -BlockedSendersAndDomains @{Remove="fabrikam.com"}

Par conséquent, ne serait-il pas plus simple de réaliser toutes ces actions à l’aide du Centre d’administration Exchange ? Probablement. Mais à vrai dire, nous n’avons pas trouvé le moyen de gérer le courrier indésirable à l’aide du Centre d’administration. Pour configurer le traitement du courrier indésirable, vous devez donc utiliser Windows PowerShell, la configuration de calendrier, la configuration de la vérification de l’orthographe ou des opérations de signature automatique et de boîte aux lettres, etc.


À suivre : Utilisation des rapports Exchange Online

 
Afficher: