Vorbereiten von Postfächern für eine standortübergreifende Verschiebung mit dem Skript „Prepare-MoveRequest.ps1“ in der Shell

Gilt für: Exchange Server 2013

Zusammenfassung: Erfahren Sie, wie Sie gesamtstrukturübergreifende Postfachverschiebungen und -migrationen in Exchange 2013 mithilfe des Prepare-MoveRequest.ps1-Skripts in der Exchange-Verwaltungsshell verwalten.

Microsoft Exchange 2013 unterstützt Postfachverschiebungen und -migrationen mithilfe der Cmdlets New-MoveRequest und New-MigrationBatch. Sie können das Postfach auch über die Exchange-Verwaltungskonsole verschieben. Sie können ein Exchange 2010- oder Exchange 2013-Postfach aus einer Exchange-Quellgesamtstruktur in eine Exchange 2013-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 Beispielskript Windows PowerShell unterstützt diese Aufgabe, indem Postfachbenutzer aus einer Exchange 2013-Quellgesamtstruktur mit Exchange 2013-Zielgesamtstrukturen als E-Mail-aktivierte Benutzer 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-aktivierte Benutzer umzuwandeln.

Weitere Informationen zum Verwenden und Schreiben von Skripts finden Sie unter Skripterstellung mit der Exchange-Verwaltungsshell. 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 Verschiebungen.

Was sollten Sie wissen, bevor Sie beginnen?

  • Suchen Sie das Skript am folgenden Speicherort: %ExchangeInstallPath%Scripts

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

    • Eine Exchange-Quellgesamtstruktur, in der sich das Postfach derzeit befindet. Dies kann ein Exchange 2010- oder Exchange 2013-Postfach sein.

    • Eine Zielgesamtstruktur mit Exchange 2013, in die das Postfach verschoben werden soll.

Tipp

Liegt ein Problem vor? Bitten Sie in den Exchange-Foren um Hilfe. Besuchen Sie die Foren auf Exchange Server.

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

Führen Sie das Skript in der Shell auf einer Serverrolle aus, auf der Exchange 2013 in der Exchange 2013-Zielgesamtstruktur ausgeführt wird. 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 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 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.

Parametersatz des Prepare-MoveRequest.ps1 Skripts

Parameter Erforderlich Beschreibung
Identity Erforderlich Der Identity-Parameter identifiziert ein Postfach in der Quellgesamtstruktur eindeutig. Die Identität kann eine der folgenden Sein:
  • Allgemeiner Name (Common Name, CN)
  • Alias
  • proxyAddress-Eigenschaft
  • objectGuid-Eigenschaft
  • 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 dem der E-Mail-aktivierte Benutzer erstellt wird.

Es wird empfohlen, diesen Parameter anzugeben, um mögliche Probleme mit 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 zielfähigen Benutzers auswählen kann.

Standardmäßig wird die primäre SMTP-Adresse des Quellpostfachbenutzers als targetAddress-Eigenschaft des E-Mail-aktivierten Zielbenutzers 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 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-aktivierte Zielbenutzer erstellt wird.
UseLocalObject Optional Der Parameter UseLocalObject gibt an, ob das vorhandene lokale Objekt in den erforderlichen E-Mail-aktivierten Zielbenutzer konvertiert werden soll, wenn das Skript ein Objekt in der lokalen Gesamtstruktur erkennt, das mit dem zu erstellenden E-Mail-aktivierten Benutzer in Konflikt steht.

Beispiele

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

Beispiel: Einzelner benutzer mit aktivierter verknüpfter E-Mail

In diesem Beispiel wird ein einzelner verknüpfter E-Mail-aktivierter 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-aktivierten Benutzern

Sie können eine .csv-Datei generieren, die eine Liste von Postfachidentitäten aus der Quellgesamtstruktur enthält, mit der Sie den Inhalt dieser Datei an das Skript übergeben können, um die E-Mail-Zielbenutzer 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 E-Mail-Zielbenutzer 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.

Duplizieren eines E-Mail-aktivierten Zielobjekts

Wenn das Skript versucht, einen E-Mail-aktivierten Zielbenutzer 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-aktivierten 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-aktivierter Benutzer oder Kontakt ist, der höchstwahrscheinlich von einer gesamtstrukturübergreifenden Bereitstellung (Identity Lifecycle Management 2007 Service Pack 2007 Service Pack 1-basiert) einer globalen Adressliste (GAL) erstellt wird, kann der Benutzer das Skript erneut mit dem UseLocalObject-Parameter ausführen, um das E-Mail-aktivierte Zielobjekt für die Postfachmigration zu verwenden.

E-Mail-aktivierter Benutzer

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

  • Msexchmailboxguid
  • msExchArchiveGUID
  • msExchArchiveName

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

E-Mail-aktivierter Kontakt

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

  • Msexchmailboxguid
  • msExchArchiveGUID
  • msExchArchiveName
  • Samaccountname
  • userAccountControl (auf 514 //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-aktivierten Benutzer zu konvertieren, wird ein neues LegacyExchangeDN-Attribut für den E-Mail-Zielbenutzer generiert. Das Skript kopiert das LegacyExchangeDN-Attribut des E-Mail-aktivierten Zielbenutzers als x500-Adresse in die ProxyAddress-Eigenschaften des Quellpostfachbenutzers.