19 Jun 2023, 00:00

Exchange online et Powershell

Share

https://docs.microsoft.com/fr-fr/powershell/exchange/connect-to-exchange-online-powershell?view=exchange-ps

Installation

Install-Module ExchangeOnlineManagement
Import-Module ExchangeOnlineManagement

Si les message ModuleNotFound s’affiche, il faut installer ce module. Depuis mars 2020, il faut forcer TLS 1.2 au minimum, pour assurer l’installation correcte des modules et leurs dépendances :
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

Connect-ExchangeOnline -UserPrincipalName user@domain.com
Si le nom fourni est un admin, il pourra consulter les statistiques des autres boîtes mail.

Connection RPS (remote PowerShell) dépréciée :
Connect-ExchangeOnline -UseRPSSession

Lister les dossiers d’une boîte mail par ordre de taille

$mailbox = "user@domain.com"
(guillemets obligatoires)

Pour la taille de chaque dossier uniquement, sans les sous-dossiers :
Get-EXOMailboxFolderStatistics $mailbox | Select FolderPath,FolderSize,@{ name="FolderSizeBytes"; expression={((($_.FolderSize -replace '^(.*\()(.*)(\sbytes\))$','$2').Replace(',','')) -as [bigint])}}| Sort-Object -Property FolderSizeBytes -Descending | Out-String -Width 10000 | ft

Avec les sous-dossiers :
Get-EXOMailboxFolderStatistics $mailbox | Select FolderPath,FolderAndSubfolderSize,@{ name="FolderAndSubfolderSizeBytes"; expression={((($_.FolderAndSubfolderSize -replace '^(.*\()(.*)(\sbytes\))$','$2').Replace(',','')) -as [bigint])}}| Sort-Object -Property FolderAndSubfolderSizeBytes -Descending | Out-String -Width 10000 | ft

On peut le piper vers un fichier : > report.txt

Afficher les infos générales d’un boîte mail

Get-EXOMailboxStatistics $mailbox