Μετατροπή γραμματοκιβωτίων του Exchange 2003 σε χρήστες με δυνατότητα αλληλογραφίας

Μετά την ολοκλήρωση μιας σταδιακής μετεγκατάστασης, μετατρέψτε τα γραμματοκιβώτια σε χρήστες με δυνατότητα mail, έτσι ώστε τα γραμματοκιβώτια να μπορούν να συνδεθούν αυτόματα στο γραμματοκιβώτιο cloud.

Γιατί να μετατρέψω τα γραμματοκιβώτια σε χρήστες με δυνατότητα mail;

Εάν έχετε ολοκληρώσει μια σταδιακή μετεγκατάσταση του Exchange για τη μετεγκατάσταση του οργανισμού Exchange 2003 εσωτερικής εγκατάστασης στο Office 365 και θέλετε να διαχειρίζεστε τους χρήστες που βασίζονται στο cloud από τον οργανισμό εσωτερικής εγκατάστασης, χρησιμοποιώντας την υπηρεσία καταλόγου Active Directory, θα πρέπει να μετατρέψετε τα γραμματοκιβώτια εσωτερικής εγκατάστασης σε χρήστες με δυνατότητα mail (MEU).

Αυτό το άρθρο περιλαμβάνει μια δέσμη ενεργειών του Windows PowerShell που συλλέγει πληροφορίες από τα γραμματοκιβώτια που βασίζονται στο cloud και μια δέσμη ενεργειών Visual Basic (VB) που μπορείτε να εκτελέσετε για τη μετατροπή γραμματοκιβωτίων του Exchange 2003 σε MEU. Όταν εκτελείτε αυτή τη δέσμη ενεργειών, οι διευθύνσεις διακομιστή μεσολάβησης από το γραμματοκιβώτιο που βασίζεται στο cloud αντιγράφονται στο MEU, που βρίσκεται στην υπηρεσία καταλόγου Active Directory. Επίσης, οι ιδιότητες του MEU ενεργοποιούν το Εργαλείο συγχρονισμού καταλόγου των υπηρεσιών Microsoft Online Services (DirSync) για να αντιστοιχίσει το MEU με το αντίστοιχο γραμματοκιβώτιο cloud.

Συνιστάται να μετατρέπετε τα γραμματοκιβώτια εσωτερικής εγκατάστασης σε MEU για μια δέσμη μετεγκατάστασης. Αφού ολοκληρωθεί μια σταδιακή δέσμη μετεγκατάστασης του Exchange και έχετε επαληθεύσει ότι όλα τα γραμματοκιβώτια στη δέσμη έχουν μετεγκατασταθεί με επιτυχία και ο αρχικός συγχρονισμός των στοιχείων γραμματοκιβωτίου στο cloud έχει ολοκληρωθεί, θα πρέπει να μετατρέψετε τα γραμματοκιβώτια της δέσμης μετεγκατάστασης σε MEU.

Δέσμη ενεργειών του PowerShell για τη συλλογή δεδομένων από τα γραμματοκιβώτια cloud

Μπορείτε να χρησιμοποιήσετε τις παρακάτω δέσμες ενεργειών για να συλλέξετε πληροφορίες σχετικά με τα γραμματοκιβώτια που βασίζονται στο cloud και να μετατρέψετε τα γραμματοκιβώτια του Exchange 2007 σε MEU.

Η ακόλουθη δέσμη ενεργειών συλλέγει πληροφορίες από τα γραμματοκιβώτια cloud και τις αποθηκεύει σε ένα αρχείο CSV. Εκτελέστε αυτή τη δέσμη ενεργειών πρώτα.

Αντιγράψτε την ακόλουθη δέσμη ενεργειών σε ένα αρχείο .txt και, στη συνέχεια, αποθηκεύστε το αρχείο ως ExportO365UserInfo.ps1.

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 Office 365 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 Office 365 Powershell Session." -ForeGroundColor Green
return
}
$session | Remove-PSSession
}
Write-Host "Please enter your Office 365 credentials" -ForeGroundColor Green
$cred = Get-Credential
$s = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell -Credential $cred -Authentication Basic -AllowRedirection
$importresults = Import-PSSession $s
}

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-Premise 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

Η ακόλουθη δέσμη ενεργειών Visual Bsic μετατρέπει γραμματοκιβώτια του Exchange 2003 εσωτερικής εγκατάστασης σε MEU. Εκτελέστε αυτή τη δέσμη ενεργειών αφού έχετε εκτελέσει τη δέσμη ενεργειών για να συλλέξετε πληροφορίες από τα γραμματοκιβώτια cloud.

Αντιγράψτε την ακόλουθη δέσμη ενεργειών σε ένα αρχείο .txt και, στη συνέχεια, αποθηκεύστε το αρχείο ως 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 user names." & 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

Τι κάνουν οι δέσμες ενεργειών;

ExportO365UserInfo.ps1

Αυτή είναι μια δέσμη ενεργειών του Windows PowerShell που εκτελείτε στην εταιρεία σας που βασίζεται στο cloud με σκοπό τη συλλογή πληροφοριών σχετικά με τα γραμματοκιβώτια cloud που μετεγκαταστήσατε στη διάρκεια της σταδιακής μετεγκατάστασης του Exchange. Χρησιμοποιεί ένα αρχείο CSV για να ορίσει την εμβέλεια της δέσμης χρηστών. Συνιστάται να χρησιμοποιήσετε το ίδιο αρχείο CSV μετεγκατάστασης που χρησιμοποιήσατε για τη μετεγκατάσταση μιας δέσμης χρηστών.

Κατά την εκτέλεση της δέσμης ενεργειών ExportO365UserInfo:

  • Οι ακόλουθες ιδιότητες συλλέγονται από τα γραμματοκιβώτια cloud για τους χρήστες που αναφέρονται στο αρχείο εισαγωγής CSV:

    • Κύρια διεύθυνση SMTP

    • Κύρια διεύθυνση SMTP του αντίστοιχου γραμματοκιβωτίου εσωτερικής εγκατάστασης

    • Άλλες διευθύνσεις διακομιστή μεσολάβησης για το γραμματοκιβώτιο στο cloud

    • LegacyExchangeDN

  • Οι ιδιότητες που συλλέγονται αποθηκεύονται σε ένα αρχείο CSV που ονομάζεται Cloud.csv.

Exchange2003MBtoMEU.vbs

Αυτή είναι μια δέσμη ενεργειών VB που εκτελείται στο Exchange 2003 εσωτερικής εγκατάστασης της εταιρείας σας για τη μετατροπή γραμματοκιβωτίων σε MEU. Χρησιμοποιεί το αρχείο Cloud.csv, το οποίο είναι το αποτέλεσμα της δέσμης ενεργειών ExportO365UserInfo.

Όταν εκτελείτε τη δέσμη ενεργειών Exchange2003MBtoMEU.vbs, κάνει τα εξής για κάθε γραμματοκιβώτιο που παρατίθεται στο αρχείο CSV εισόδου:

  • Συλλέγει πληροφορίες από το αρχείο CSV εισόδου και από το γραμματοκιβώτιο εσωτερικής εγκατάστασης.

  • Δημιουργεί μια λίστα με διευθύνσεις διακομιστών μεσολάβησης από το γραμματοκιβώτιο εσωτερικής εγκατάστασης και cloud για να τις προσθέσει στον MEU.

  • Διαγράφει το γραμματοκιβώτιο εσωτερικής εγκατάστασης.

  • Δημιουργεί ένα MEU και συμπληρώνει τις ακόλουθες ιδιότητες:

    • legacyExchangeDN - Τιμή από το γραμματοκιβώτιο εσωτερικής εγκατάστασης.

    • mail - Η κύρια SMTP του γραμματοκιβωτίου cloud.

    • msExchMailboxGuid - Τιμή από το γραμματοκιβώτιο εσωτερικής εγκατάστασης.

    • proxyAddresses - Τιμές από το γραμματοκιβώτιο εσωτερικής εγκατάστασης και το γραμματοκιβώτιο cloud.

    • targetAddress - Ανάγνωση από το γραμματοκιβώτιο εσωτερικής εγκατάστασης. Η τιμή είναι η κύρια SMTP του γραμματοκιβωτίου cloud.

      ΣΗΜΑΝΤΙΚΟ: Για να ενεργοποιήσετε τη μετεγκατάσταση από το Office 365 στο Exchange 2003, πρέπει να αντικαταστήσετε την τιμή του msExchMailboxGuid στο MEU με το Guid από το γραμματοκιβώτιο που βασίζεται στο cloud. Για να λάβετε τα Guid για τα γραμματοκιβώτια στον οργανισμό σας cloud και να τα αποθηκεύσετε σε ένα αρχείο CSV, εκτελέστε την ακόλουθη εντολή του PowerShell:

      Get-Mailbox | Select PrimarySmtpAddress, Guid | Export-csv -Path .\guid.csv

      Αυτή η εντολή εξάγει την κύρια διεύθυνση SMTP και Guid για όλα τα γραμματοκιβώτια cloud στο αρχείο guid.csv και, στη συνέχεια, αποθηκεύει αυτό το αρχείο στον τρέχοντα κατάλογο.

Αντί να χρησιμοποιήσετε το αρχείο CSV εισόδου για τη μετατροπή μιας δέσμης γραμματοκιβωτίων, μπορείτε να εκτελέσετε τη δέσμη ενεργειών Exchange2003MBtoMEU.vbs σε μη αυτόματη λειτουργία για να μετατρέπετε ένα γραμματοκιβώτιο τη φορά. Για να το κάνετε αυτό, θα πρέπει να δώσετε τις παρακάτω παραμέτρους εισόδου:

  • Το αποκλειστικό όνομα (DN) του γραμματοκιβωτίου εσωτερικής εγκατάστασης.

  • Την κύρια διεύθυνση SMTP του γραμματοκιβωτίου του cloud.

  • Το Exchange DN παλαιού τύπου για το γραμματοκιβώτιο στο cloud.

  • Ένα όνομα ελεγκτή τομέα στον οργανισμό σας Exchange 2003.

Βήματα για τη μετατροπή γραμματοκιβωτίων εσωτερικής εγκατάστασης σε MEU

  1. Εκτελέστε το ExportO365UserInfo στον οργανισμό σας cloud. Χρησιμοποιήστε το αρχείο CSV για τη δέσμη μετεγκατάστασης ως αρχείο εισαγωγής. Η δέσμη ενεργειών δημιουργεί ένα αρχείο CSV που ονομάζεται Cloud.csv.

    .\ExportO365UserInfo.ps1 <CSV input file>

    Για παράδειγμα:

    .\ExportO365UserInfo.ps1 .\MigrationBatch1.csv

    Αυτό το παράδειγμα υποθέτει ότι η δέσμη ενεργειών και το αρχείο CSV εισόδου βρίσκονται στον ίδιο κατάλογο.

  2. Αντιγράψτε το Exchange2003MBtoMEU.vbs και το Cloud.csv στον ίδιο κατάλογο, στον οργανισμό εσωτερικής εγκατάστασης.

  3. Στον οργανισμό εσωτερικής εγκατάστασης, εκτελέστε την ακόλουθη εντολή:

    cscript Exchange2003MBtoMEU.vbs –c .\Cloud.csv <FQDN of on-premises domain controller>

    Για παράδειγμα:

    cscript Exchange2003MBtoMEU.vbs –c .\Cloud.csv DC1.contoso.com

    Για να εκτελέσετε τη δέσμη ενεργειών σε μη αυτόματη λειτουργία, πληκτρολογήστε την ακόλουθη εντολή. Χρησιμοποιείτε κενά διαστήματα μεταξύ κάθε τιμής.

    cscript Exchange2003MBtoMEU.vbs “<DN of on-premises mailbox>” “
    <Primary SMTP of cloud mailbox>” “<ExchangeLegacyDN of cloud mailbox>”
    <FQDN of on-premises domain controller>

    Για παράδειγμα:

    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
  4. Βεβαιωθείτε ότι έχουν δημιουργηθεί οι νέοι MEU. Στην ενότητα "Χρήστες και υπολογιστές" της υπηρεσίας καταλόγου Active Directory, κάντε τα εξής:

    1. Κάντε κλικ στις επιλογές Ενέργεια > Εύρεση.

    2. Κάντε κλικ στην καρτέλα Exchange.

    3. Επιλέξτε Εμφάνιση μόνο παραληπτών Exchange και, στη συνέχεια, επιλέξτε Χρήστες με εξωτερική διεύθυνση ηλεκτρονικού ταχυδρομείου.

    4. Κάντε κλικ στην επιλογή Εύρεση τώρα.

    Τα γραμματοκιβώτια που μετατράπηκαν σε MEU παρατίθενται στην περιοχή Αποτελέσματα αναζήτησης.

  5. Χρησιμοποιήστε την επιλογή "Χρήστες και υπολογιστές" της υπηρεσίας καταλόγου Active Directory, την Επεξεργασία ADSI ή το Ldp.exe για να επαληθεύσετε ότι οι ακόλουθες ιδιότητες MEU έχουν συμπληρωθεί με τις σωστές πληροφορίες.

    • legacyExchangeDN

    • mail

    • msExchMailboxGuid*

    • proxyAddresses

    • targetAddress

    * Όπως εξηγήσαμε προηγουμένως, η δέσμη ενεργειών Exchange2003MBtoMEU.vbs διατηρεί την τιμή msExchMailboxGuid από το γραμματοκιβώτιο εσωτερικής εγκατάστασης. Για να ενεργοποιήσετε τη μετεγκατάσταση από το Office 365 στο Exchange 2003, πρέπει να αντικαταστήσετε την τιμή της ιδιότητας msExchMailboxGuid στο MEU με το Guid από το γραμματοκιβώτιο που βασίζεται στο cloud.

Αναπτύξτε τις δεξιότητές σας
Εξερευνήστε το περιεχόμενο της εκπαίδευσης
Αποκτήστε πρώτοι τις νέες δυνατότητες
Γίνετε μέλος του Office Insider

Σας βοήθησαν αυτές οι πληροφορίες;

Σας ευχαριστούμε για τα σχόλιά σας!

Σας ευχαριστούμε για τα σχόλιά σας! Φαίνεται ότι μπορεί να είναι χρήσιμο να συνδεθείτε με έναν από τους συνεργάτες υποστήριξης του Office.

×