Exchange – Email-Adressen Domain aus allen Postfächer löschen

Bei einem Onlinegang zu O365 dürfen sich in den Postfächern nur E-Mail-Adressen befinden, welche auch im O365 als akzeptierte Domain hinterlegt ist. Oft wird dies zwar ohne Probleme möglich sein, aber was ist, wenn man z.B. den Firmennamen gewechselt hat und die alte Domain nicht mehr besitzt / nutzt oder was wahrscheinlich häufiger der Fall sein wird, im Exchange und AD Umfeld wurde mit einer internen Domain gearbeitet, welche entweder gar nicht registriert werden kann, oder welche schon vergeben ist. Hier steht man dann irgendwann an dem Punkt – ok und wie kann ich nun alle alten nicht mehr benötigten E-Mailadressen aus den Postfächern entfernen ohne 1000de von Postfächer manuell und händisch bearbeiten zu müssen?

Die Exchange Management Shell hilft hier den genervten Admin weiter!

Folgendes Script liest zuerst alle Postfächer ein und geht dann jedes Postfach durch und sucht nach einem bestimmten Keyword, was natürlich Eure Domain ist. Wird diese gefunden, löscht das Script eben diese Domain heraus und speichert danach den Account in der veränderten Form wieder ab. Im Grunde ist es so recht einfach ganz viele Mailboxen relativ zeitnah zu bearbeiten. Den Code habe ich selbst erfolgreich beim O365 CleanUp genutzt.

Das Entfernen der Emailadressen mit einer bestimmten Domain ist im Script mit -whatif ausgestattet. D.h. man kann das Skript einfach durchlaufen lassen und nichts passiert. Entstehen keine Fehler und schaut alles ok aus, dann könnt ihr einfach das -whatsif entfernen und das Tool verrichtet seine Arbeit.

Viel Erfolg!

$Mailboxes = Get-Mailbox -ResultSize Unlimited
 
# Alle Mailboxen checken
foreach ($Mailbox in $Mailboxes) {

    # Deine Domain oder ein Teil der Domain
    $Mailbox.EmailAddresses | Where-Object { $_.AddressString -like "*itler*" } | ForEach-Object {
 
        # Das -whatif ermöglicht einen Testlauf - sollte es zu fehlern kommen - schaut Euch diese genau an
        # nicht dass zum Beispiel ein Teil der Suche in einem Namen vorkommt oder ähnliches
        # für den Produktivlauf das -whatif entfernen
        Set-Mailbox $Mailbox -EmailAddresses @{remove = $_ } -whatif
 
        # Was wurde geändert
        Write-Host "Entferne $_ aus $Mailbox Mailbox" -ForegroundColor Green
    }
}
Die mobile Version verlassen