La scorsa settimana ho raccolto e pubblicato alcuni comandi d’esempio PowerShell per mettere in piedi forward o redirect degli indirizzi di posta elettronica. Nonostante la formula rimanga tale, cambia l’argomento principale. Oggi ti parlo di archiviazione, quella fatta online su server Exchange in cloud, per chi ha sottoscrizioni Office 365 di tipo Enterprise (E1/2/3).
Nel caso tu non lo ricordassi, la casella di posta elettronica principale ha infatti un limite imposto di 50GB, oltre i quali non permetterà più di inviare o ricevere comunicazioni, costringendo l’utente all’utilizzo dell’archivio. Outlook permette la creazione di un file PST in locale, io personalmente suggerisco l’utilizzo dell’in-Place Archive di Exchange.
Per partire, collegati via PowerShell al tuo tenant Exchange (se non sai come procedere, puoi dare un’occhiata qui).
Tutti i consigli e le stringhe qui di seguito hanno effetto su caselle di posta personali tanto quanto Shared Mailbox (si, anche le Shared Mailbox possono avere un loro archivio se a gestirle in Full Access ci sono delle utenze con licenza valida di tipo E1/2/3).
Abilitare l’archivio per il singolo utente
Enable-Mailbox mario@contoso.com -Archive
Cosa ti serve sapere?
mario@contoso.com
è l’indirizzo sul quale attivare la funzione di In-Place Archive.-Archive
non necessita di ulteriore parametro. Occhio a non selezionare (con un colpo di tabulatore) il parametro-ArchiveName
, manco a dirlo quello esegue un comando del tutto differente (e si aspetta un ulteriore input a video, nda).
Chi ha l’archivio abilitato?
Per sapere quali sono le caselle di posta personali che hanno un archivio In-Place abilitato, ti basterà chiederlo a Exchange stesso:
Get-Mailbox -ResultSize unlimited -Filter { ArchiveStatus -Eq "Active" -AND RecipientTypeDetails -eq 'UserMailbox'}
L’operazione potrebbe impiegare qualche minuto, tutto si basa sulla quantità di caselle di posta registrate sul tenant (che verranno intercettate tutte grazie al -ResultSize unlimited
). Se invece desideri filtrare le caselle di posta condivise, ti basterà modificare il tipo di recipient da prendere in esame (che passa da UserMailbox
a SharedMailbox
):
Get-Mailbox -ResultSize unlimited -Filter { ArchiveStatus -Eq "Active" -AND RecipientTypeDetails -eq 'SharedMailbox'}
La lista ti verrà presentata sotto forma di tabella, con alcuni dettagli subito a tua disposizione (Name, Alias, ServerName, ProhibitSendQuota).
Possibilità di filtrare
Ho avuto la necessità di filtrare e ottenere a video le caselle di posta con archivio abilitato ma appartenenti a uno specifico dominio. Il comando sopra resta praticamente lo stesso, va aggiunta però la ricerca in fondo, per capirci:
Get-Mailbox -ResultSize unlimited -Filter { ArchiveStatus -Eq "Active" -AND RecipientTypeDetails -eq 'UserMailbox'} | where { $_.PrimarySmtpAddress -match "@contoso.com" }
Perché nonostante nella tabella mostrata a video dalla semplice ricerca di tutti gli archivi non risulti la colonna del PrimarySMTPAddress
, non vuol dire che tu non possa metterlo in gioco. Ogni caselle ne ha uno, tu puoi ovviamente impostare su di lui un ulteriore filtro per ottenere esclusivamente i risultati che ti interessano, scartando gli altri :-)
Dettagli sul singolo archivio
Per ottenere informazioni specifiche sull’archivio di un singolo utente, puoi lanciare un semplice comando:
Get-Mailbox mario@contoso.com | fl Name,*Archive*
Che ti restituirà dettagli come il Guid o lo stato (e non solo):
Name : mario.rossi ArchiveDatabase : EURPR07DG112-db195 ArchiveGuid : 78f9012f-e456-4123-b0ff-3cd123876543 ArchiveName : {In-Place Archive - Mario Rossi} JournalArchiveAddress : ArchiveQuota : 100 GB (107,374,182,400 bytes) ArchiveWarningQuota : 90 GB (96,636,764,160 bytes) ArchiveDomain : ArchiveStatus : Active ArchiveState : Local DisabledArchiveDatabase : DisabledArchiveGuid : 00000000-0000-0000-0000-000000000000 ArchiveRelease : E15
Come operare su più caselle?
Si ricorre a un file CSV, come sempre. Ti ricordi quello usato nel precedente articolo? Beh, per assurdo potresti riutilizzarlo! Dato che nella prima colonna avevo inserito un indirizzo di posta sorgente, potresti pensare di dare in pasto la stessa colonna al foreach
per abilitare l’archivio a tutti.:
Import-Csv C:\temp\utenti.csv | foreach { Set-Mailbox $_.Sorgente -Archive }
Cosa ti serve sapere?
C:\temp\utenti.csv
è il file che ho utilizzato, ovviamente tu potresti averne uno con nome e posizione differenti, basta dare in pasto alla PowerShell il giusto puntamento.- La colonna 1 del mio file aveva titolo “Sorgente“, la colonna 2 in questo caso non serve a nulla, la tengo solo perché avevo il file CSV già pronto!
Il file CSV era così composto (e tale è rimasto):
Dubbi?
Trovi i riferimenti ufficiali sulle funzioni di Archivio In-Place e gestione dello stesso via ECP, nell’area Technet di Microsoft, a questo URL per la precisione: technet.microsoft.com/en-us/library/jj984357(v=exchg.150).aspx
Se vuoi invece discutere gli esempi riportati sopra, l’area commenti è sempre a tua totale disposizione :-)
Buon lavoro!
L'articolo potrebbe non essere aggiornato
Questo post è stato scritto più di 5 mesi fa, potrebbe non essere aggiornato. Per qualsiasi dubbio ti invito a lasciare un commento per chiedere ulteriori informazioni! :-)