Quelques snippets pour Exchange Management Shell

Travaillant de plus en plus sur Exchange ces derniers temps, j’essaye de maximiser mon utilisation courante du Exchange Management Shell. Je vais partager quelques snippets permettant de récupérer des informations qu’il est plus difficile voire impossible de récupérer via la console graphique. Ces snippets peuvent être de bonnes bases pour ensuite peaufiner une recherche, ou simplement avoir la syntaxe pour obtenir une autre information, ou encore pour être intégrés dans un script. A noter que j’ai utilisé ce code sur un Exchange on Premise, il est possible que certaines commandes soient à adapter pour un usage sur Exchange Online.


Liste des mailbox n’ayant pas OWA activé

Get-CasMailbox | Where-Object { $_.OWAEnabled -eq $false }

Liste des mailbox n’ayant pas ActiveSync activé

Get-CasMailbox | Where-Object { $_.ActiveSyncEnabled -eq $false }

La commande Get-CasMailbox permet de retourner d’autres informations, il suffit donc de modifier la propriété que l’on utilise comme critère pour obtenir un nouveau filtre.


Récupération de la taille des mailbox

Get-Mailbox | Get-MailboxStatistics | sort TotalItemSize | ft DisplayName, TotalItemSize, Database

Liste des mailbox n’étant pas sous la règle du quota par défaut de la database

Get-Mailbox | Where-Object {$_.UseDatabaseQuotaDefaults -eq $false} | sort ProhibitSendQuota | ft DisplayName, Database, ProhibitSendQuota

Vérifier les permissions d’un utilisateur sur les mailbox

Get-Mailbox | Get-MailboxPermission | Where-Object {$_.User -like "DOMAINE\enguerrand"} | ft AccessRights, IsInherited, Deny -GroupBy identity

Pour ce snippet, il suffit d’ajouter un paramètre à l’instruction Get-Mailbox pour cibler une boîte particulière.


Lister toutes les mailbox par type

Get-Mailbox | sort RecipientTypeDetails | ft DisplayName, Alias, PrimarySmtpAddress -GroupBy RecipientTypeDetails

Visualiser le trafic sur une mailbox

Get-TransportServer | Get-MessageTrackingLog -Start "01/01/1990 02:00:00" -End "02/01/1990 03:00:00" -Recipients enguerrand@domaine.local

Il est possible de remplacer le paramètre -Recipients par -Sender si l’on souhaite avoir un autre point de vue. Les deux paramètres sont cumulables, permettant de centrer la recherche sur un émetteur et un destinataire. Le paramètre -EventID pouvant prendre les valeurs SEND ou RECEIVE par exemple offre la possibilité de n’afficher uniquement les mails effectivement reçus ou envoyés.

Lister les mails reçus sur une mailbox

Get-TransportServer | Get-MessageTrackingLog -Start "01/01/1990 02:00:00" -End "02/01/1990 03:00:00" -Recipients enguerrand@domaine.local -EventID Receive

Vérifier si une mailbox a des éléments supprimés récupérables

Get-Mailbox enguerrand | Get-MailboxFolderStatistics | Where-Object { $_.Name -like "Recoverable Items" -and $_.ItemsInFolder -gt 0 }

Lister les mailbox attachées à des utilisateurs présents dans une OU

Get-Mailbox | Where-Object {$_.DistinguishedName -like "*OU=Sales*"} | select alias
Lien pour marque-pages : Permaliens.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.