Le script présenté dans cet article va vous permettre d'exporter l'ensemble des droits (accès total, envoyer en tant que, envoyer de la part de) dans un fichier CSV.

Il affiche également les droits de manières visuelles sur la fenetre PowerShell... de quoi rapidement voir qui peut faire quoi ! 

N'hésitez pas à remonter les eventuelles problématiques rencontrées ou vos souhaits de modifications

Vous pouvez récupérer le script ici :  technet

Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010 -ErrorAction SilentlyContinue 
 
$domaine = read-host "Specify our AD domain without extension" 
$path = read-host "Path for CSV, like 'c:\CSV\right.csv'" 
 
 
Get-Mailbox -Resultsize Unlimited | ?{$_.Name -notlike "administrateur" -and $_.Name -notlike "discovery*"} | foreach { 
 
$SMTP = Get-Mailbox $_ | select -ExpandProperty PrimarySmtpAddress 
 
$sendas = Get-Mailbox $_ | Get-ADPermission | ?{$_.ExtendedRights -like "*send-as*" -and $_.User -like "$domaine\*"} | Select -ExpandProperty User | Select -ExpandProperty SecurityIdentifier | Select -ExpandProperty Value | foreach {get-aduser $_ | select -ExpandProperty ObjectGUID | Select -ExpandProperty Guid}
 
$full = Get-Mailbox $_ | Get-MailboxPermission | ?{$_.AccessRights -like "*full*" -and $_.User -like "$domaine\*" -and $_.IsInherited -ne "False"} | Select -ExpandProperty User | Select -ExpandProperty SecurityIdentifier | Select -ExpandProperty Value | foreach {get-aduser $_ | select -ExpandProperty ObjectGUID | Select -ExpandProperty Guid} 
 
$Behalf = Get-mailbox $_ | Select -ExpandProperty GrantSendOnBehalfTo | select -ExpandProperty ObjectGuid | select -ExpandProperty Guid 
 
foreach ($_ in $sendas) { $mailbox = get-mailbox $_ -ErrorAction SilentlyContinue | select -ExpandProperty PrimarySmtpAddress | select -ExpandProperty Address 
if ($mailbox -ne $null) { 
 
write-host -ForegroundColor Green "$mailbox à le droit d'envoyer en tant que $SMTP" 
 
$table=@" 
$SMTP;1;$mailbox 
"@ 
 
 $table | Add-Content "$path"}} 
 
foreach ($_ in $full) { $mailbox = get-mailbox $_ -ErrorAction SilentlyContinue | select -ExpandProperty PrimarySmtpAddress | select -ExpandProperty Address 
 
if ($mailbox -ne $null) { 
 
write-host -ForegroundColor Yellow "$mailbox à le droit total sur la boite $SMTP" 
 
$table=@" 
$SMTP;3;$mailbox 
"@ 
 
 $table | Add-Content "$path"}} 
 
foreach ($_ in $Behalf) { $mailbox = get-mailbox $_ -ErrorAction SilentlyContinue | select -ExpandProperty PrimarySmtpAddress | select -ExpandProperty Address 
if ($mailbox -ne $null) { 
write-host -ForegroundColor cyan "$mailbox à le droit d'envoyer de la part de $SMTP" 
 
$table=@" 
$SMTP;2;$mailbox 
"@ 
 
 $table | Add-Content "$path"}}}