Microsoft Exchange – Universelle Linked Mailboxes Migration: So gelingt der Umzug in die Ressourcendomäne

In diesem Blogeintrag erfahren Sie, was eine Ressourcendomäne ist, wie Sie diese aufbauen und darin Microsoft Exchange mit Linked Mailboxes konfigurieren können. Außerdem erlernen Sie eine universelle Methode, mit der Postfächer von jeder Exchange Version mit einem Export in .pst Dateien über PowerShell in eine bestehende Exchange Umgebung migriert werden können.

Ein mögliches Szenario für die Migration von Postfächern zu Linked Mailboxes ist die Eingliederung einer Abteilung, die zuvor einen eigenen Exchange Server betrieb, in eine bestehende Exchange Umgebung. Eine Zentralisierung dieses Dienstes wird vor allem jetzt mit der Veröffentlichung von Exchange Server 2019 und dessen immensen Hardwareanforderungen immer sinnvoller. Dabei kann die Domäne der Abteilung mitsamt ihrer Domänencontroller als Anmeldedomäne erhalten werden, um z.B. eine schnelle Anmeldung für die Nutzer zu gewährleisten. Eine solche Domäne wird dann als vertrauenswürdige Domäne zur Ressourcendomäne hinzugefügt.

Ressourcendomäne

Eine Ressourcendomäne oder auch Ressourcenforest beherbergt sämtliche Serverdienste einer Umgebung. Das kann z.B. Exchange, Teams, Lync, SharePoint usw. sein. Das Gegenstück dazu bilden die sogenannten Anmeldedomänen, welche lediglich die Benutzer und Clients in ihrem Active Directory enthalten. Von der Ressourcendomäne wird dann ein Trust zur Anmeldedomäne aufgebaut. Eine solche Aufteilung bietet zahlreiche Vorteile und gilt heutzutage bei sehr großen Umgebungen als Best Practice.

  • Sicherheit: Die Ressourcendomäne enthält bis auf Administratorkonten und deaktivierten Benutzerkonten für Postfächer keinerlei normale Benutzer, welchen der Zugriff auf Serverdienste standardmäßig durch eine grundlegend bestehende Trennung verwehrt wird.

  • Zentralisierung: Bei großen Unternehmen mit vielen Tochterfirmen bietet sich die Zentralisierung der Ressourcen als Kostensparmaßnahme an. Dabei stellen die Tochterfirmen nur noch eine Anmeldedomäne bereit.

  • Stabilität: Beim Ausfall einer Anmeldedomäne läuft die Ressourcendomäne unbeschadet weiter.

  • Migration: Möchte man beispielsweise eine neue Tochterfirma oder Abteilung eingliedern, so genügt es lediglich ein Trust zu deren Anmeldedomäne aufzubauen. Es müssen nicht aufwändig Nutzer im AD migriert werden.

Grundlegend kann die Ressourcendomäne also als ein Hoster fürzusammenhängende Unternehmen und deren Benutzer gesehen werden. Ein beispielhafter Aufbau einer solchen Struktur wird in Abbildung 1 dargestellt.

Abbildung 1: Ressourcendomäne

Abbildung 1: Ressourcendomäne

Linked Mailbox

Bei einer Linked Mailbox wird in der Ressourcendomäne ein deaktiviertes Benutzerobjekt für das Postfach angelegt. Dieses Benutzerobjekt ist über die SID mit dem eigentlichen Benutzer der Anmeldedomäne verknüpft. Das heißt, dass zum Beispiel eine Passwortänderung des Benutzers auch eine Passwortänderung des verknüpften Benutzerobjekts und dessen Postfach zur Folge hat.

Herstellen eines Trusts

Öffnen Sie zunächst das Active Directory Domains and Trusts Snap-In in der Ressourcendomäne.

domains_and_trusts_1.JPG

Rechtsklicken Sie auf Ihre primäre Domäne und klicken auf Properties.

domains_and_trusts_2.JPG

Wechseln Sie in den Reiter Trusts.

Klicken Sie auf New Trust…

Im ersten Übersichtsfenster klicken Sie auf Next.

Geben Sie die Domäne ein, zu der ein Trust hergestellt werden soll.

domains_and_trusts_3.JPG

In diesem Schritt können sie zwischen einem Forest Trust und einem External Trust wählen. Ein Forest Trust stellt eine transitive Vertrauensstellung zu allen Kinderdomänen beider Domänen her. Bei einem External Trust wird nur eine Vertrauensstellung zwischen den beiden Domänen hergestellt und es findet keine transitive Vererbung statt.

domains_and_trusts_3.1.JPG

Im folgenden Schritt haben Sie die Möglichkeit zwischen einem Two-way (bidirektional) oder One-way (unidirektional) Trust auszuwählen. Wählen Sie hier entweder Two-way oder One-way: outgoing. Handelt es sich bei der Domäne des Exchange Servers um eine reine Ressourcendomäne reicht One-way: outgoing aus.

domains_and_trusts_4.JPG

Wählen Sie im nächsten Fenster Both this domain and the specified domain aus. Dies vereinfacht das Herstellen der Vertrauensstellung insofern, dass wir diesen gesamten Ablauf nur einmal ausführen müssen.

Authentifizieren Sie sich mit dem Domänenadministrator der externen Domäne.

domains_and_trusts_5.JPG

Wählen Sie Domain-wide authentication aus, sofern Sie allen Benutzern der externen Domäne eine Authentifizierung erlauben möchten. Diese Option sollte für die meisten Umgebungen passend sein.

domains_and_trusts_6.JPG

Zuletzt wird eine Übersicht der ausgewählten Optionen dargestellt, anhand der Sie Ihre getroffenen Einstellungen vor der endgültigen Konfiguration nochmals überprüfen können

domains_and_trusts_7.JPG

Im Anschluss kann der Trust noch überprüft werden.

domains_and_trusts_8.JPG

Export der Postfächer

Exchange Server 2003 & 2007

Bei diesen antiken Versionen gestaltet sich der Export der Postfächer als relativ aufwändig. Zunächst muss erst einmal ein neuer 32bit Client mit folgender Konfiguration eingerichtet werden:

  • 32bit Windows Server 2003 SP2/R2 / 2008 bzw. Windows XP/Vista/7

  • Exchange Server 2007 Management Tools [1]

  • Outlook 2003 oder 2007

Wobei Outlook 2003 nicht zu empfehlen ist, da es auf 4000 Elemente pro Ordner beim Export beschränkt ist. Am einfachsten ist es, eine virtuelle Maschine mit Windows 7 und Outlook 2007 aufzusetzen.

Ebenfalls unterscheidet sich der PowerShell-Befehl zu den neuen Versionen, nämlich Export-Mailbox [2]. Dieser simple PowerShell-Befehl exportiert Ihnen alle Postfächer in .pst Dateien:

Get-Mailbox -ResultSize unlimited -RecipientTypeDetails UserMailbox | foreach { $_ | Export-Mailbox -PSTFolderPath (“C:\" + $_.EmailAddresses[0].SmtpAddress + ".pst") -confirm:$false}

Exchange 2010, 2013 & 2016 

Bei den neueren Exchange Versionen kann ganz einfach das Cmdlet New-MailboxExportRequest [3] direkt auf dem Exchange Server in der Exchange Management Shell ausgeführt werden. Dabei wird ein Task erstellt, welcher unter anderem automatisch auf weitere Exchange Server verteilt wird. Analog zum obigen Befehl kann auch hier mit einem Einzeiler der Export für alle Postfächer durchgeführt werden.

Get-Mailbox -ResultSize unlimited -RecipientTypeDetails UserMailbox | foreach { $_ | New-MailboxExportRequest -FilePath ("\\fileserver\share\" + $_.EmailAddresses[0].SmtpAddress + ".pst")}

Dabei muss FilePath ein UNC-Pfad sein, sprich ein freigegebener Ordner, damit alle Exchange Server auf den Pfad zugreifen können.

Falls der Export fehlschlägt, liegt dies häufig daran, dass der aktuelle Benutzer keine Berechtigungen hat, um diese Aktion durchzuführen. Führen Sie zum Erteilen der Berechtigungen folgenden Befehl in der PowerShell aus:

New-ManagementRoleAssignment -Role "Mailbox Import Export" –User domain\user.name

Eine Sonderrolle nehmen bei jeder Exchange Migration die Shared Mailboxes ein. Bei der Migration zwischen verschiedenen Exchange Versionen treten im Zusammenhang mit diesen häufig Probleme auf.

Vorbereitung des Ziel-Exchange

Akzeptierte Domäne

Zunächst muss sichergestellt werden, dass Ihr Exchange Server in der Ressourcendomäne die E-Mails aller Ihrer Domänen entgegennimmt. Dies erreichen Sie lokal, indem Sie die Domänen als akzeptierte Domänen hinzufügen. Für den externen Empfang müssen später selbstverständlich noch DNS-Konfigurationen angepasst werden. Die Domänen müssen nicht namentlich identisch zu Ihrer Anmelde- oder Ressourcendomäne sein. Vielmehr ist dies die Domäne, unter der Ihre User E-Mails empfangen z.B. nachname@company.com.

  1. Öffnen Sie die Exchange Management Console bzw. das Exchange Admin Center

  2. Wechseln Sie die Ansicht zu Organization Configuration / Hub Transport / Accepted Domains

  3. Klicken Sie auf New Accepted Domain…

  4. Geben Sie den Namen der zu akzeptierenden Domänen an und wählen Authorative Domain aus.

accepted_domain_1.JPG

Oder ganz einfach über die Exchange Management Shell mit dem Cmdlet New-AcceptedDomain [4]

New-AcceptedDomain -Name uni.edu -DomainName uni.edu -DomainType Authorative

Erstellen Sie danach eine oder mehrere Organisationseinheiten (z.B. eine für jede Domäne), in welcher später die Benutzerobjekte der Linked Mailboxes landen sollen. Bevor wir die Linked Mailboxes erstellen, empfiehlt es sich für die Organisationseinheit(en) zunächst die E-Mail Adressrichtlinie zu setzen damit das gewünschte E-Mail Adressformat samt der korrekten Domäne für die Organisationseinheit gilt. Dies erspart uns nach dem Erstellen der Linked Mailboxes diese Einstellung für jeden Benutzer vornehmen zu müssen.

Erstellen der Linked Mailboxes

Zum Erstellen der Postfächer in Exchange benutzen wir das Cmdlet New-Mailbox [5] mit  den beiden Parametern -LinkedDomainController und -LinkedMasterAccount.

Mit diesem Befehl speichern wir uns zunächst die Anmeldedaten des Domänenadministrators der Anmeldedomäne in eine Variable ,damit wir diese nicht beim Erstellen jedes Benutzers erneut eingeben müssen. Dies kann abhängig von Ihrer Rechteverteilung auch nicht erforderlich sein.

$cred = Get-Credential

Danach importieren wir das Active Directory Modul und das Exchange Management Snap-In in die PowerShell.

Import-Module ActiveDirectory
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.*

Im Anschluss verwenden wir eine Kombination der Cmdlets Get-AdUser [6] und New-Mailbox [5].

Get-AdUser -Filter * -Server dc01.auth.local -SearchBase "OU=Users, DC=auth, DC=local" -Credential $cred | foreach { New-Mailbox -LinkedDomainController dc01.auth.local  -OrganizationalUnit “Exchange Users” -Name $_.Name -FirstName $_.GivenName -LastName $_.SurName -LinkedMasterAccount $_.SamAccountName -LinkedCredential $cred }
Folgende Parameter müssen auf Ihre Domänenstruktur angepasst werden: 
  • -Server & -LinkedDomainController: Ein Domänencontroller der Anmeldedomäne.
  • -SearchBase: Der Active Directory Pfad, in dem die Benutzer in der Anmeldedomäne liegen.
  • -OrganizationalUnit: Der Name der Organisationseinheit, in welcher die Linked Mailboxes erstellt werden sollen.

Der Befehl erstellt dann für jeden Benutzer der angegebenen Organisationseinheit der Anmeldedomäne eine Linked Mailbox auf dem Exchange. Bei einer erfolgreichen Ausführung sieht die Ausgabe folgendermaßen aus:

linked_mailboxes_1.JPG

Import der Postfächer

Nun müssen wir die Inhalte der Postfächer wieder importieren. Dies erledigen wir bei Exchange 2010 & neuer mit dem Cmdlet New-MailboxImportRequest [7]

Get-ChildItem "\\fileserver\share\" -Filter *.pst | foreach { New-MailboxImportRequest -Mailbox $_.Name.Replace(".pst","") -FilePath $_.FullName -TargetRootFolder /}

Analog zum Export muss auch hier der Dateipfad wieder ein Share sein. Beim Export haben wir die Dateien so benannt, dass wir sie den neuen Postfächern eindeutig zuordnen können.

Autodiscover Konfiguration

Zuletzt muss noch die DNS und Service Connection Point (SCP) Konfiguration vorgenommen werden, damit die Clients den Exchange Server auch finden können. Bei dem Einrichten eines Exchange Kontos in Outlook wird ein domain-joined Client zunächst versuchen, im AD das Autodiscover SCP Objekt zu finden. Ist dies nicht möglich, weil der Client z.B. nicht in der Domäne ist, wird über die Adresse autodiscover.domäne.de versucht, die Konfigurationsinformationen abzurufen. Ist alles richtig konfiguriert, erhält der Client über beide Methoden eine XML Datei, die Autodiscover.xml, aus welcher er die notwendigen Informationen zur Einrichtung des Kontos erhält. Dies ist z.B. die Adresse des Exchange Servers und dessen unterstützte Protokolle.

DNS

Die DNS Konfiguration sollte im Normalfall einmal an den lokalen DNS Servern der Anmeldedomänen und extern beim Registrar der Domäne gesetzt werden. Diese Konfiguration ist unter anderem abhängig davon, ob Clients in der Anmeldedomäne die lokale IP-Adresse des Exchange Servers auflösen können oder ob auf diesen von extern zugegriffen wird. Dabei muss der Eintrag im DNS in der Zone gemacht werden, die der Domäne der E-Mailadressen entspricht. Wird der Eintrag in der Default Zone gemacht und unterscheiden sich die Domänen namentlich, wird diese Konfiguration keine Auswirkung haben.

Lokal

Type = A
Name = autodiscover
Data = lokale oder öffentliche IP Adresse des Exchange bzw. Ressourcendomäne

Registrar

Type = A
Name = autodiscover
Data = öffentliche IP Adresse des Exchange

SCP

Falls in der Anmeldedomäne noch nie ein Exchange Server vorhanden war, muss zunächst der Container für die Autodiscover Konfiguration im AD erstellt werden.

Öffnen Sie dazu zunächst ADSI Edit

Rechtsklicken Sie auf ADSI Edit und wählen Sie als Naming Context die Configuration aus.

adsi_1.JPG

Rechtsklick auf CN=Services und wählen Sie New / Object…

Im Fenster Create Object wählen sie als Klasse container aus.

adsi_2.JPG

Als Value geben Sie Microsoft Exchange Autodiscover ein.

adsi_3JPG.JPG

Bestätigen Sie die Einstellung mit Finish

Jetzt können wir einfach die Konfiguration der Ressourcendomäne, welche bei der Installation von Exchange automatisch generiert wird, in die Anmeldedomäne importieren. Dafür benutzen wir das Export-AutoDiscoverConfig Cmdlet, welches wir in der Ressourcendomäne ausführen.

Export-AutoDiscoverConfig -DomainController dc01.resource.de -TargetForestDomainController dc01.auth.de -TargetForestCredential (Get-Credential)

Bei der Ausführung werden die Zugangsdaten des Domänenadministrators der Anmeldedomäne abgefragt. Sollte der Befehl erfolgreich ausgeführt werden, haben wir den Exchange SCP erfolgreich konfiguriert.

In den Outlook Clients der Anmeldedomäne wird nun bei der Einrichtung eines Exchange Kontos über den SCP erfolgreich auf den Exchange Server der Ressourcendomäne verwiesen. Ist das Konto bereits in dem Client eingerichtet, muss es in aller Regel neu hinzugefügt werden.

[1] https://www.microsoft.com/en-us/download/details.aspx?id=11876

[2] https://docs.microsoft.com/en-us/previous-versions/office/exchange-server-2007/aa998579(v=exchg.80)

[3] https://docs.microsoft.com/en-us/powershell/module/exchange/mailboxes/new-mailboxexportrequest?view=exchange-ps

[4] https://docs.microsoft.com/en-us/powershell/module/exchange/mail-flow/new-accepteddomain?view=exchange-ps

[5] https://docs.microsoft.com/en-us/powershell/module/exchange/mailboxes/new-mailbox?view=exchange-ps

[6] https://docs.microsoft.com/en-us/powershell/module/addsadministration/get-aduser?view=win10-ps

[7] https://docs.microsoft.com/en-us/powershell/module/exchange/mailboxes/new-mailboximportrequest?view=exchange-ps