Vorbereiten von Postfächern für gesamtstrukturübergreifende Verschiebungen mithilfe der Exchange-Verwaltungsshell

Exchange Server unterstützt Postfachverschiebungen und Migrationen mithilfe der Cmdlets Exchange Management Shell New-MoveRequest und New-MigrationBatch. Sie können das Postfach auch in der Exchange-Verwaltungskonsole (EAC) verschieben.

  • In Exchange 2016 können Sie ein Postfach Exchange 2010, Exchange 2013 oder Exchange 2016 aus einer Quell- Exchange Gesamtstruktur in eine Zielgesamtstruktur Exchange 2016 verschieben.

  • In Exchange 2019 können Sie ein Postfach Exchange 2013, Exchange 2016 oder Exchange 2019 aus einer Quell- Exchange Gesamtstruktur in eine Zielgesamtstruktur Exchange 2019 verschieben.

Zum Ausführen der Cmdlets "New-MoveRequest" und "New-MigrationBatch" muss ein E-Mail-Benutzer in der Zielgesamtstruktur Exchange vorhanden sein, und der E-Mail-Benutzer muss mindestens über einen Satz erforderlicher Active Directory-Attribute verfügen.

Das in diesem Thema beschriebene Beispiel Exchange PowerShell-Skript unterstützt diese Aufgabe, indem Postfachbenutzer aus einer Exchange Quellgesamtstruktur mit Exchange Zielgesamtstrukturen als E-Mail-Benutzer (auch als E-Mail-aktivierte Benutzer bezeichnet) synchronisiert werden. Das Skript kopiert die Active Directory-Attribute der Postfachbenutzer in der Quellgesamtstruktur in die Zielgesamtstruktur und verwendet dann das Cmdlet "Update-Recipient", um die Zielobjekte in E-Mail-Benutzer umzuwandeln.

Weitere Informationen zum Verwenden und Schreiben von Skripts finden Sie unter "Skripts". Weitere Informationen zum Vorbereiten gesamtstrukturübergreifender Verschiebungen finden Sie unter Vorbereiten von Postfächern für gesamtstrukturübergreifende Verschiebungsanforderungen.

Suchen Sie nach anderen Verwaltungsaufgaben im Zusammenhang mit Remote-Verschiebungsanforderungen? Schauen Sie sich die Verwaltung von lokalen Postfachverschiebungen in Exchange Server an.

Was sollten Sie wissen, bevor Sie beginnen?

  • Suchen Sie das skript Prepare-MoveRequest.ps1 in %ExchangeInstallPath%Scripts. Standardmäßig ist %ExcangeInstallPath% C:\Program Files\Microsoft\Exchange Server\V15\ (beachten Sie das nachstehende ' \ ').

  • Zum Ausführen des Beispielskripts benötigen Sie Folgendes:

    • Eine Exchange Quellgesamtstruktur (in der sich das Postfach derzeit befindet).

      • Für Exchange 2016-Zielgesamtstrukturen kann sich das Quellpostfach in Exchange 2010, Exchange 2013 oder Exchange 2016 befinden.

      • Für Exchange 2019-Zielgesamtstrukturen kann sich das Quellpostfach in Exchange 2013, Exchange 2016 oder Exchange 2019 befinden.

    • Eine Zielgesamtstruktur mit installierter Exchange 2016 oder Exchange 2019 (in die das Postfach verschoben wird).

Tipp

Sie haben Probleme? Bitten Sie in den Exchange-Foren um Hilfe. Sie finden die Foren unter folgenden Links: Exchange Server, Exchange Online oder Exchange Online Protection.

Verwenden sie das skript Prepare-MoveRequest.ps1, um Postfächer für gesamtstrukturübergreifende Verschiebungen vorzubereiten.

Führen Sie das Skript aus der Exchange-Verwaltungsshell auf einem Postfachserver in der Zielgesamtstruktur Exchange 2016 oder Exchange 2019 aus. Das Skript kopiert die Postfachattribute aus der Quellgesamtstruktur.

Um eine bestimmte Authentifizierungsanmeldeinformationen für den Domänencontroller der Remotegesamtstruktur zuzuweisen, müssen Sie zuerst das Cmdlet Windows PowerShell Get-Credential ausführen und die Benutzereingaben in einer temporären Variablen speichern. Wenn Sie das Cmdlet "Get-Credential" ausführen, fordert das Cmdlet den Benutzernamen und das Kennwort des Kontos an, das während der Authentifizierung mit dem Domänencontroller der Remotegesamtstruktur verwendet wird. Anschließend können Sie die temporäre Variable im skript Prepare-MoveRequest.ps1 verwenden. Weitere Informationen zum Cmdlet "Get-Credential" finden Sie unter "Get-Credential".

Hinweis

Stellen Sie sicher, dass Sie beim Aufrufen dieses Skripts zwei separate Anmeldeinformationen für die lokale Gesamtstruktur und die Remotegesamtstruktur verwenden.

  1. Führen Sie die folgenden Befehle aus, um die Anmeldeinformationen für die lokale Gesamtstruktur und die Remotegesamtstruktur abzurufen.

    $LocalCredentials = Get-Credential
    
    $RemoteCredentials = Get-Credential
    
  2. Führen Sie die folgenden Befehle aus, um die Anmeldeinformationen an die Parameter LocalForestCredential und RemoteForestCredential im skript Prepare-MoveRequest.ps1 zu übergeben.

    Prepare-MoveRequest.ps1 -Identity JohnSmith@Fabrikan.com -RemoteForestDomainController DC001.Fabrikam.com -RemoteForestCredential $RemoteCredentials -LocalForestDomainController DC001.Contoso.com -LocalForestCredential $LocalCredentials
    

Parametersatz des Skripts

In der folgenden Tabelle wird der für das Skript festgelegte Parameter beschrieben.

Parameter Erforderlich Beschreibung
Identity Erforderlich Der Parameter "Identity" identifiziert ein Postfach in der Quellgesamtstruktur eindeutig. Identität kann einer der folgenden Werte sein: Common Name (CN), Alias, proxyAddress-Eigenschaft, objectGuid-Eigenschaft oder DisplayName-Eigenschaft
RemoteForestCredential Erforderlich Der Parameter RemoteForestCredential gibt den Administrator an, der über Berechtigungen zum Kopieren von Daten aus der Active Directory-Quellgesamtstruktur verfügt.
RemoteForestDomainController Erforderlich Der Parameter RemoteForestDomainController gibt einen Domänencontroller in der Quellgesamtstruktur an, in der sich das Postfach befindet.
DisableEmailAddressPolicy Optional Der Parameter DisableEmailAddressPolicy gibt an, ob die EAP (Email Address Policy) deaktiviert werden soll, wenn ein MailUser-Objekt in der Zielgesamtstruktur erstellt wird.
Wenn Sie diesen Parameter angeben, wird der EAP in der Zielgesamtstruktur nicht angewendet.
Hinweis: Wenn Sie diesen Parameter angeben, wird für das MailUser-Objekt keine E-Mail-Adresszuordnung in der lokalen Gesamtstrukturdomäne mit Stempel versehen. Dies wird in der Regel vom EAP gestempelt.
LinkedMailUser Optional Die Option LinkedMailUser gibt an, ob ein verknüpfter MailUser in der lokalen Gesamtstruktur für den Postfachbenutzer in der Remotegesamtstruktur erstellt werden soll.
Wenn der Switch bereitgestellt wird, erstellt das Skript ein MailUser-Zielobjekt, das mit dem Quellpostfach verknüpft ist. Wenn der Schalter ausgelassen wird, erstellt das Skript ein reguläres MailUser-Zielobjekt.
LocalForestCredential Optional Der Parameter LocalForestCredential gibt den Administrator mit Berechtigungen zum Schreiben von Daten in die Active Directory-Zielgesamtstruktur an.
Es wird empfohlen, diesen Parameter explizit anzugeben, um Active Directory-Berechtigungsprobleme zu vermeiden.
Wenn für die Remotegesamtstruktur und die lokale Gesamtstruktur eine vertrauenswürdige Beziehung konfiguriert ist, verwenden Sie kein Benutzerkonto aus der Remotegesamtstruktur als Anmeldeinformationen für die lokale Gesamtstruktur, obwohl das Remotebenutzerkonto möglicherweise über die Berechtigung zum Ändern von Active Directory in der lokalen Gesamtstruktur verfügt.
LocalForestDomainController Optional Der Parameter LocalForestDomainController gibt einen Domänencontroller in der Zielgesamtstruktur an, in der der E-Mail-Benutzer erstellt wird.
Es wird empfohlen, diesen Parameter anzugeben, um mögliche Verzögerungen bei der Domänencontrollerreplikation in der lokalen Gesamtstruktur zu vermeiden, die auftreten können, wenn ein zufälliger Domänencontroller ausgewählt wird.
MailboxDeliveryDomain Optional Der Parameter MailboxDeliveryDomain gibt eine autorisierende Domäne der Quellgesamtstruktur an, sodass das Skript die proxyAddress-Eigenschaft des Quellpostfachbenutzers als targetAddress-Eigenschaft des Ziel-E-Mail-Benutzers auswählen kann.
Standardmäßig wird die primäre SMTP-Adresse des Quellpostfachbenutzers als targetAddress-Eigenschaft des Ziel-E-Mail-Benutzers festgelegt.
OverWriteLocalObject Optional Der Parameter "OverWriteLocalObject" wird für Benutzer verwendet, die vom Active Directory-Migrationstool erstellt wurden. Die Eigenschaften werden aus dem vorhandenen E-Mail-Kontakt auf den neu erstellten E-Mail-Benutzer kopiert. Nach dieser Kopie kopiert das Skript jedoch auch die Eigenschaften vom Benutzer der Quellgesamtstruktur in den neu erstellten E-Mail-Benutzer.
TargetMailUserOU Optional Der Parameter TargetMailuserOU gibt die Organisationseinheit (Organizational Unit, OU) an, unter der der Ziel-E-Mail-Benutzer erstellt wird.
UseLocalObject Optional Der Parameter UseLocalObject gibt an, ob das vorhandene lokale Objekt in den erforderlichen E-Mail-Zielbenutzer konvertiert werden soll, wenn das Skript ein Objekt in der lokalen Gesamtstruktur erkennt, das mit dem zu erstellenden E-Mail-Benutzer in Konflikt steht.

Beispiele

Dieser Abschnitt enthält mehrere Beispiele für die Verwendung des Skripts Prepare-MoveRequest.ps1.

Beispiel: Einzelner verknüpfter E-Mail-Benutzer

In diesem Beispiel wird ein einzelner verknüpfter E-Mail-Benutzer in der lokalen Gesamtstruktur bereitgestellt, wenn zwischen der Remotegesamtstruktur und der lokalen Gesamtstruktur eine Gesamtstrukturvertrauensstellung besteht.

  1. Führen Sie die folgenden Befehle aus, um die Anmeldeinformationen für die lokale Gesamtstruktur und die Remotegesamtstruktur abzurufen.

    $LocalCredentials = Get-Credential
    
    $RemoteCredentials = Get-Credential
    
  2. Führen Sie den folgenden Befehl aus, um die Anmeldeinformationen an die Parameter LocalForestCredential und RemoteForestCredential im skript Prepare-MoveRequest.ps1 zu übergeben.

    Prepare-MoveRequest.ps1 -Identity JamesAlvord@Contoso.com -RemoteForestDomainController DC001.Fabrikam.com -RemoteForestCredential $RemoteCredentials -LocalForestDomainController DC001.Contoso.com -LocalForestCredential $LocalCredentials -LinkedMailUser
    

Beispiel: Pipelining

In diesem Beispiel wird pipelining unterstützt, wenn Sie eine Liste von Postfachidentitäten angeben.

  1. Führen Sie den folgenden Befehl aus.

    $UserCredentials = Get-Credential
    
  2. Führen Sie den folgenden Befehl aus, um die Anmeldeinformationen an den Parameter RemoteForestCredential im skript Prepare-MoveRequest.ps1 zu übergeben.

    "IanP@Contoso.com", "JoeAn@Contoso.com" | Prepare-MoveRequest.ps1 -RemoteForestDomainController DC001.Fabrikam.com -RemoteForestCredential $UserCredentials
    

Beispiel: Verwenden einer .csv datei zum Massenerstellen von E-Mail-Benutzern

Sie können eine .csv Datei mit einer Liste von Postfachidentitäten aus der Quellgesamtstruktur generieren, mit der Sie den Inhalt dieser Datei an das Skript weiterleiten können, um die Ziel-E-Mail-Benutzer per Massenerstellung zu erstellen.

Beispielsweise kann der Inhalt der CSV-Datei wie folgt lauten:

Identity
Ian@contoso.com
John@contoso.com
Cindy@contoso.com

In diesem Beispiel wird eine .csv-Datei aufgerufen, um die Ziel-E-Mail-Benutzer massenweise zu erstellen.

  1. Führen Sie den folgenden Befehl aus, um die Anmeldeinformationen für die Remotegesamtstruktur abzurufen.

    $UserCredentials = Get-Credential
    
  2. Führen Sie den folgenden Befehl aus, um die Anmeldeinformationen an den Parameter RemoteForestCredential im skript Prepare-MoveRequest.ps1 zu übergeben.

    Import-Csv Test.csv | Prepare-MoveRequest.ps1 -RemoteForestDomainController DC001.Fabrikam.com -RemoteForestCredential $UserCredentials
    

Skriptverhalten pro Zielobjekt

In diesem Abschnitt wird beschrieben, wie das Skript in Bezug auf mehrere Szenarien für Zielobjekte ausgeführt wird.

Doppeltes E-Mail-aktiviertes Zielobjekt

Wenn das Skript versucht, einen Ziel-E-Mail-Benutzer aus dem Quellpostfachbenutzer zu erstellen, und es ein doppeltes lokales E-Mail-aktiviertes Objekt erkennt, verwendet es die folgende Logik:

  • Wenn das masterAccountSid-Attribut des Quellpostfachbenutzers dem ObjectSid- oder masterAccountSid-Attribut eines Zielobjekts entspricht:

    • Wenn das Zielobjekt nicht E-Mail-aktiviert ist, gibt das Skript einen Fehler zurück, da das Skript das Konvertieren eines Nicht-E-Mail-aktivierten Objekts in einen E-Mail-Benutzer nicht unterstützt.

    • Wenn das Zielobjekt E-Mail-aktiviert ist, ist das Zielobjekt ein Duplikat.

  • Wenn eine Adresse in den ProxyAddress-Eigenschaften des Quellpostfachbenutzers (nur smtp/x500) einer Adresse in den ProxyAddress-Eigenschaften eines Zielobjekts entspricht (nur smtp/x500), ist das Zielobjekt ein Duplikat.

Das Skript fordert den Benutzer zu den doppelten Objekten auf.

Wenn es sich bei dem E-Mail-aktivierten Zielobjekt um einen E-Mail-Benutzer oder E-Mail-Kontakt handelt, der höchstwahrscheinlich von einer gesamtstrukturübergreifenden Gal-Synchronisierungsbereitstellung erstellt wird, können Sie das Skript erneut mit dem Parameter UseLocalObject ausführen, um das E-Mail-aktivierte Zielobjekt für die Postfachmigration zu verwenden.

E-Mail-Benutzer

Wenn das Zielobjekt ein E-Mail-Benutzer ist, kopiert das Skript die folgenden Attribute aus dem Quellpostfachbenutzer in den E-Mail-Zielbenutzer:

  • Msexchmailboxguid

  • msExchArchiveGUID

  • msExchArchiveName

Wenn der Parameter LinkedMailUser festgelegt ist, kopiert das Skript das source objectSid / masterAccountSid-Attribut.

E-Mail-Kontakt

Wenn das Zielobjekt ein E-Mail-Kontakt ist, löscht das Skript den vorhandenen Kontakt und kopiert alle Attribute in einen neuen E-Mail-Benutzer. Das Skript kopiert auch die folgenden Attribute aus dem Quellpostfachbenutzer:

  • Msexchmailboxguid

  • msExchArchiveGUID

  • msExchArchiveName

  • Samaccountname

  • userAccountControl (festgelegt auf 514; entspricht 0x202, ACCOUNTDISABLE | NORMAL_ACCOUNT )

  • userPrincipalName

Wenn der Parameter LinkedMailUser festgelegt ist, kopiert das Skript das source objectSid / masterAccountSid-Attribut.

LegacyExchangeDN-Attribut

Wenn das Cmdlet "Update-Recipient" aufgerufen wird, um das Zielobjekt in einen E-Mail-Benutzer zu konvertieren, wird ein neues LegacyExchangeDN-Attribut für den Ziel-E-Mail-Benutzer generiert. Das Skript kopiert das LegacyExchangeDN-Attribut des E-Mail-Zielbenutzers als x500-Adresse in die proxyAddress-Eigenschaften des Quellpostfachbenutzers.