Exchange Onlineで Exchange 2003 メールボックスをメールが有効なユーザーに変換する

段階的な移行が完了したら、オンプレミスのメールボックスをメールが有効なユーザーに変換して、オンプレミスのユーザーがクラウド メールボックスに自動的に接続できるようにします。

メールボックスをメールが有効なユーザーに変換する理由

移行されたオンプレミスメールボックスをメール対応ユーザー (MEU) に変換して、Active Directory を使用してオンプレミス組織のクラウドベースのユーザーを管理できるようにする必要があります。

この記事には、クラウドベースのメールボックスから情報を収集する PowerShell スクリプトと、Exchange 2003 メールボックスを MEU に変換する Visual Basic (VB) スクリプトが含まれています。 このスクリプトを実行すると、クラウドベースのメールボックスのプロキシ アドレスは、Active Directory にある MEU にコピーされます。 MEU のプロパティを使用すると、ディレクトリ同期を MEU と対応するクラウド メールボックスと一致させることができます。

移行バッチの場合は、オンプレミスのメールボックスを MEU に変換することをお勧めします。 段階的な Exchange 移行バッチが完了したら、バッチ内のすべてのメールボックスが正常に移行されたことを確認し、メールボックスアイテムのクラウドへの初期同期が完了したら、移行バッチ内のメールボックスを MEU に変換します。

クラウド メールボックスのデータを収集する PowerShell スクリプト

このセクションのスクリプトを使用して、クラウドベースのメールボックスに関する情報を収集し、Exchange 2003 メールボックスを MEU に変換します。

PowerShell スクリプトは、クラウド メールボックスから情報を収集し、CSV ファイルに保存します。 このスクリプトを最初に実行します。

スクリプトをメモ帳にコピーし、ファイルをExportO365UserInfo.ps1として保存します。

注:

スクリプトを実行する前に、Exchange Online PowerShell モジュールをインストールする必要があります。 手順については、「Exchange Online PowerShell モジュールのインストールと保守」を参照してください。 モジュールでは、先進認証が使用されます。

  • Microsoft 365 または Microsoft 365 GCC 組織の場合は、通常、スクリプト as-is を使用できます。 Office 365 Germany、Microsoft 365 GCC High、または Microsoft 365 DoD 組織の場合、スクリプトの Connect-ExchangeOnline 行を編集する必要があります。 具体的には、 ExchangeEnvironmentName パラメーターと組織に適した値を使用する必要があります。 詳細については、「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

Visual Basic スクリプトは、オンプレミスの Exchange 2003 メールボックスを MEU に変換します。 PowerShell スクリプトを実行してクラウド メールボックスから情報を収集した後、このスクリプトを実行します。

スクリプトをメモ帳にコピーし、ファイルを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

スクリプトは何を行いますか?

ExportO365UserInfo.ps1

ExportO365UserInfo.ps1は、段階的な Exchange 移行中に移行したクラウド メールボックスに関する情報を収集するために、クラウドベースの組織で実行する PowerShell スクリプトです。 このスクリプトでは、CSV ファイルを使用してユーザーのバッチの範囲を指定します。 ユーザーのバッチの移行に使用したのと同じ移行 CSV ファイルを使用することをお勧めします。

ExportO365UserInfo スクリプトを実行すると、次のアクションが実行されます。

  • 次のプロパティは、入力 CSV ファイルに一覧表示されているユーザーのクラウド メールボックスから収集されます。
    • プライマリ SMTP アドレス。
    • 対応するオンプレミス メールボックスのプライマリ SMTP アドレス。
    • クラウド メールボックスのその他のプロキシ アドレス。
    • LegacyExchangeDN
  • 収集されたプロパティは Cloud.csv という CSV ファイルに保存されます。

Exchange2003MBtoMEU.vbs

Exchange2003MBtoMEU.vbsは、メールボックスを MEU に変換するためにオンプレミスの Exchange 2003 組織で実行する VB スクリプトです。 ExportO365UserInfo.ps1 PowerShell スクリプトによって生成されたCloud.csv ファイルが使用されます。

Exchange2003MBtoMEU.vbs スクリプトを実行すると、入力 CSV ファイルに一覧表示されているメールボックスごとに次のアクションが実行されます。

  • 入力 CSV ファイルと、オンプレミス メールボックスの情報を収集します。
  • オンプレミスとクラウド メールボックスのプロキシ アドレス一覧を作成し、MEU に追加します。
  • オンプレミス メールボックスを削除します。
  • 次のプロパティを使用して MEU を作成します。
    • legacyExchangeDN: オンプレミスメールボックスからの値。

    • mail: クラウド メールボックスのプライマリ SMTP。

    • msExchMailboxGuid: オンプレミスメールボックスの値。

    • proxyAddresses: オンプレミス メールボックスとクラウド メールボックスの両方からの値。

    • targetAddress: オンプレミスのメールボックスから読み取ります。値はクラウド メールボックスのプライマリ SMTP です。

      重要

      Exchange Onlineから Exchange 2003 へのオフボーディングを有効にするには、MEU の msExchMailboxGuid プロパティ値をクラウドベースのメールボックスの GUID に置き換える必要があります。 クラウドベースのメールボックスの GUID 値を取得し、CSV ファイルに保存するには、次の Exchange Online PowerShell コマンドを実行します。

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

      このコマンドで、すべてのクラウド メールボックスのプライマリ SMTP アドレスと GUID が guid.csv ファイルに抽出され、現在のディレクトリに保存されます。

入力 CSV ファイルを使用してメールボックスのバッチを変換せずに、手動モードで Exchange2003MBtoMEU.vbs スクリプトを実行してメールボックスを 1 つずつ変換することもできます。 この方法を選択する場合は、次の入力パラメーターを指定する必要があります。

  • オンプレミス メールボックスの識別名 (DN)。
  • クラウド メールボックスのプライマリ SMTP アドレス。
  • クラウド メールボックスの Exchange レガシ DN。
  • Exchange 2003 組織のドメイン コントローラー名。

オンプレミス メールボックスを MEU に変換する手順

  1. Exchange Online組織でExportO365UserInfo.ps1を実行します。 入力ファイルとして移行バッチの CSV ファイルを使用します。 このスクリプトを実行すると、Cloud.csv という CSV ファイルが作成されます。

    cd <location of the script>
    
    .\ExportO365UserInfo.ps1 <CSV input file>
    

    以下に例を示します。

    cd c:\data\scripts
    
    .\ExportO365UserInfo.ps1 .\MigrationBatch1.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 ユーザーとコンピューターASI 編集、またはLdp.exeを使用して、次の MEU プロパティに正しい情報が入力されていることを確認します。

    • Legacyexchangedn
    • mail
    • msExchMailboxGuid*
    • proxyAddresses
    • targetAddress

    * 前述のように、Exchange2003MBtoMEU.vbs は、オンプレミス メールボックスの msExchMailboxGuid 値を保持します。 Microsoft 365 からオフボーディングを有効にするか、Exchange 2003 にOffice 365するには、MEU の msExchMailboxGuid プロパティ値をクラウドベースのメールボックスの GUID に置き換える必要があります。