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

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

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

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

Zum Ausführen der Cmdlets New-MoveRequest und New-MigrationBatch muss ein E-Mail-Benutzer in der Exchange-Zielgesamtstruktur vorhanden sein, und der E-Mail-Benutzer muss über einen Mindestsatz an erforderlichen Active Directory-Attributen verfügen.

Das in diesem Thema beschriebene Exchange PowerShell-Beispielskript 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 Informationen zu Skripts. Weitere Informationen zum Vorbereiten von gesamtstrukturübergreifenden Verschiebungen finden Sie unter Vorbereiten von Postfächern für gesamtstrukturübergreifende Verschiebungsanforderungen.

Suchen Sie nach anderen Verwaltungsaufgaben im Zusammenhang mit Remoteverschiebungsanforderungen? Lesen Sie Verwalten von lokalen Postfachverschiebungen in Exchange Server.

Was sollten Sie wissen, bevor Sie beginnen?

  • Suchen Sie das Prepare-MoveRequest.ps1-Skript in %ExchangeInstallPath%Scripts. Standardmäßig ist %ExchangeInstallPath% C:\Programme\Microsoft\Exchange Server\V15\ (beachten Sie das nachfolgende "\").

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

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

      • Bei 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, auf der Exchange 2016 oder Exchange 2019 installiert ist (in die das Postfach verschoben wird).

Tipp

Liegt ein Problem vor? Bitten Sie in den Exchange-Foren um Hilfe. Sie finden die Foren unter folgenden Links: Exchange Server, Exchange Online oder Exchange Online Protection.

Verwenden des Prepare-MoveRequest.ps1-Skripts zum Vorbereiten von Postfächern für gesamtstrukturübergreifende Verschiebungen

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

Zum Zuweisen bestimmter Authentifizierungsanmeldeinformationen für den Remotegesamtstruktur-Domänencontroller müssen Sie zuerst das Cmdlet Windows PowerShell Get-Credential ausführen und die Benutzereingabe in einer temporären Variablen speichern. Wenn Sie das Cmdlet Get-Credential ausführen, fragt das Cmdlet den Benutzernamen und das Kennwort des Kontos an, das bei der Authentifizierung mit dem Remotegesamtstruktur-Domänencontroller verwendet wurde. Anschließend können Sie die temporäre Variable im Prepare-MoveRequest.ps1 Skript verwenden. Weitere Informationen zum Cmdlet Get-Credential finden Sie unter Get-Credential.

Hinweis

Stellen Sie sicher, dass Sie zwei separate Anmeldeinformationen für die lokale Gesamtstruktur und die Remotegesamtstruktur verwenden, wenn Sie dieses Skript aufrufen.

  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 Prepare-MoveRequest.ps1-Skript 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 Parametersatz für das Skript beschrieben.

Parameter Erforderlich Beschreibung
Identity Erforderlich Der Identity-Parameter identifiziert ein Postfach in der Quellgesamtstruktur eindeutig. Die Identität kann einer der folgenden Werte sein: Allgemeiner 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 Email Address Policy (EAP) beim Erstellen eines MailUser-Objekts in der Zielgesamtstruktur deaktiviert werden soll.
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 domäne der lokalen Gesamtstruktur gestempelt. 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 Schalter bereitgestellt wird, erstellt das Skript ein MailUser-Zielobjekt , das mit dem Quellpostfach verknüpft ist. Wenn der Schalter nicht angegeben wird, erstellt das Skript ein reguläres MailUser-Zielobjekt .
LocalForestCredential Optional Der Parameter LocalForestCredential gibt den Administrator mit den Berechtigungen zum Schreiben von Daten in die Active Directory-Zielgesamtstruktur an.
Es wird empfohlen, diesen Parameter explizit anzugeben, um Probleme mit Active Directory-Berechtigungen 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 Probleme bei der Replikation von Domänencontrollern 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 autoritative Domäne der Quellgesamtstruktur an, sodass das Skript die proxyAddress-Eigenschaft des richtigen 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 OverWriteLocalObject-Parameter wird für Benutzer verwendet, die vom Active Directory-Migrationstool erstellt wurden. Die Eigenschaften werden aus dem vorhandenen E-Mail-Kontakt in 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 an, unter der der E-Mail-Zielbenutzer erstellt wird.
UseLocalObject Optional Der UseLocalObject-Parameter 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 Prepare-MoveRequest.ps1-Skripts.

Beispiel: Einzelner verknüpfter E-Mail-Benutzer

In diesem Beispiel wird ein einzelner verknüpfter E-Mail-Benutzer in der lokalen Gesamtstruktur bereitgestellt, wenn eine Gesamtstrukturvertrauensstellung zwischen der Remotegesamtstruktur und der lokalen Gesamtstruktur 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 Prepare-MoveRequest.ps1-Skript 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 das 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 Prepare-MoveRequest.ps1-Skript zu übergeben.

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

Beispiel: Verwenden einer .csv-Datei zum Massenerstellung 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 übergeben 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 per Massenvorgang 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 Prepare-MoveRequest.ps1-Skript zu übergeben.

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

Skriptverhalten pro Zielobjekt

In diesem Abschnitt wird die Leistung des Skripts in Bezug auf mehrere Szenarien für Zielobjekte beschrieben.

Doppeltes E-Mail-aktiviertes Zielobjekt

Wenn das Skript versucht, einen Ziel-E-Mail-Benutzer aus dem Quellpostfachbenutzer zu erstellen und ein dupliziertes 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 die Konvertierung eines Objekts, das nicht E-Mail-aktiviert ist, nicht in einen E-Mail-Benutzer 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 (nur smtp/x500) entspricht, ist das Zielobjekt ein Duplikat.

Das Skript fordert den Benutzer zu den doppelten Objekten auf.

Wenn das E-Mail-aktivierte Zielobjekt ein E-Mail-Benutzer oder E-Mail-Kontakt ist, der höchstwahrscheinlich von einer Synchronisierungsbereitstellung für eine gesamtstrukturübergreifende globale Adressliste (GAL) erstellt wird, können Sie das Skript erneut mit dem UseLocalObject-Parameter ausführen, um das E-Mail-fähige Zielobjekt für die Postfachmigration zu verwenden.

E-Mail-Benutzer

Wenn das Zielobjekt ein E-Mail-Benutzer ist, kopiert das Skript die folgenden Attribute vom Benutzer des Quellpostfachs in den Ziel-E-Mail-Benutzer:

  • Msexchmailboxguid

  • msExchArchiveGUID

  • msExchArchiveName

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

E-Mail-Kontakt

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

  • Msexchmailboxguid

  • msExchArchiveGUID

  • msExchArchiveName

  • Samaccountname

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

  • userPrincipalName

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

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 E-Mail-Zielbenutzer generiert. Das Skript kopiert das LegacyExchangeDN-Attribut des E-Mail-Zielbenutzers als x500-Adresse in die proxyAddress-Eigenschaften des Quellpostfachbenutzers.