Konvertieren von Exchange 2003-Postfächern in E-Mail-aktivierte Benutzer in Exchange Online
Nachdem Sie eine mehrstufige Migration abgeschlossen haben, konvertieren Sie die lokalen Postfächer in E-Mail-aktivierte Benutzer, damit die lokalen Benutzer automatisch eine Verbindung mit ihren Cloudpostfächern herstellen können.
Gründe zum Konvertieren von Postfächern in E-Mail-aktivierte Benutzer
Sie müssen die migrierten lokalen Postfächer in E-Mail-aktivierte Benutzer (MEUs) konvertieren, damit Sie cloudbasierte Benutzer aus Ihrer lokalen Organisation mithilfe von Active Directory verwalten können.
Dieser Artikel enthält ein PowerShell-Skript, das Informationen aus den cloudbasierten Postfächern sammelt, und ein Visual Basic-Skript (VB), das Exchange 2003-Postfächer in MEUs konvertiert. Wenn Sie dieses Skript ausführen, werden die Proxyadressen aus dem cloudbasierten Postfach in den E-Mail-aktivierten Benutzer kopiert, der sich in Active Directory befindet. Die Eigenschaften des MEU ermöglichen die Verzeichnissynchronisierung, um die MEU mit dem entsprechenden Cloudpostfach abzugleichen.
Es wird empfohlen, lokale Postfächer für einen Migrationsbatch in MEUs zu konvertieren. Nachdem ein mehrstufiger Exchange-Migrationsbatch abgeschlossen wurde, haben Sie überprüft, ob alle Postfächer im Batch erfolgreich migriert wurden und die anfängliche Synchronisierung von Postfachelementen mit der Cloud abgeschlossen ist. Konvertieren Sie die Postfächer im Migrationsbatch in MEUs.
PowerShell-Skript zum Erfassen von Daten aus Cloudpostfächern
Verwenden Sie die Skripts in diesem Abschnitt, um Informationen zu den cloudbasierten Postfächern zu sammeln und die Exchange 2003-Postfächer in MEUs zu konvertieren.
Das PowerShell-Skript sammelt Informationen aus Ihren Cloudpostfächern und speichert sie in einer CSV-Datei. Führen Sie dieses Skript zuerst aus.
Kopieren Sie das Skript in Editor, und speichern Sie die Datei als ExportO365UserInfo.ps1.
Hinweis
Bevor Sie das Skript ausführen, müssen Sie das Exchange Online PowerShell-Modul installieren. Anweisungen finden Sie unter Installieren und Verwalten des Exchange Online PowerShell-Moduls. Das Modul verwendet die moderne Authentifizierung.
- Normalerweise können Sie das Skript unverändert verwenden, wenn Ihr Unternehmen Microsoft 365 oder Microsoft 365 GCC verwendet. Wenn Ihr Unternehmen Office 365 Deutschland, Microsoft 365 GCC High oder Microsoft 365 DoD verwendet, müssen Sie die
Connect-ExchangeOnline
-Zeile im Skript bearbeiten. Insbesondere müssen Sie den Parameter ExchangeEnvironmentName und den entsprechenden Wert für Ihre Organisation verwenden. Weitere Informationen finden Sie in den Beispielen unter Verbinden mit Exchange Online PowerShell.
Param($migrationCSVFileName = "migration.csv")
function O365Logon
{
#Check for current open O365 sessions and allow the admin to either use the existing session or create a new one
$session = Get-PSSession | ?{$_.ConfigurationName -eq 'Microsoft.Exchange'}
if($session -ne $null)
{
$a = Read-Host "An open session to Exchange Online PowerShell already exists. Do you want to use this session? Enter y to use the open session, anything else to close and open a fresh session."
if($a.ToLower() -eq 'y')
{
Write-Host "Using existing Exchange Online Powershell Session." -ForeGroundColor Green
return
}
Disconnect-ExchangeOnline -Confirm:$false
}
Import-Module ExchangeOnlineManagement
Connect-ExchangeOnline
}
function Main
{
#Verify the migration CSV file exists
if(!(Test-Path $migrationCSVFileName))
{
Write-Host "File $migrationCSVFileName does not exist." -ForegroundColor Red
Exit
}
#Import user list from migration.csv file
$MigrationCSV = Import-Csv $migrationCSVFileName
#Get mailbox list based on email addresses from CSV file
$MailBoxList = $MigrationCSV | %{$_.EmailAddress} | Get-Mailbox
$Users = @()
#Get LegacyDN, Tenant, and On-Premises Email addresses for the users
foreach($user in $MailBoxList)
{
$UserInfo = New-Object System.Object
$CloudEmailAddress = $user.EmailAddresses | ?{($_ -match 'onmicrosoft') -and ($_ -cmatch 'smtp:')}
if ($CloudEmailAddress.Count -gt 1)
{
$CloudEmailAddress = $CloudEmailAddress[0].ToString().ToLower().Replace('smtp:', '')
Write-Host "$user returned more than one cloud email address. Using $CloudEmailAddress" -ForegroundColor Yellow
}
else
{
$CloudEmailAddress = $CloudEmailAddress.ToString().ToLower().Replace('smtp:', '')
}
$UserInfo | Add-Member -Type NoteProperty -Name LegacyExchangeDN -Value $user.LegacyExchangeDN
$UserInfo | Add-Member -Type NoteProperty -Name CloudEmailAddress -Value $CloudEmailAddress
$UserInfo | Add-Member -Type NoteProperty -Name OnPremiseEmailAddress -Value $user.PrimarySMTPAddress.ToString()
$Users += $UserInfo
}
#Check for existing csv file and overwrite if needed
if(Test-Path ".\cloud.csv")
{
$delete = Read-Host "The file cloud.csv already exists in the current directory. Do you want to delete it? Enter y to delete, anything else to exit this script."
if($delete.ToString().ToLower() -eq 'y')
{
Write-Host "Deleting existing cloud.csv file" -ForeGroundColor Red
Remove-Item ".\cloud.csv"
}
else
{
Write-Host "Will NOT delete current cloud.csv file. Exiting script." -ForeGroundColor Green
Exit
}
}
$Users | Export-CSV -Path ".\cloud.csv" -notype
(Get-Content ".\cloud.csv") | %{$_ -replace '"', ''} | Set-Content ".\cloud.csv" -Encoding Unicode
Write-Host "CSV File Successfully Exported to cloud.csv" -ForeGroundColor Green
}
O365Logon
Main
Das Visual Basic-Skript konvertiert lokale Exchange 2003-Postfächer in MEUs. Führen Sie dieses Skript aus, nachdem Sie das PowerShell-Skript ausgeführt haben, um Informationen aus den Cloudpostfächern zu sammeln.
Kopieren Sie das Skript in Editor, und speichern Sie die Datei als Exchange2003MBtoMEU.vbs.
'Globals/Constants
Const ADS_PROPERTY_APPEND = 3
Dim UserDN
Dim remoteSMTPAddress
Dim remoteLegacyDN
Dim domainController
Dim csvMode
csvMode = FALSE
Dim csvFileName
Dim lastADLookupFailed
Class UserInfo
public OnPremiseEmailAddress
public CloudEmailAddress
public CloudLegacyDN
public LegacyDN
public ProxyAddresses
public Mail
public MailboxGUID
public DistinguishedName
Public Sub Class_Initialize()
Set ProxyAddresses = CreateObject("Scripting.Dictionary")
End Sub
End Class
'Command Line Parameters
If WScript.Arguments.Count = 0 Then
'No parameters passed
WScript.Echo("No parameters were passed.")
ShowHelp()
ElseIf StrComp(WScript.Arguments(0), "-c", vbTextCompare) = 0 And WScript.Arguments.Count = 2 Then
WScript.Echo("Missing DC Name.")
ShowHelp()
ElseIf StrComp(WScript.Arguments(0), "-c", vbTextCompare) = 0 Then
'CSV Mode
csvFileName = WScript.Arguments(1)
domainController = WScript.Arguments(2)
csvMode = TRUE
WScript.Echo("CSV mode detected. Filename: " & WScript.Arguments(1) & vbCrLf)
ElseIf wscript.Arguments.Count <> 4 Then
'Invalid Arguments
WScript.Echo WScript.Arguments.Count
Call ShowHelp()
Else
'Manual Mode
UserDN = wscript.Arguments(0)
remoteSMTPAddress = wscript.Arguments(1)
remoteLegacyDN = wscript.Arguments(2)
domainController = wscript.Arguments(3)
End If
Main()
'Main entry point
Sub Main
'Check for CSV Mode
If csvMode = TRUE Then
UserInfoArray = GetUserInfoFromCSVFile()
Else
WScript.Echo "Manual Mode Detected" & vbCrLf
Set info = New UserInfo
info.CloudEmailAddress = remoteSMTPAddress
info.DistinguishedName = UserDN
info.CloudLegacyDN = remoteLegacyDN
ProcessSingleUser(info)
End If
End Sub
'Process a single user (manual mode)
Sub ProcessSingleUser(ByRef UserInfo)
userADSIPath = "LDAP://" & domainController & "/" & UserInfo.DistinguishedName
WScript.Echo "Processing user " & userADSIPath
Set MyUser = GetObject(userADSIPath)
proxyCounter = 1
For Each address in MyUser.Get("proxyAddresses")
UserInfo.ProxyAddresses.Add proxyCounter, address
proxyCounter = proxyCounter + 1
Next
UserInfo.OnPremiseEmailAddress = GetPrimarySMTPAddress(UserInfo.ProxyAddresses)
UserInfo.Mail = MyUser.Get("mail")
UserInfo.MailboxGUID = MyUser.Get("msExchMailboxGUID")
UserInfo.LegacyDN = MyUser.Get("legacyExchangeDN")
ProcessMailbox(UserInfo)
End Sub
'Populate user info from CSV data
Function GetUserInfoFromCSVFile()
CSVInfo = ReadCSVFile()
For i = 0 To (UBound(CSVInfo)-1)
lastADLookupFailed = false
Set info = New UserInfo
info.CloudLegacyDN = Split(CSVInfo(i+1), ",")(0)
info.CloudEmailAddress = Split(CSVInfo(i+1), ",")(1)
info.OnPremiseEmailAddress = Split(CSVInfo(i+1), ",")(2)
WScript.Echo "Processing user " & info.OnPremiseEmailAddress
WScript.Echo "Calling LookupADInformationFromSMTPAddress"
LookupADInformationFromSMTPAddress(info)
If lastADLookupFailed = false Then
WScript.Echo "Calling ProcessMailbox"
ProcessMailbox(info)
End If
set info = nothing
Next
End Function
'Populate user info from AD
Sub LookupADInformationFromSMTPAddress(ByRef info)
'Lookup the rest of the info in AD using the SMTP address
Set objRootDSE = GetObject("LDAP://RootDSE")
strDomain = objRootDSE.Get("DefaultNamingContext")
Set objRootDSE = nothing
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand = CreateObject("ADODB.Command")
BaseDN = "<LDAP://" & domainController & "/" & strDomain & ">"
adFilter = "(&(proxyAddresses=SMTP:" & info.OnPremiseEmailAddress & "))"
Attributes = "distinguishedName,msExchMailboxGUID,mail,proxyAddresses,legacyExchangeDN"
Query = BaseDN & ";" & adFilter & ";" & Attributes & ";subtree"
objCommand.CommandText = Query
Set objCommand.ActiveConnection = objConnection
On Error Resume Next
Set objRecordSet = objCommand.Execute
'Handle any errors that result from the query
If Err.Number <> 0 Then
WScript.Echo "Error encountered on query " & Query & ". Skipping user."
lastADLookupFailed = true
return
End If
'Handle zero or ambiguous search results
If objRecordSet.RecordCount = 0 Then
WScript.Echo "No users found for address " & info.OnPremiseEmailAddress
lastADLookupFailed = true
return
ElseIf objRecordSet.RecordCount > 1 Then
WScript.Echo "Ambiguous search results for email address " & info.OnPremiseEmailAddress
lastADLookupFailed = true
return
ElseIf Not objRecordSet.EOF Then
info.LegacyDN = objRecordSet.Fields("legacyExchangeDN").Value
info.Mail = objRecordSet.Fields("mail").Value
info.MailboxGUID = objRecordSet.Fields("msExchMailboxGUID").Value
proxyCounter = 1
For Each address in objRecordSet.Fields("proxyAddresses").Value
info.ProxyAddresses.Add proxyCounter, address
proxyCounter = proxyCounter + 1
Next
info.DistinguishedName = objRecordSet.Fields("distinguishedName").Value
objRecordSet.MoveNext
End If
objConnection = nothing
objCommand = nothing
objRecordSet = nothing
On Error Goto 0
End Sub
'Populate data from the CSV file
Function ReadCSVFile()
'Open file
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFS.OpenTextFile(csvFileName, 1, false, -1)
'Loop through each line, putting each line of the CSV file into an array to be returned to the caller
counter = 0
Dim CSVArray()
Do While NOT objTextFile.AtEndOfStream
ReDim Preserve CSVArray(counter)
CSVArray(counter) = objTextFile.ReadLine
counter = counter + 1
Loop
'Close and return
objTextFile.Close
Set objTextFile = nothing
Set objFS = nothing
ReadCSVFile = CSVArray
End Function
'Process the migration
Sub ProcessMailbox(User)
'Get user properties
userADSIPath = "LDAP://" & domainController & "/" & User.DistinguishedName
Set MyUser = GetObject(userADSIPath)
'Add x.500 address to list of existing proxies
existingLegDnFound = FALSE
newLegDnFound = FALSE
'Loop through each address in User.ProxyAddresses
For i = 1 To User.ProxyAddresses.Count
If StrComp(address, "x500:" & User.LegacyDN, vbTextCompare) = 0 Then
WScript.Echo "x500 proxy " & User.LegacyDN & " already exists"
existingLegDNFound = true
End If
If StrComp(address, "x500:" & User.CloudLegacyDN, vbTextCompare) = 0 Then
WScript.Echo "x500 proxy " & User.CloudLegacyDN & " already exists"
newLegDnFound = true
End If
Next
'Add existing leg DN to proxy list
If existingLegDnFound = FALSE Then
WScript.Echo "Adding existing legacy DN " & User.LegacyDN & " to proxy addresses"
User.ProxyAddresses.Add (User.ProxyAddresses.Count+1),("x500:" & User.LegacyDN)
End If
'Add new leg DN to proxy list
If newLegDnFound = FALSE Then
'Add new leg DN to proxy addresses
WScript.Echo "Adding new legacy DN " & User.CloudLegacyDN & " to existing proxy addresses"
User.ProxyAddresses.Add (User.ProxyAddresses.Count+1),("x500:" & User.CloudLegacyDN)
End If
'Dump out new list of addresses
WScript.Echo "Original proxy addresses updated count: " & User.ProxyAddresses.Count
For i = 1 to User.ProxyAddresses.Count
WScript.Echo " proxyAddress " & i & ": " & User.ProxyAddresses(i)
Next
'Delete the Mailbox
WScript.Echo "Opening " & userADSIPath & " as CDOEXM::IMailboxStore object"
Set Mailbox = MyUser
Wscript.Echo "Deleting Mailbox"
On Error Resume Next
Mailbox.DeleteMailbox
'Handle any errors deleting the mailbox
If Err.Number <> 0 Then
WScript.Echo "Error " & Err.number & ". Skipping User." & vbCrLf & "Description: " & Err.Description & vbCrLf
Exit Sub
End If
On Error Goto 0
'Save and continue
WScript.Echo "Saving Changes"
MyUser.SetInfo
WScript.Echo "Refeshing ADSI Cache"
MyUser.GetInfo
Set Mailbox = nothing
'Mail Enable the User
WScript.Echo "Opening " & userADSIPath & " as CDOEXM::IMailRecipient"
Set MailUser = MyUser
WScript.Echo "Mail Enabling user using targetAddress " & User.CloudEmailAddress
MailUser.MailEnable User.CloudEmailAddress
WScript.Echo "Disabling Recipient Update Service for user"
MyUser.PutEx ADS_PROPERTY_APPEND, "msExchPoliciesExcluded", Array("{26491CFC-9E50-4857-861B-0CB8DF22B5D7}")
WScript.Echo "Saving Changes"
MyUser.SetInfo
WScript.Echo "Refreshing ADSI Cache"
MyUser.GetInfo
'Add Legacy DN back on to the user
WScript.Echo "Writing legacyExchangeDN as " & User.LegacyDN
MyUser.Put "legacyExchangeDN", User.LegacyDN
'Add old proxies list back on to the MEU
WScript.Echo "Writing proxyAddresses back to the user"
For j=1 To User.ProxyAddresses.Count
MyUser.PutEx ADS_PROPERTY_APPEND, "proxyAddresses", Array(User.ProxyAddresses(j))
MyUser.SetInfo
MyUser.GetInfo
Next
'Add mail attribute back on to the MEU
WScript.Echo "Writing mail attribute as " & User.Mail
MyUser.Put "mail", User.Mail
'Add msExchMailboxGUID back on to the MEU
WScript.Echo "Converting mailbox GUID to writable format"
Dim mbxGUIDByteArray
Call ConvertHexStringToByteArray(OctetToHexString(User.MailboxGUID), mbxGUIDByteArray)
WScript.Echo "Writing property msExchMailboxGUID to user object with value " & OctetToHexString(User.MailboxGUID)
MyUser.Put "msExchMailboxGUID", mbxGUIDByteArray
WScript.Echo "Saving Changes"
MyUser.SetInfo
WScript.Echo "Migration Complete!" & vbCrLf
End Sub
'Returns the primary SMTP address of a user
Function GetPrimarySMTPAddress(Addresses)
For Each address in Addresses
If Left(address, 4) = "SMTP" Then GetPrimarySMTPAddress = address
Next
End Function
'Converts Hex string to byte array for writing to AD
Sub ConvertHexStringToByteArray(ByVal strHexString, ByRef pByteArray)
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Stream = CreateObject("ADODB.Stream")
Temp = FSO.GetTempName()
Set TS = FSO.CreateTextFile(Temp)
For i = 1 To (Len (strHexString) -1) Step 2
TS.Write Chr("&h" & Mid (strHexString, i, 2))
Next
TS.Close
Stream.Type = 1
Stream.Open
Stream.LoadFromFile Temp
pByteArray = Stream.Read
Stream.Close
FSO.DeleteFile Temp
Set Stream = nothing
Set FSO = Nothing
End Sub
'Converts raw bytes from AD GUID to readable string
Function OctetToHexString (arrbytOctet)
OctetToHexStr = ""
For k = 1 To Lenb (arrbytOctet)
OctetToHexString = OctetToHexString & Right("0" & Hex(Ascb(Midb(arrbytOctet, k, 1))), 2)
Next
End Function
Sub ShowHelp()
WScript.Echo("This script runs in two modes, CSV Mode and Manual Mode." & vbCrLf & "CSV Mode allows you to specify a CSV file from which to pull usernames." & vbCrLf& "Manual mode allows you to run the script against a single user.")
WSCript.Echo("Both modes require you to specify the name of a DC to use in the local domain." & vbCrLf & "To run the script in CSV Mode, use the following syntax:")
WScript.Echo(" cscript Exchange2003MBtoMEU.vbs -c x:\csv\csvfilename.csv dc.domain.com")
WScript.Echo("To run the script in Manual Mode, you must specify the users AD Distinguished Name, Remote SMTP Address, Remote Legacy Exchange DN, and Domain Controller Name.")
WSCript.Echo(" cscript Exchange2003MBtoMEU.vbs " & chr(34) & "CN=UserName,CN=Users,DC=domain,DC=com" & chr(34) & " " & chr(34) & "user@cloudaddress.com" & chr(34) & " " & chr(34) & "/o=Cloud Org/ou=Cloud Site/ou=Recipients/cn=CloudUser" & chr(34) & " dc.domain.com")
WScript.Quit
End Sub
Was tun die Skripts?
ExportO365UserInfo.ps1
ExportO365UserInfo.ps1 ist ein PowerShell-Skript, das Sie in Ihrer cloudbasierten Organisation ausführen, um Informationen zu den Cloudpostfächern zu sammeln, die Sie während der mehrstufigen Exchange-Migration migriert haben. Es verwendet eine CSV-Datei, um den Umfang des Batches von Benutzern festzulegen. Es wird empfohlen, dieselbe CSV-Migrationsdatei zu verwenden, die Sie zum Migrieren eines Batches von Benutzern verwendet haben.
Wenn Sie das ExportO365UserInfo-Skript ausführen, werden die folgenden Aktionen ausgeführt:
- Die folgenden Eigenschaften werden aus den Cloudpostfächern für Benutzer gesammelt, die in der CSV-Eingabedatei aufgeführt sind:
- Primäre SMTP-Adresse.
- Primäre SMTP-Adresse des entsprechenden lokalen Postfachs.
- Andere Proxyadressen für das Cloudpostfach.
- LegacyExchangeDN
- Die erfassten Eigenschaften werden in einer CSV-Datei namens "Cloud.csv" gespeichert.
Exchange2003MBtoMEU.vbs
Exchange2003MBtoMEU.vbs ist ein VB-Skript, das Sie in Ihrer lokalen Exchange 2003-Organisation ausführen, um Postfächer in MEUs zu konvertieren. Es wird die Cloud.csv-Datei verwendet, die vom ExportO365UserInfo.ps1 PowerShell-Skript erstellt wurde.
Wenn Sie das Exchange2003MBtoMEU.vbs Skript ausführen, werden die folgenden Aktionen für jedes Postfach ausgeführt, das in der CSV-Eingabedatei aufgeführt ist:
- Erfasst Informationen aus der CSV-Datei und aus dem lokalen Postfach.
- Erstellt eine Liste von Proxyadressen aus dem lokalen und dem Cloudpostfach, die zum E-Mail-aktivierten Benutzer hinzugefügt werden.
- Löscht das lokale Postfach.
- Erstellt ein MEU mit den folgenden Eigenschaften:
legacyExchangeDN: Wert aus dem lokalen Postfach.
mail: Das primäre SMTP des Cloudpostfachs.
msExchMailboxGuid: Wert aus dem lokalen Postfach.
proxyAddresses: Werte sowohl aus dem lokalen Postfach als auch aus dem Cloudpostfach.
targetAddress: Lesen aus dem lokalen Postfach; Der Wert ist das primäre SMTP des Cloudpostfachs.
Wichtig
Um das Offboarding von Exchange Online zurück zu Exchange 2003 zu aktivieren, müssen Sie den Wert der msExchMailboxGuid-Eigenschaft auf der MEU durch die GUID aus dem cloudbasierten Postfach ersetzen. Um die GUID-Werte für die cloudbasierten Postfächer abzurufen und in einer CSV-Datei zu speichern, führen Sie den folgenden Exchange Online PowerShell-Befehl aus:
Get-Mailbox | Select PrimarySmtpAddress,Guid | Export-csv -Path .\guid.csv
Dieser Befehl extrahiert die primäre SMTP-Adresse und GUID für alle Cloudpostfächer in die Datei "guid.csv". Anschließend wird diese Datei im aktuellen Verzeichnis gespeichert.
Anstatt mithilfe der CSV-Eingabedatei eine Gruppe von Postfächern zu konvertieren, können Sie das Skript "Exchange2003MBtoMEU.vbs" im manuellen Modus ausführen, um die Postfächer nacheinander zu konvertieren. Wenn Sie diese Methode auswählen, müssen Sie die folgenden Eingabeparameter angeben:
- Distinguished Name (DN) des lokalen Postfachs
- Primäre SMTP-Adresse des Cloudpostfachs
- Exchange-Legacy-DN für das Cloudpostfach
- Domänencontrollername in Ihrer Exchange 2003-Organisation
Schritte zum Konvertieren lokaler Postfächer in E-Mail-aktivierte Benutzer
Führen Sie ExportO365UserInfo.ps1 in Ihrer Exchange Online Organisation aus. Verwenden Sie die CSV-Datei als Eingabedatei für den Migrationsbatch. Das Skript erstellt eine CSV-Datei namens "Cloud.csv".
cd <location of the script> .\ExportO365UserInfo.ps1 <CSV input file>
Beispiel:
cd c:\data\scripts .\ExportO365UserInfo.ps1 .\MigrationBatch1.csv
Kopieren Sie "Exchange2003MBtoMEU.vbs" und "Cloud.csv" in dasselbe Verzeichnis in Ihrer lokalen Organisation.
Führen Sie den folgenden Befehl in Ihrer lokalen Organisation aus:
cscript Exchange2003MBtoMEU.vbs -c .\Cloud.csv <FQDN of on-premises domain controller>
Beispiel:
cscript Exchange2003MBtoMEU.vbs -c .\Cloud.csv DC1.contoso.com
Geben Sie den folgenden Befehl ein, um das Skript im manuellen Modus auszuführen. Verwenden Sie Leerzeichen zwischen den einzelnen Werten.
cscript Exchange2003MBtoMEU.vbs "<DN of on-premises mailbox>" "<Primary SMTP of cloud mailbox>" "<ExchangeLegacyDN of cloud mailbox>" <FQDN of on-premises domain controller>
Beispiel:
cscript Exchange2003MBtoMEU.vbs "CN=Ann Beebe,CN=Users,DC=contoso,DC=com" "annb@contoso.onmicrosoft.com" "/o=First Organization/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=d808d014cec5411ea6de1f70cc116e7b-annb" DC1.contoso.com
Überprüfen Sie, ob die neuen E-Mail-aktivierten Benutzer erstellt wurden. Führen Sie in Active Directory-Benutzer und -Computer die folgenden Schritte aus:
Klicken Sie auf Aktionssuche>.
Klicken Sie auf die Registerkarte Exchange.
Wählen Sie Nur Exchange-Empfänger anzeigen und dann Benutzer mit externer E-Mail-Adresse aus.
Klicken Sie auf Jetzt suchen.
Die Postfächer, die in E-Mail-aktivierte Benutzer konvertiert wurden, werden unter Suchergebnisse aufgelistet.
Verwenden Sie Active Directory-Benutzer und -Computer, ASI Edit oder Ldp.exe, um zu überprüfen, ob die folgenden MEU-Eigenschaften mit den richtigen Informationen aufgefüllt sind:
- Legacyexchangedn
- Msexchmailboxguid*
- proxyAddresses
- Targetaddress
* Wie zuvor erläutert, behält das Skript "Exchange2003MBtoMEU.vbs" den msExchMailboxGuid -Wert vom lokalen Postfach. Um das Offboarding von Microsoft 365 oder Office 365 zu Exchange 2003 zu aktivieren, müssen Sie den MsExchMailboxGuid-Eigenschaftswert auf der MEU durch die GUID aus dem cloudbasierten Postfach ersetzen.