Visualizzazione post con etichetta Exchange Management Shell. Mostra tutti i post
Visualizzazione post con etichetta Exchange Management Shell. Mostra tutti i post

venerdì 27 giugno 2014

MS Exchange: Impostare quote di archiviazione su una casella di posta tramite EMS


Per settare le quote di archiviazione di una casella di posta tramite Exchange Management Shell (EMS), è possibile utilizzare il cmdlet Set-Mailbox
La sintassi è la seguente


Set-Mailbox <casella_posta> -IssueWarningQuota <quota> -ProhibitSendQuota <quota> -ProhibitSendReceiveQuota <quota> -UseDatabaseQuotaDefaults $false

ad es.
Set-Mailbox GLUBRANO -IssueWarningQuota 850MB -ProhibitSendQuota 900MB -ProhibitSendReceiveQuota 1GB -UseDatabaseQuotaDefaults $false

Set-Mailbox giovanni.lubrano@contoso.com -IssueWarningQuota 850MB -ProhibitSendQuota 900MB -ProhibitSendReceiveQuota 1GB -UseDatabaseQuotaDefaults $false

Al posto della casella di posta è possibile utilizzare l'Alias, Display Name, Dominio\account o Distinguished Name (DN)

I parametri mostrati nell'esempio sono:

UseDatabaseQuotaDefaults
Consente di specificare se la casella di posta deve utilizzare o meno le impostazioni di quota specificate per il database dove risiede la casella. Nell'esempio abbiamo passato a tale parametro il valore $False, in questo modo le impostazioni di quota specificate per il database dove risiede la casella vengono ignorate.

IssueWarningQuota
Consente di specificare la dimensione della cassetta postale che determina l'invio di un messaggio di avviso all'utente.

ProhibitSendQuota
Consente di specificare la dimensione della cassetta postale raggiunta la quale l'utente non potrà più inviare

ProhibitSendReceiveQuota
Consente di specificare la dimensione della cassetta postale raggiunta la quale l'utente non potrà più inviare e ricevere email

Ai parametri IssueWarningQuota, ProhibitSendQuota, ProhibitSendReceiveQuota vanno passati numeri interi qualificati con una delle seguenti unità:
B (byte)
KB (kilobyte)
MB (megabyte)
GB (gigabyte)
TB (terabyte)
Se il valore non viene qualificato viene considerato come byte.


Exchange Server Storage Quotas
FIG. 1 Exchange Server Storage Quotas

lunedì 23 giugno 2014

MS Exchange: Rimuovere i permessi di Full-Access a un utente su una casella di posta tramite EMS


Nell'articolo MS Exchange: Abilitare un utente in Full-Access su una casella di posta tramite EMS  abbiamo visto come abilitare un utente in full-access su una casella di posta. In questo articolo faremo l'operazione inversa: rimuoviamo i permessi di full-access all'utente da una casella di posta condivisa.
Il cmdlet utilizzato per eseguire l'operazione è Remove-MailboxPermission utilizzando la seguente sintassi
Remove-MailboxPermission <mailbox_da_condividere> -AccessRights FullAccess -user <utente_da_disabilitare> -confirm:$false

ad es.
Remove-MailboxPermission info@contoso.com -AccessRights FullAccess -user GLUBRANO -confirm:$false

Al posto dell'indirizzo di posta primario è possibile utilizzare l'alias, il Distinguished Name (DN), dominio\account oppure l'Immutable ID.
L'opzione -confirm:$false fa in modo che non venga richiesta alcuna conferma per l'esecuzione dell'operazione.


Come già visto nell'articolo relativo all'abilitazione, se volessimo rimuovere più utenti dal Full-Access su una casella di posta possiamo avvalerci di uno script. Lo script mostrato di seguito (Remove-FullAccess.ps1) accetta come parametri la casella di posta condivisa condividere è un file CSV contenente l'elenco degli utenti a cui eliminare il Full-Access sulla casella. 
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 @("UserToDisable")
foreach ($line in $csv) {    
 Remove-MailboxPermission $Arg1 -AccessRights FullAccess -user $line.UserToEnable -confirm:$false
}
Di seguito è possibile effettuare il download dello script.
Download script Remove-FullAccess.ps1

giovedì 19 giugno 2014

MS Exchange: Convertire tipo di mailbox tramite Exchange Management Shell (EMS)


In questo articolo vedremo come convertire il tipo di casella di posta. Gran parte delle conversioni possono essere eseguite solo tramite Exchange Management Shell.
Il cmdlet utilizzato per la conversione è Set-Mailbox insieme al parametro -Type


I valori che è possibile passare a Type sono i seguenti:

Regular
Converte la casella di posta in user mailbox. Casella di posta dell'utente.

Room
Converte la casella in room mailbox. Le room mailbox vengono in genere assegnate a luoghi fissi come possono essere le sale riunioni o strutture per conferenze consentendo una gestione efficiente delle risorse da parte degli utenti. Vengono associate ad account disabilitati in AD. Visualizzando le proprietà di una room mailbox si notano alcune schede denominate Resource General, Resource Policy, Resource Information, Resource In-Policy Requests, Reset Out-Policy Requests. Tali proprietà permettono ad un amministratore di assegnare policy come quella di permettere o negare meeting ricorrenti, quanto tempo in anticipo un utente può prenotare la risorsa ecc.
Room Mailbox Properties
FIG. 1 Room Mailbox Properties



Equipment    
Converte la casella in equipment mailbox. Questo tipo di casella è simile alla room mailbox ma a differenza di quest'ultima viene generalmente associata a dispositivi mobili come laptop, proiettori portabili o veicoli. Anche questo tipo di caselle vengono associate ad account disabilitati in AD.


Equipment Mailbox Properties
FIG. 2 Equipment Mailbox Properties


Shared  
Converte la casella in Shared mailbox. Trattasi di una comune casella di posta condivisa. Vengono associate ad account disabilitati in AD.

Proprio per le loro caratteristiche le room mailbox e le equipment mailbox vengono definite resource mailbox.


Per convertire una user mailbox in shared mailbox possiamo utilizzare il seguente comando da EMS
Set-Mailbox <account_utente> -Type shared
Set-Mailbox <casella_posta_utente> -Type shared

Al posto dell'account utente è possibile indicare l'indirizzo di posta, il display name, l'alias, dominio\account o Distinguished Name (DN).


É possibile eseguire le seguenti conversioni:
da User mailbox a shared mailbox
da User mailbox a resource mailbox
da Shared mailbox a user mailbox
da Shared mailbox a resource mailbox
da Resource mailbox a user mailbox
da Resource mailbox a shared mailbox

Come avrete notato con Set-Mailbox non è possibile convertire una casella di posta in Linked mailbox o, viceversa, da Linked mailbox ad altro tipo. Le Linked mailbox sono caselle di posta a cui può accedere un account utente appartenente ad una foresta trusted. Per convertire una casella a o da Linked mailbox è necessario procedere prima alla sua disconnessione e quindi riconnetterla indicando il tipo di casella desiderato. Tale operazione è possible effettuarla anche tramite GUI.


Connect Mailbox
FIG. 3 Connect Mailbox

Nel caso volessimo trasformare una casella di posta da user mailbox a linked mailbox possiamo procedere nel seguente modo:
  • Prendiamo nota del MailboxGuid e del database della casella di posta utilizzando il seguente comando
    Get-MailboxStatistics -Identity <account_utente> |fl
  • Disconnettiamo la casella di posta
    Disable-Mailbox <account_utente>
  • Per connettere la casella di posta come linked è necessario disporre del dominio\account dell'utente che deve gestire la casella (LinkedMasterAccount) e le credenziali di un account, sullo stesso dominio di quello dell'utente, con le opportune abilitazioni. Partiamo proprio da quest'ultimo. Specifichiamo le credenziali dell'account su dominio trusted abilitato tramite il seguente comando
    $cred=get-credential
  • Procediamo alla connessione della casella disconnessa tramite il cmdled Connect-Mailbox

    Connect-Mailbox <MailboxGuid> -User <account_AD_mailbox> -Database <nome_database> -LinkedMasterAccount <dominio_trusted\utente> -LinkedDomainController <Domain_controller_trusted_domain> -LinkedCredential $cred

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

giovedì 12 giugno 2014

MS Exchange:verificare Exchange ActiveSync, MAPI, OWA, POP o IMAP su una cassetta postale tramite EMS

Nell'articolo MS Exchange: abilitare/disabilitare Exchange ActiveSync, MAPI, OWA, POP o IMAP per una cassetta postale tramite EMS abbiamo visto come attivare alcune caratteristiche sulla casella di posta tramite il comando Set-CASMailbox da Exchange Management Shell (EMS).

E se volessimo verificarne solo lo stato attualmente impostato sulla casella?

Niente di più semplice. Basta utilizzare il comando Get-CASMailbox e indicare la casella di posta (tramite indirizzo di posta, user id o alias).

ad es.
Get-CASMailbox giovanni.lubrano@contoso.com
Get-CASMailbox <user_ID>

get-mailbox <user_id>
Fig. 1 Get-CASMailbox <user_id>

con gli esempi sopra indicati si ottiene, in output, la situazione sullo stato di Exchange ActiveSync, MAPI, OWA, POP e IMAP.



Se invece ci interessa solo una delle caratteristiche possiamo utilizzare la seguente sintassi:

Get-CASMailbox UserName@DomainName |fl PopEnabled
Per visualizzare se il protocollo POP è attivo sulla casella

Get-CASMailbox UserName@DomainName |fl OWAEnabled
Per visualizzare se l'accesso tramite OWA è abilitato sulla casella

Get-CASMailbox UserName@DomainName |fl ImapEnabled
Per visualizzare se il protocollo IMAP è attivo sulla casella

get-CASMailbox UserName@DomainName |fl MapiEnabled
Per visualizzare se il protocollo MAPI è attivo sulla casella

get-CASMailbox UserName@DomainName |fl ActiveSyncEnabled
Per visualizzare se Active Sync è attivo sulla casella


Fig. 2 Get-CASMailbox

That's all

sabato 7 giugno 2014

MS Exchange: abilitare/disabilitare Exchange ActiveSync, MAPI, OWA, POP o IMAP per una cassetta postale tramite EMS


Exchange Management Shell (EMS), introdotto con Microsoft Exchange Server 2007, è un'estensione di Powershell orientata agli amministratori dei server Exchange. Quest'articolo sarà il primo di una lunga (spero) serie relativa ai comandi su EMS. In tali articoli non mi soffermerò sulla storia o sulle funzioni di questa potentissima shell (l'argomento è troppo vasto per essere trattato in articoli su blog) ma mi concentrerò solamente su  determinate operazioni o comandi utili.

In quest'articolo vedremo come attivare/disattivare delle caratteristiche delle caselle di posta su Exchange Server tramite EMS.


Il comando trattato in questo articolo è Set-CasMailbox che ci consente di abilitare/disabilitare le seguenti caratteristiche di una casella di posta:

- Internet Message Access Protocol  (IMAP)
- Post Office Protocol  (POP)
- Microsoft Outlook Web App (OWA)
- Messaging Application Programming Interface (MAPI)
- Microsoft Exchange ActiveSync


Per abilitare il protocollo IMAP sulla casella dell'utente
Set-CASMailbox UserName@DomainName -ImapEnabled $True

Per disabilitare il protocollo IMAP sulla casella dell'utente
Set-CASMailbox UserName@DomainName -ImapEnabled $False

Per abilitare il protocollo POP sulla casella dell'utente
Set-CASMailbox UserName@DomainName -PopEnabled $True

Per disabilitare il protocollo POP sulla casella dell'utente
Set-CASMailbox UserName@DomainName -PopEnabled $False

Per abilitare OWA sulla casella dell'utente
Set-CASMailbox UserName@DomainName -OWAEnabled $True

Per disabilitare OWA sulla casella dell'utente
Set-CASMailbox UserName@DomainName -OWAEnabled $False

Per abilitare il protocollo MAPI sulla casella dell'utente
Set-CASMailbox UserName@DomainName -MAPIEnabled $True

Per disabilitare il protocollo MAPI sulla casella dell'utente
Set-CASMailbox UserName@DomainName -MAPIEnabled $False

Per abilitare Exchange ActiveSync sulla casella dell'utente
Set-CASMailbox UserName@DomainName -ActiveSyncEnabled $True

Per disabilitare Exchange ActiveSync sulla casella dell'utente
Set-CASMailbox UserName@DomainName -ActiveSyncEnabled $False



Ovviamente le opzioni -ImapEnabled, -PopEnabled, -OWAEnabled, -MAPIEnabled, -ActiveSyncEnabled possono essere utilizzate anche contemporaneamente e al posto della casella di posta dell'utente possiamo utilizzare anche il display name, l'alias, il Distinguished Name (DN) o dominio\account AD.
Ad es. se vogliamo abilitare l'accesso tramite OWA e disabilitare il protocollo IMAP possiamo utilizzare il seguente comando
Set-CASMailbox UserName@DomainName -OWAEnabled $True -ImapEnabled $False


E se volessimo agire su più caselle?
In questo caso potremmo preparare un file di testo con all'interno le caselle di posta su cui bisogna agire e quindi creare un ciclo che, per ogni casella di posta elencata all'interno del file, provveda ad effettuare gli opportuni settaggi/abilitazioni.
Procediamo con un esempio: supponiamo di voler abilitare/disabilitare l'accesso tramite OWA ad un elenco di caselle di posta.
Per effettuare questa operazione potremmo procedere in modi diversi. Io ho preferito procedere nel seguente modo:

  • Creato un file con estensione CSV con all'interno elencate le caselle di posta su cui agire. Il file CSV non è altro che un file di testo in cui in ogni rigo è indicata la casella di posta/account su cui agire seguito da invio.
  • Creato un file di script Powershell (file con estensione PS1 da lanciare tramite Exchange Management Shell) contenete i comandi da eseguire e accetta come parametri il nome del file CSV conte


Il file PS1 l'ho nominato EnableDisableOWA.ps1 mentre il file CSV elenco.csv
I due file possono essere scaricati cliccando QUI

- Scompattare i file in una cartella
- Eseguiamo EMS
- lanciamo il file ps1 tramite EMS indicando il percorso completo del file e passando, come parametri, il file CSV e $TRUE o $FALSE a seconda se vogliamo abilitare o disabilitare OWA.

ad es. 
 c:\EnableDisableOWA.ps1 c:\elenco.csv $TRUE
per abilitare OWA su tutte le cartelle elencate in elenco.csv 

Il codice contenuto all'interno del file PS1 è il seguente


param($Arg1,$Arg2)
Set-AdServerSettings -ViewEntireForest $true 
$csv = Import-Csv $Arg1 -Header @("MailboxToEnableDisable")
foreach ($line in $csv) { 
  Set-CASMailbox $Arg1 -OWAEnabled $Arg2
} 

analizziamo passo passo lo script
param($Arg1,$Arg2)
L'istruzione param($Arg1,$Arg2) cattura i parametri passati alla chiamata del file di script. Nel nostro caso il file elenco.csv e $TRUE.

Set-AdServerSettings -ViewEntireForest $true
É utile solo nel caso in cui in Active Directory (AD) siano presenti più domini i cui utenti dispongono di casella di posta. In questo modo vengono gestiti tutti gli oggetti della foresta.

$csv = Import-Csv $Arg1 -Header @("MailboxToEnableDisable")
Importa il file CSV indicato come primo parametro durante la chiamata allo Script EnableDisableOWA.ps1

foreach ($line in $csv) { 
  Set-CASMailbox $Arg1 -OWAEnabled $Arg2
}
Per ogni riga del file CSV viene abilitata/disabilitato l'accesso ad OWA a seconda che sia stato passato il parametro $TRUE o $FALSE nella chiamata a EnableDisableOWA.ps1


Le funzioni del cmdlet Set-CASMailbox non finiscono qui: ci sono altri parametri che permettono di effettuare altre operazioni. Tuttavia le altre operazioni esulano dalla trattazione di questo articolo.