Logo faq-o-matic.net
Logo faq-o-matic.net

Exchange-2007-Migration: Alias bereinigen

von veröffentlicht am20. August 2009, 11:25 Uhr Kurzlink und Zitatlink einblenden
Kategorie Kategorie: Exchange, Migration   Translate with Google Translate Translate EN   Die angezeigte Seite drucken

Im Unterschied zu den Vorgängerversionen erlaubt Exchange 2007 keine Leerzeichen in den Alias-Namen von Mailboxen, Kontakten und Verteilergruppen. Der Grund liegt darin, dass Exchange 2007 standardmäßig aus dem Alias SMTP-Adressen erzeugen will, in denen Leerzeichen nicht auftauchen dürfen. Damit sind auch einige andere Zeichen nicht erlaubt, wobei Exchange bei manchen anderen Zeichen selbstständig eine Ersetzung in den SMTP-Adressen ausführt.

Glücklicherweise lassen vorhandene Alias-Einträge sich gesammelt mit einem PowerShell-Kommando bereinigen. Die nötige Syntax findet sich hier:

[How to Remove Spaces From Recipient Aliases by Using the Exchange Management Shell]
http://technet.microsoft.com/en-us/library/bb851499.aspx

Zu dem Artikel sind aber ein paar Ergänzungen nötig:

  • Die dort genannte Syntax gibt immer nur die ersten 1000 Einträge zurück. In größeren Umgebungen sollte man hinter “Get-Mailbox” also noch den Parameter “-ResultSize” anhängen. Ist die Umgebung nicht “riesig”, sondern nur “groß”, kann man als Wert dann “unlimited” angeben, sonst eben einen passenden Zahlenwert:
    Get-Mailbox –ResultSize unlimited | Where {$_.Alias -like "* *"} | ForEach-Object {Set-Mailbox $_.Name -Alias:($_.Alias -Replace " ","")}
  • Statt das Leerzeichen einfach zu entfernen, kann man es natürlich durch ein gültiges Zeichen ersetzen. Dazu ändert man ganz am Ende die Replace-Angabe, für einen Unterstrich etwa so: -Alias:($_.Alias -Replace " ","_")
  • Es empfiehlt sich, vor dem Replace erst eine Suche auszuführen. Dazu lässt man den Teil mit “ForEach-Object” weg.
  • Natürlich ist auch eine vorherige Datensicherung des AD eine sehr gute Idee.
  • PowerShell meldet bei jeder Ausführung für jeden ungültigen Alias eine Warnung. Das ist normal, wenn auch unhandlich.
  • Aus irgendeinem Grund erfasst in größeren Netzwerken das Kommando nicht gleich alle Objekte, die bearbeitet werden müssen. Daher ist es sinnvoll, nach der Ausführung eine erneute Suche (ohne ForEach-Object) auszuführen und das Replace ggf. zu wiederholen.
  • Manche Objekte will das Kommando nicht konvertieren. Diese sollte man dann per Hand korrigieren.
  • Und: Nur die Mailboxen zu bearbeiten, reicht natürlich nicht aus. Um auch Kontakte und Verteilergruppen zu erfassen, variiert man das Kommando, indem man jeweils “Get-Mailbox” und “Set-Mailbox” durch die passenden Cmdlets ersetzt:
    • Get-/Set-MailContact
    • Get-/Set-DistributionGroup

© 2005-2023 bei faq-o-matic.net. Alle Rechte an den Texten liegen bei deren Autorinnen und Autoren.

Jede Wiederveröffentlichung der Texte oder von Auszügen daraus - egal ob kommerziell oder nicht - bedarf der ausdrücklichen Genehmigung durch die jeweiligen Urheberinnen oder Urheber.

Das Impressum findet sich unter: http://www.faq-o-matic.net/impressum/

Danke, dass du faq-o-matic.net nutzt. Du hast ein einfaches Blog sehr glücklich gemacht!