Categorieën
Exchange Online

Email verwijderen uit mailbox via Powershell

We zijn en blijven mensen. Een ongelukje zit in een klein hoekje en voor je het weet gaat er een email de deur uit wat helemaal niet de bedoeling was.

In onderwijsland proberen vooral leerlingen van alles uit. Vooral mail-enabled distributiegroepen die niet goed beveiligd zijn, dat zijn de leukste.

Normaal gesproken zijn distributiegroepen zo ingesteld dat alleen bepaalde groepen hier naartoe mogen emailen.

Correct ingesteld “Bezorgingsbeheer”

Helaas kan ik uit eigen ervaring schrijven dat bovenstaande niet altijd goed ingesteld staat. Maar wat als er tussen 1800 leerlingen een “reply-all” cultuur ontstaat, hoe krijg je al die emails er dan weer uit? Met Powershell! (let op! er is geen weg terug!)

  • Maak verbinding met Exchange Online via Powershell
$UserCredential = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
Import-PSSession $Session -DisableNameChecking
  • Doe een intiele search naar de emails, in het voorbeeld zoeken we naar “Subject:’Virus'”
Get-mailbox | search-mailbox –searchquery "Subject:'virus'" –Logonly –Targetmailbox administrator –Targetfolder Inbox

Om daadwerkelijk over te gaan tot het verwijderen van alle emails met het onderwerp “virus” gebruik je het volgende commando.

Get-mailbox | search-mailbox –searchquery "Subject:'virus'" –DeleteContent

Na elke mailbox-search verschijnt de mededeling of je zeker bent om het te verwijderen. Die melding negeren? Voeg “-Force” toe achter “-DeleteContent”.

Extra

Je kan de mailbox-search ook beperken tot een kleinere groep. Bijvoorbeeld alleen email adressen met “@leerling.testschool.nl” als email adres. Dat maakt de zoekactie een stuk sneller.

$mailboxes = Get-Mailbox -Filter { WindowsEmailAddress -like "*@leerling.testschool.nl" }
foreach($mailbox in $mailboxes){
search-mailbox -Identity $mailbox.Alias –searchquery "Subject:'virus'" –DeleteContent -Force
}

Bronnen:

https://docs.microsoft.com/en-us/powershell/exchange/exchange-online/connect-to-exchange-online-powershell/connect-to-exchange-online-powershell?view=exchange-ps

https://docs.microsoft.com/en-us/powershell/module/exchange/mailboxes/Search-Mailbox?redirectedfrom=MSDN&view=exchange-ps