Hallo Forengemeinde,
Ich muss meine erste Migration durchführen und habe zu diesem Thema leider noch keinen Leitfaden hier bei Franky gefunden.
Wir, Unternehmen M, müssen unsere IT-Systeme mit Unternehmen B harmonisieren. Meine Aufgabe ist es deren Mailpostfächer zu uns zu migrieren. Unser Skype Team hat bereits deren Skype Server abgelöst und dafür LinkedUser genutzt (Account/RessourceForest). Nun soll ich die Exchange Postfächer von B auf die LinkedUser in unserer Domäne M migrieren.
Im ersten Step habe ich den Kontakt in unseren Domain gesucht, gelöscht und die legacyExchangeDN als x500 mit an den LinkedUser gehängt.
$MigUser = 'test7' $MigUserM = (get-aduser -Filter * -Properties Description -SearchBase 'OU=LinkedUsers,DC=M,DC=de' | Where-Object {$_.name -like "test7"}).name $LCobject = Get-ADUser $MigUserM -Properties UserPrincipalName, ProxyAddresses $LCobject.DistinguishedName
##1. Schritt AD MigrationUser in Contacts finden und Attribut "legacyExchangeDN" kopieren
$LCcontact = Get-ADObject -SearchBase 'OU=_Contacts,DC=M,DC=de' -Filter {cn -eq $LCobject.UserPrincipalName} -Properties legacyExchangeDN $LCcontact.DistinguishedName $LCcontact.legacyExchangeDN $LCcontact.proxyAddresses
##2. Schritt Ad MigrationUser in LinkedUsers finden und Attribut proxyAddresses ergänzen um: 'x500:' + legacyExchangeDN
$LCobject.ProxyAddresses Set-ADUser $LCobject -add @{ProxyAddresses="x500:$($LCcontact.legacyExchangeDN)"} Set-ADUser $LCobject -add @{ProxyAddresses="$LCcontact.proxyAddresses"}
##3. Schritt AD MigrationUser in Contacts löschen + warten auf Replikation damit es keine CachingProbleme gibt
$LCcontact | Remove-ADObject -Confirm:$False sleep 300
Somit sollte unsere Umgebung vorbereitet sein.
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://exchange2016.m.de/PowerShell/ -Authentication Kerberos -Credential $UserCredential Import-PSSession $Session -DisableNameChecking $LocalCredentials = Get-Credential -Credential M\MMigrationSVC $RemoteCredentials = Get-Credential -Credential B\BMigrationSVC
$Date = Get-Date -Format yymmdd $Admindatum = "$(get-date -UFormat %y%m%d)$((get-aduser -identity $env:USERNAME -Properties initials).initials)" Set-ADServerSettings -ViewEntireForest $true
## Prepare Moverequest sollte über alle Postfächer laufen und das kurz vor der eigentlichen Migration, damit Kalender und ähnliches nach der Migration auch vollständig funktionieren
try { Set-Location 'C:\Program Files\Microsoft\Exchange Server\V15\Scripts' .\Prepare-MoveRequest.ps1 -Identity $MigrationUser -RemoteForestDomainController 'dc.b.de' -RemoteForestCredential $RemoteCredentials -LocalForestDomainController dc.m.de' -LocalForestCredential $LocalCredentials -UseLocalObject -OverwriteLocalObject -MailboxDeliveryDomain 'b.de' -Verbose } catch{ Write-Host 'Prepare MoveRequest failed' -ForegroundColor Red } try { Test-MigrationServerAvailability -Endpoint 'B' } catch{ write-host 'B nicht erreichbar' -ForegroundColor Red } try { Test-MigrationServerAvailability -Credentials $RemoteCredentials -ExchangeRemoteMove -RemoteServer 'outlook.b.de' } catch{ write-host 'B erreichbar, Credentials?' -ForegroundColor Red } try { $MigrationuserFull = Get-AdUser -Server dc.b.de -Identity $MigrationUser -Properties * $path = 'C:\Temp\' + $MigrationUserFull.sAMAccountName + '.csv' $csv = [PSCustomObject]@{ EmailAddress = $MigrationUserFull.mail MailboxType = $null } $csv | Export-CSV $path -NoTypeInformation New-MigrationBatch -Name $MigrationUserFull.UserPrincipalName -TargetArchiveDatabases ('BDB') -TargetDeliveryDomain 'm.de' -BadItemLimit '10' -SourceEndpoint 'B' -TargetDatabases ('BDB') -NotificationEmails @('admin@m.de') -AutoStart:$true -CSVData ([System.IO.File]::ReadAllBytes($path)) -LargeItemLimit Unlimited -Verbose } catch{ write-host 'Migration fehlgeschlagen' -ForegroundColor Red }
Fehlermeldung:
Identifier,Status,ItemsMigrated,ItemsSkipped,ErrorMessage
test.7@m.de,Failed,0,0,"Das Benutzerobjekt für ""test.7@m.de"" hat keine gültige LegacyExchangeDN-Eigenschaft und kann nicht migriert werden."
Im PrepareMoveRequest setzt er zwar keine legacyDN, diese wird aber als x500 an die Proxyadresse gehängt. Aber die GUID wird gesetzt, damit sollte es doch klappen oder nicht?
VERBOSE: Setting msExchMailboxGUID to 10621a7b-90fc-452e-8ba2-d1ed68e6ef52