lunedì 16 giugno 2014

MS Exchange: Abilitare un utente in Full-Access su una casella di posta tramite EMS

In quest'articolo illustrerò come fornire i permessi di Full-Access su una casella di posta elettronica tramite Exchange Management Shell (EMS).
Il cmdlet per fornire i permessi in full access ad un utente su una casella di posta è Add-MailboxPermission.
La sintassi è la seguente:
Add-MailboxPermission <mailbox_da_condividere> -AccessRights FullAccess -user <utente_da_delegare>

ad es.
Add-MailboxPermission info@contoso.com -AccessRights FullAccess -user giovanni.lubrano@contoso.com
Add-MailboxPermission info@contoso.com -AccessRights FullAccess -user GLUBRANO


Al posto dell'indirizzo di posta primario è possibile utilizzare l'alias, il Distinguished Name (DN), dominio\account oppure l'Immutable ID.

AutoMapping
A partire da Exchange Server 2010 SP1 è stata introdotta una nuova funzionalità che consente ai client Outlook 2007 e successivi, tramite il servizio di individuazione automatica, di agganciare automaticamente le caselle di posta su cui l'utente è abilitato in Full-Access. Tale funzionalità è chiamata AutoMapping. Ciò può semplificare la vita all'utente che non deve configurarsi manualmente le caselle di posta condivise, tuttavia, se l'utente è abilitato in Full-Access ad un numero elevato di caselle, potrebbe comportarte un problema di prestazioni di Outlook. In Exchange 2010 SP1 non è in alcun modo possibile disattivare questa funzionalità mentre in Exchange 2010 SP2 è possibile disabilitarla utilizzando la shell.


Utilizzando l'opzione -AutoMapping con il cmdlet Add-MailboxPermission in EMS è possibile forzare l'abilitazione/disabilitazione di tale funzionalità quando deleghiamo un utente in full access su una casella di posta.

Per disabilitare l'AutoMapping
Add-MailboxPermission <mailbox_da_condividere> -AccessRights FullAccess -user <utente_da_delegare> -AutoMapping $FALSE

Per abilitare nuovamente l'automapping

Add-MailboxPermission <mailbox_da_condividere> -AccessRights FullAccess -user <utente_da_delegare> -AutoMapping $TRUE

Quando si forniscono i permessi in Full-Access su una casella con l'AutoMapping attivato, Exchange provvede:

  • a popolare l'attributo msExchDelegateListLink in Active Directory sull'account della casella condivisa (viene aggiunto l'utente delegato);
  • a popolare l'attributo MsExchDelegateListBL in AD sull'account dell'utente delegato. L'attributo contiene la casella di posta su cui l'utente è stato abilitato in full-access con AutoMapping attivo. Outlook interroga tale attributo per auto-configurare la casella di posta condivisa.


Tale processo funziona perfettamente nel caso di permessi assegnati individualmente agli utenti ma in molte aziende l'assegnazione di permessi viene gestita tramite gruppi e in questi casi l'AutoMapping non funziona. Quando un gruppo viene delegato in Full-Access su una casella i permessi vengono ereditati anche dai membri ma l'attributo msExchDelegateListBL viene modificato solo al gruppo e non ai suoi membri.
Un workaround a questo tipo di problema è quello di crearsi uno script che, passati come parametri la casella di posta e il gruppo, fornisce i permessi Full-Access a tutti gli utenti appartenenti al gruppo. Nel caso un utente venga aggiunto successivamente al gruppo in AD possiamo rieseguire lo script oppure abilitare singolarmente l'AutoMapping all'utente con il cmdlet Add-MailboxPermission e il paramentro -AutoMapping $True.


Se vogliamo abilitare più utenti in Full-Access su una casella di posta possiamo avvalerci di uno script. Lo script che illustrerò di seguito (Add-FullAccess.ps1) accetta come parametri la casella di posta da condividere e un file CSV contenente l'elenco degli utenti da abilitare in Full-Access sulla casella. Nello script viene forzata la disabilitazione dell'AutoMapping. Rimuovendo il parametro -AutoMapping $False o passandogli il valore $True, l'AutoMapping verrà attivato. Ovviamente è possibile modificare lo script in modo tale che possiamo decidere se abilitare o meno l'AutoMapping in base ad un apposito parametro passato nella chiamata allo stesso.


Esempio di utilizzo dello script:
c:\scripts\Add-FullAccess.ps1 info@contoso.com  c:\scripts\elenco.csv


param($Arg1,$Arg2)
Set-AdServerSettings -ViewEntireForest $true 
$csv = Import-Csv $Arg2 -Header @("UserToEnable")
foreach ($line in $csv) {    
 Add-MailboxPermission $Arg1 -AccessRights FullAccess -user $line.UserToEnable -AutoMapping $False
} 

Per quanto riguarda lo script per abilitare l'AutoMapping a tutti gli utenti appartenenti ad un gruppo possiamo creare uno script a cui passare, tramite parametri, la mailbox da condividere e il nome del gruppo. Lo script provvederà ad abilitare l'AutoMapping a tutti gli utenti appartenenti al gruppo

ad es.
c:\scripts\Add-FullAccessGroup.ps1 info@contoso.com  GruppoAD


param($Arg1,$Arg2)
Set-AdServerSettings -ViewEntireForest $true 
$DL = Get-distributiongroupmember $Arg2 | Select-Object -ExpandProperty Name
foreach ($MEMBER in $DL ) {
 Add-MailboxPermission $Arg1 -AccessRights FullAccess -User $MEMBER -AutoMapping $True
}
I più pigri possono scaricare i 2 script tramite il link sottostante
Download Scripts

Nessun commento:

Posta un commento

I messaggi sono soggetti a moderazione da parte dell'amministratore prima della loro pubblicazione.