Questo è lo script che ho creato per estrarre i permessi di tutti i calendari presenti in una organizzazione exchange.
Lo script cerca in ogni mailbox le folder di tipo “Calendar” e, per ognuna di esse, estrae i suoi permessi, il risultato viene mandato in output in un file csv.
$mailbox_list = Get-Mailbox -Resultsize Unlimited
foreach ($mailbox in $mailbox_list)
{
$calendari = $mailbox | Get-MailboxFolderStatistics | Where {$_.foldertype -eq “Calendar”}
foreach ($calendario in $calendari)
{
[string]$ID_calendario = $mailbox.PrimarySmtpAddress
$ID_calendario += “:\”
$ID_calendario += $calendario.nameGet-MailboxFolderPermission $ID_calendario | select identity,foldername,user,@{name=”AccessRights”;expression={ [string]::join(“,”,@($_.accessrights)) }} | Export-Csv c:\temp\out.csv -Append
}
}
L’output è nel formato:
#TYPE Selected.Microsoft.Exchange.Management.StoreTasks.MailboxFolderPermission
“Identity”,”FolderName”,”User”,”AccessRights”
“domain.local/BigPharma Spa/Mario Rossi:\Calendario”,”Calendario”,”Giorgio Giorgetti”,”Reviewer”
“domain.local/BigPharma Spa/Mario Rossi:\Calendario”,”Calendario”,”Fabio Guidetti”,”Reviewer”
“domain.local/BigPharma Spa/Mario Rossi:\Calendario”,”Calendario”,”Monica Alberelli”,”Reviewer”
“domain.local/BigPharma Spa/Mario Rossi:\Calendario”,”Calendario”,”Maria Moria”,”Reviewer”
“domain.local/BigPharma Spa/Mario Rossi:\Calendario”,”Calendario”,”Guido Marchesini”,”Reviewer”
“domain.local/BigPharma Spa/Marco Verdi:\Calendario”,”Calendario”,”Default”,”AvailabilityOnly”