Office 365: Eliminazione multipla di e-mail indesiderate

Microsoft Office 365

In questo articolo vedremo come eliminare da una o più mailbox una serie di email indesiderate, come sempre prendendo in esame un caso reale. Un UPS in fault ha cominciato ad inviare email durante tutta la notte recapitandone addirittura 17.000 all’intera organizzazione intasando le mailbox degli utenti con migliaia di messaggi.

 

Come possiamo supporre l’opzione di eliminarle a mano, se pur più semplice, nel caso specifico non è minimamente percorribile. Per raggiungere il nostro obiettivo avremo bisogno della nostra fidata e indispensabile PowerShell

 

Configurazione Permission

Per prima cosa dovremo accedere come amministratore al nostro tenant per settare le relative permission all’interno dell’Exchange Admin Center . Questa operazione è fondamentale al fine di poter utilizzare correttamente i cmdlet PowerShell necessari.

 

Il parametro  DeleteContent appartenente al cmdlet Search-Mailbox richiede che l’utente amministratore sia membro dell’admin role Mailbox Import Export Management (nome dell’admin role scelto durante l’inserimento) mentre lo stesso search-mailbox richiede che l’utente abbia le permission per il ruolo Discovery Management.

 

In Exchange Admin Center -> Permissions -> Admin Roles aggiungere l’utente amministratore come membro del ruolo Discovery Management come indicato in figura 1.

 

Figura 1
Figura 1 – Aggiunta Permessi

 

Cliccare sul simbolo + ed aggiungere l’utente amministratore come membro del ruolo Mailbox Import-Export (attenzione: l’admin role va aggiunto, di default non è presente) come indicato in figura 2.

 

Figura 2
Figura 2 – Aggiunta Utente

 

NB: è necessario effettuare il logoff dal tenant e da tutte le sessioni PowerShell attive per poter applicare le permission appena settate.

 

Ricerca Contenuti

Accedere di nuovo al tenant fornendo le credenziali dell’amministratore tramite il portale su https://portal.office365.com ed andare su Admin Centers -> Security & Compliance sotto  il ramo o se preferite direttamente su https://protection.office.com come indicato in figura 3.

 

Figura 3
Figura 3 – Security & Compliance

 

 

E’ il momento di verificare quanti messaggi indesiderati sono presenti nell’intera organizzazione. Procedete cliccando su Search & Investigation e poi su Content Search , cliccare sul bottone + e aggiungere la query per la ricerca più adatta alle vostre esigenze. In questo caso per intercettare tutti i messaggi è stato scelto il serial number dell’UPS presente nel corpo di ogni messaggio ricevuto. Come si nota nella figura 4 sono stati trovati 17066 messaggi e-mail.

 

NB: Non è possibile utilizzare il cmdlet “Content search” con il parametro “-Purge” per eliminare tutti i messaggi! Questo comando è in grado di eliminare solo fino a 10 messaggi per volta.

 

Figura 4
Figura 4 – Content Search

 

Connessione al Tenant Tramite PowerShell

Creare una sessione remota di PowerShell, fornendo le credenziali di accesso al proprio tenant tramite i comandi seguenti:

# Inserire le credenziali
$Office365Cred = Get-Credential

# Creare la sessione remota
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ `
-Credential $Office365Cred -Authentication Basic –AllowRedirection

# importare la sessione
Import-PSSession $Session

 

Utilizzare il cmdlet Search-Mailbox specificando il tipo e il contenuto della query, figura 5. Il parametro -DeleteContent cancella direttamente gli item quindi bisogna porre la dovuta attenzione.

 

Il mio consiglio è quello di verificare la query con il parametro -EstimateOnly prima di passare il parametro -DeleteContent in maniera definitiva. Per la soluzione di questo problema è stato usato il corpo del messaggio per  eseguire la query ma naturalmente è possibile usare anche altri switch come ad esempio Subject.

 

# Verificare la correttezza dei risultati con il parametro -EstimateResulOnly

Search-Mailbox -Identity "Andrea Gallazzi" -SearchQuery 'Body:"JA0332015821"' -EstimateResultOnly

# Eliminare tutte le mail che contengono il seriale dell'UPS nel Body 

Search-Mailbox -Identity "Andrea Gallazzi" -SearchQuery 'Body:"JA0332015821"' -DeleteContent

 

Figura 6
Figura 5 – Search-Mailbox PowerShell

Se invece volessimo cancellare i messaggi e-mail in tutte le mailbox  eseguite il comando PowerShell seguente:

# Eliminare le e-mail in base ad una query in tutte le mbx del tenant

Get-Mailbox | Search-Mailbox  -SearchQuery 'Body:"JA0332015821"' -DeleteContent

 

Conclusione

Nei passaggi precedenti abbiamo visto come settare correttamente i permessi e i ruoli amministratore su Exchange Online o Exchange Server 2016 e come eliminare una serie predeterminata di messaggi e-mail da una o più mailbox in un tenant di Office 365 o su Exchange Online on-premise in base ad una determinata query.

 

Link Utili