Preparare le cassette postali per gli spostamenti tra foreste utilizzando Exchange Management Shell

Exchange Server supporta gli spostamenti delle cassette postali e le migrazioni tramite i cmdlet New-MoveRequest e New-MigrationBatch di Exchange Management Shell. È anche possibile spostare la cassetta postale nell'interfaccia di amministrazione di Exchange.

  • In Exchange 2016 è possibile spostare una cassetta postale di Exchange 2010, Exchange 2013 o Exchange 2016 da una foresta di Exchange di origine a una foresta di Exchange 2016 di destinazione.

  • In Exchange 2019 è possibile spostare una cassetta postale di Exchange 2013, Exchange 2016 o Exchange 2019 da una foresta di Exchange di origine a una foresta di Exchange 2019 di destinazione.

Per eseguire i cmdlet New-MoveRequest e New-MigrationBatch, è necessario che nella foresta di Exchange di destinazione sia disponibile un utente di posta elettronica dotato di un insieme minimo di attributi di Active Directory obbligatori.

Lo script di PowerShell di Exchange di esempio descritto in questo argomento supporta questa attività sincronizzando gli utenti delle cassette postali da una foresta di origine di Exchange alle foreste di destinazione di Exchange come utenti di posta elettronica (noti anche come utenti abilitati alla posta elettronica). Lo script copia gli attributi di Active Directory degli utenti delle cassette postali nella foresta di origine nella foresta di destinazione e quindi usa il cmdlet Update-Recipient per trasformare gli oggetti di destinazione in utenti di posta elettronica.

Per altre informazioni sull'uso e la scrittura di script, vedere Informazioni sugli script. Per ulteriori informazioni sulla preparazione per gli spostamenti tra foreste, vedere Preparare le cassette postali per le richieste di spostamento tra foreste.

Per altre attività di gestione relative alle richieste di spostamento remoto, Vedere Gestire gli spostamenti delle cassette postali locali in Exchange Server.

Che cosa è necessario sapere prima di iniziare?

  • Individuare lo script Prepare-MoveRequest.ps1 in %ExchangeInstallPath%Scripts. Per impostazione predefinita, %ExchangeInstallPath% è C:\Programmi\Microsoft\Exchange Server\V15\ (si noti il '\' finale).

  • Per eseguire lo script campione, è necessario disporre di quanto riportato di seguito:

    • Foresta di origine di Exchange (in cui risiede attualmente la cassetta postale).

      • Per le foreste di destinazione di Exchange 2016, la cassetta postale di origine può trovarsi in Exchange 2010, Exchange 2013 o Exchange 2016.

      • Per le foreste di destinazione di Exchange 2019, la cassetta postale di origine può trovarsi in Exchange 2013, Exchange 2016 o Exchange 2019.

    • Foresta di destinazione con Exchange 2016 o Exchange 2019 installato (in cui verrà spostata la cassetta postale).

Consiglio

Problemi? È possibile richiedere supporto nei forum di Exchange. I forum sono disponibili sui seguenti siti: Exchange Server, Exchange Online o Exchange Online Protection.

Uso dello script Prepare-MoveRequest.ps1 per la preparazione delle cassette postali per gli spostamenti tra foreste

Eseguire lo script da Exchange Management Shell in un server Cassette postali nella foresta exchange 2016 o Exchange 2019 di destinazione. Lo script consente di copiare gli attributi delle cassette postali dalla foresta di origine.

Per assegnare una credenziale di autenticazione specifica per il controller di dominio della foresta remota, è necessario eseguire prima il cmdlet Get-Credential di Windows PowerShell e archiviare l'input dell'utente in una variabile temporanea. Quando si esegue il cmdlet Get-Credential, questo richiede il nome utente e la password dell'account utilizzato durante l'autenticazione con il controller di dominio della foresta remota. Quindi, è possibile utilizzare la variabile temporanea nello script Prepare-MoveRequest.ps1. Per ulteriori informazioni sul cmdlet Get-Credential, vedere Get-Credential.

Nota

Accertarsi di utilizzare due credenziali distinte per la foresta locale e la foresta remota quando si richiama lo script.

  1. Utilizzare i seguenti comandi per ottenere le credenziali per la foresta locale e la foresta remota.

    $LocalCredentials = Get-Credential
    
    $RemoteCredentials = Get-Credential
    
  2. Eseguire i seguenti comandi per passare le informazioni sulle credenziali ai parametri LocalForestCredential e RemoteForestCredential nello script Prepare-MoveRequest.ps1.

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

Gruppo di parametri dello script

Nella tabella seguente, è riportato il gruppo di parametri per lo script.

Parametro Obbligatorio Descrizione
Identità Obbligatorio Il parametro Identity identifica in modo univoco una cassetta postale nella foresta di origine. Identity può essere uno dei valori seguenti: Nome comune (CN), Alias, proprietà proxyAddress, proprietà objectGuid o Proprietà DisplayName
RemoteForestCredential Obbligatorio Il parametro RemoteForestCredential specifica l'amministratore che dispone delle autorizzazioni per copiare i dati dalla foresta di origine Active Directory.
RemoteForestDomainController Obbligatorio Il parametro RemoteForestDomainController specifica un controller di dominio nella foresta di origine in cui si trova la cassetta postale.
DisableEmailAddressPolicy Facoltativo Il parametro DisableEmailAddressPolicy indica se è necessario disabilitare il protocollo EAP (Extensible Authentication Protocol) durante la creazione di un oggetto MailUser nella foresta di destinazione.
Quando si specifica questo parametro, il protocollo EAP nella foresta di destinazione non verrà applicato.
Nota: quando si specifica questo parametro, l'oggetto MailUser non avrà il mapping degli indirizzi di posta elettronica nel dominio della foresta locale contrassegnato. Questo viene generalmente contrassegnato da EAP.
LinkedMailUser Facoltativo L'opzione LinkedMailUser indica se creare o meno un oggetto MailUser associato nella foresta locale per l'utente della cassetta postale nella foresta remota.
Se viene fornita l'opzione, lo script crea un oggetto MailUser di destinazione associato alla cassetta postale di origine. Se l'opzione viene omessa, lo script crea un oggetto MailUserdi destinazione regolare.
LocalForestCredential Facoltativo Il parametro LocalForestCredential consente di specificare l'amministratore con autorizzazioni per scrivere dati nella foresta di destinazione Active Directory.
È consigliabile specificare in modo esplicito questo parametro per evitare problemi di autorizzazione di Active Directory.
Se la foresta remota e la foresta locale hanno una relazione attendibile configurata, non usare un account utente della foresta remota come credenziali della foresta locale, anche se l'account utente remoto potrebbe avere l'autorizzazione per modificare Active Directory nella foresta locale.
LocalForestDomainController Facoltativo Il parametro LocalForestDomainController specifica un controller di dominio nella foresta di destinazione in cui verrà creato l'utente di posta elettronica.
Si consiglia di specificare tale parametro per evitare eventuali problemi di ritardo nella replica dei controller di dominio nella foresta locale che potrebbero verificarsi se si seleziona un controllo di dominio casuale.
MailboxDeliveryDomain Facoltativo Il parametro MailboxDeliveryDomain consente di specificare un dominio autorevole della foresta di origine in modo che lo script possa selezionare la proprietà proxyAddress dell'utente della cassetta postale di origine corretta come proprietà targetAddress dell'utente di posta di destinazione.
Per impostazione predefinita, l'indirizzo SMTP primario dell'utente della cassetta postale di origine è impostato come proprietà targetAddress dell'utente di posta elettronica di destinazione.
OverWriteLocalObject Facoltativo Il parametro OverWriteLocalObject viene usato per gli utenti creati dallo strumento di migrazione di Active Directory. Le proprietà vengono copiate dal contatto di posta esistente al nuovo utente appena creato. Tuttavia, dopo questa copia, anche lo script copia le proprietà dall'utente nella foresta di origine all'utente di posta appena creato.
TargetMailUserOU Facoltativo Il parametro TargetMailuserOU consente di specificare l'unità organizzativa in cui verrà creato l'utente di posta elettronica di destinazione.
UseLocalObject Facoltativo Il parametro UseLocalObject consente di specificare se convertire l'oggetto locale esistente nell'utente di posta elettronica di destinazione richiesto se lo script rileva un oggetto nella foresta locale in conflitto con l'utente di posta da creare.

Esempi

In questa sezione, sono riportati diversi esempi su come utilizzare lo script Prepare-MoveRequest.ps1.

Esempio: utente di posta elettronica collegato singolo

In questo esempio viene eseguito il provisioning di un singolo utente di posta elettronica collegato nella foresta locale, quando è presente un trust tra la foresta remota e la foresta locale.

  1. Utilizzare i seguenti comandi per ottenere le credenziali per la foresta locale e la foresta remota.

    $LocalCredentials = Get-Credential
    
    $RemoteCredentials = Get-Credential
    
  2. Eseguire il seguente comando per passare le informazioni sulle credenziali ai parametri LocalForestCredential e RemoteForestCredential nello script Prepare-MoveRequest.ps1.

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

Esempio: Pipelining

Questo esempio supporta il pipelining se si fornisce un elenco di identità delle cassette postali.

  1. Esegui il comando seguente:

    $UserCredentials = Get-Credential
    
  2. Eseguire il comando seguente per passare le informazioni sulle credenziali al parametro RemoteForestCredential nello script Prepare-MoveRequest.ps1.

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

Esempio: Usare un file .csv per creare in blocco gli utenti di posta elettronica

È possibile generare un file .csv contenente un elenco di identità delle cassette postali dalla foresta di origine, che consente di inviare il contenuto del file nello script per creare in blocco gli utenti di posta elettronica di destinazione.

Ad esempio, il contenuto del file .csv può essere:

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

In questo esempio viene chiamato un file .csv per creare in blocco gli utenti di posta elettronica di destinazione.

  1. Utilizzare il seguente comando per ottenere le credenziali per la foresta remota.

    $UserCredentials = Get-Credential
    
  2. Utilizzare il seguente comando per passare le informazioni sulle credenziali al parametro RemoteForestCredential allo script Prepare-MoveRequest.ps1.

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

Comportamento di script per l'oggetto di destinazione

In questa sezione, viene illustrato il modo in cui lo script opera relativamente a diversi scenari per gli oggetti di destinazione.

Duplicazione dell'oggetto abilitato alla posta elettronica di destinazione

Quando lo script tenta di creare un utente di posta elettronica di destinazione dall'utente della cassetta postale di origine e rileva un oggetto locale abilitato alla posta elettronica duplicato, usa la logica seguente:

  • Se l'attributo masterAccountSid dell'utente della cassetta postale di origine corrisponde a qualsiasi attributo objectSid o masterAccountSid dell'oggetto di destinazione:

    • Se l'oggetto di destinazione non è abilitato alla posta elettronica, lo script restituisce un errore perché lo script non supporta la conversione di un oggetto che non è abilitato alla posta elettronica a un utente di posta elettronica.

    • Se l'oggetto di destinazione è abilitato alla posta elettronica, l'oggetto di destinazione è un duplicato.

  • Se un indirizzo nelle proprietà proxyAddress (solo smtp/x500) dell'utente della cassetta postale di origine corrisponde a un indirizzo nelle proprietà proxyAddress (solo smtp/x500) dell'oggetto di destinazione, allora l'oggetto di destinazione è un duplicato.

Lo script informa l'utente relativamente agli oggetti duplicati.

Se l'oggetto abilitato alla posta elettronica di destinazione è un utente di posta elettronica o un contatto di posta elettronica, che probabilmente viene creato da una distribuzione di sincronizzazione dell'elenco indirizzi globale (GAL) tra foreste, è possibile eseguire di nuovo lo script con il parametro UseLocalObject per utilizzare l'oggetto abilitato alla posta elettronica di destinazione per la migrazione delle cassette postali.

Utente di posta

Se l'oggetto di destinazione è un utente di posta elettronica, lo script copia gli attributi seguenti dall'utente della cassetta postale di origine all'utente di posta elettronica di destinazione:

  • msExchMailboxGUID

  • msExchArchiveGUID

  • msExchArchiveName

Se il parametro LinkedMailUser è impostato, lo script copia l'attributo source objectSid / masterAccountSid .

Contatto di posta

Se l'oggetto di destinazione è un contatto di posta elettronica, lo script elimina il contatto esistente e copia tutti i relativi attributi in un nuovo utente di posta elettronica. Lo script copia anche i seguenti attributi dall'utente di cassetta postale di origine:

  • msExchMailboxGUID

  • msExchArchiveGUID

  • msExchArchiveName

  • Samaccountname

  • userAccountControl (impostato su 514; equivalente a 0x202, ACCOUNTDISABLE | NORMAL_ACCOUNT)

  • Userprincipalname

Se il parametro LinkedMailUser è impostato, lo script copia l'attributo source objectSid / masterAccountSid .

Attributo LegacyExchangeDN

Quando viene chiamato il cmdlet Update-Recipient per convertire l'oggetto di destinazione in un utente di posta elettronica, viene generato un nuovo attributo LegacyExchangeDN per l'utente di posta elettronica di destinazione. Lo script copia l'attributo LegacyExchangeDN dell'utente di posta elettronica di destinazione come indirizzo x500 nelle proprietà proxyAddress dell'utente della cassetta postale di origine.