Wenn Benutzer aus dem Active Directory gelöscht werden, werden die Exchange Postfächer nicht automatisch gelöscht sondern getrennt. Das bedeutet dass das Postfach zwar noch in der Datenbank vorhanden ist, aber keinen Benutzer mehr zugeordnet ist.
Wenn der zugehörige Benutzer zu einem Postfach erst vor kurzem gelöscht wurde, wird das getrennte Postfach nicht direkt in der Liste der getrennten Postfächer in der Exchange Verwaltungskonsole angezeigt. Möchte man nicht warten bis Exchange selbständig nach getrennten Postfächern sucht, kann man das über den folgenden Befehl selbst anstoßen:
Get-MailboxDatabase | Clean-MailboxDatabase
Danach werden die getrennten Postfächer in der Exchange Verwaltungskonsole angezeigt, dort kann man sie zwar wieder verbinden, aber nicht löschen. Löschen lässt sich das Postfach nur über die GUID des Postfachs. Diese kann man sich so anzeigen lassen:
get-mailboxdatabase | get-mailboxstatistics | Where{ $_.DisconnectDate -ne $null } |fl displayName,Identity,disconnectdate
Möchte man nun das Postfach löschen, kopiert man sich den Wert der bei „Identity“ steht und hängt ihn an den Remove-MailboxDatabase Befehl an:
Remove-mailbox -database „Name der Mailbox Datenbank“ -storemailboxidentity „Wert der bei Identity steht“
Beispiel:
Remove-mailbox -database „MailBoxDatabase01“ -storemailboxidentity 853ad730-7111-4569-ad54-ef002046e97f
Hinweis:
Mit dem Serice Pack 1 gab es hier eine Änderung, genaueres kann hier nachgelesen werden: https://www.frankysweb.de/?p=209
Hallo,
wie kann ich denn beide Befehle zusammenführen um alle getrennten Postfächer zu löschen?
Gruß
Klaus
Hi Klaus,
so zum Beispiel:
$mailboxes = get-mailboxdatabase | Get-MailboxStatistics | where-object { $_.DisconnectDate –notlike ” } | Select displayname, mailboxguid, database
$mailboxes | ForEach { Remove-StoreMailbox -Database $_.Database -Identity $_.MailboxGuid -MailboxState “Softdeleted” -confirm:$false }
Gruß, Frank
Funktioniert gut. Nun erscheint aber der gelöschte Benutzer nicht wieder bei der Postfacherstellung mit vorhandenem Benutzer.
Hallo Frank.
Die Lösung war bei mir folgendes:
Remove-StoreMailbox -database „MB1-2SRV02D“ -Identity „bbfd42dc-0b14-4ed3-aceb-f369159ddaa1“ -MailboxState SoftDeleted
Vielen Dank und Grüße
Rolf
Hallo Rolf,
welcher Fehler tritt denn auf?
Das Vorgehen bei mehreren Datenbanken ist etwas anders, vieleicht hilft dir das weiter:
führe zunächst den Verwaltungsvorgang „clean-mailboxdatabase“ aus:
Get-MailboxDatabase | Clean-MailboxDatabase
Hier brauchst du noch keine Datenbank angeben, aber beim Löschen des getrennten Postfaches. Um zu herauszufinden in welcher Datenbank das Postfach war, erweitere den Befehl „get-mailboxstatistics“ um die Angabe „database“
get-mailboxdatabase | get-mailboxstatistics | Where{ $_.DisconnectDate -ne $null } |fl displayName,Identity,disconnectdate,database
Jetzt solltest du alle getrennten Postfächer aller Datenbanken auf dem Server angezeigt bekommen inklusive der Datenbank in der das Postfach liegt, dann passe diesen Befehl mit den Werten an, die dir get-mailboxstatistics anzeigt:
Remove-mailbox -database “Wert der bei Database steht” -storemailboxidentity “Wert der bei Identity steht”
Wenn das nicht klappt, dann poste doch bitte die Fehlermeldung der Shell,
Gruss, Frank
Hallo Frank.
Ich habe Probleme mit dem löschen und habe mehr als eine Mailbox Datenbank.
Kannst Du weiter helfen?
Grüße
Rolf
Vielen Dank,
genau nach diesem habe ich gesucht.
Hallo,
habe den Befehl oben ausgeführt, es wird mir die Storemailboxidentity angezeigt und ich verwende diese, daraufhin kommt folgende Fehlermeldung:
„Das angegebene Postfach „283e71cc-0068-4830-bfb5-28433fc646b2“ ist nicht in der Datenbank „medium“ vorhanden“
Aber wenn ich in der Verwaltungskonsole/getrenntes Postfach -> nachschaue ist dieses Postfach vorhanden?
Was ist das für ein Problem???
Hallo, gibt es mehr als eine Mailbox Datenbank? Gruss, Frank