Site icon Gioxx.org

PowerShell e Office 365: a proposito di archiviazione online

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?

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?

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!

Correzioni, suggerimenti? Lascia un commento nell'apposita area qui di seguito o contattami privatamente.
Ti è piaciuto l'articolo? Offrimi un caffè! ☕ :-)

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! :-)

Condividi l'articolo con i tuoi contatti:
Exit mobile version