疑難排解使用 PowerShell 指令碼時,擁有郵件功能的公用資料夾同步處理失敗
徵狀
試著使用Sync-MailPublicFolders.ps1(Microsoft Exchange Server 2007 和 2010) 或Sync-ModernMailPublicFolders.ps1(Microsoft Exchange Server,將啟用郵件的公用資料夾 (MEPF) 物件從內部部署同步至 Exchange Online Active Directory 時2013、2016 和 2019) ,腳本失敗,並出現下列其中一個錯誤:
錯誤 1:
Active Directory operation failed on PU1PR04A03DC006.APCPR04A003.prod.outlook.com. The object 'CN=Marketing,OU=contoso.onmicrosoft.com,OU=Microsoft Exchange Hosted Organizations,DC=APCPR04A003,DC=prod,DC=outlook,DC=com' already exists.
當文本執行 Set 命令時,一律會發生錯誤。
錯誤 2:
The proxy address "X500:/O=BAT2/OU=EXCHANGE ADMINISTRATIVE GROUP (FYDIBOHF23SPDLT)/CN=RECIPIENTS/CN=E1DBD36E5BEF784A97A5CD66292252D8-00008991FDA8" is already being used by the proxy addresses or LegacyExchangeDN of "HR". Please choose another proxy address.
原因
發生第一個問題是因為 Exchange Online 中有與 MEPF 同名的物件。 衝突的物件會在錯誤本身回報,並可在 powerShell Exchange Online 中使用下列 Cmdlet 來擷取:
Get-Recipient '<Distinguished Name reported in the error>'
例如:
Get-Recipient 'CN=Marketing,contoso.onmicrosoft.com,OU=Microsoft Exchange Hosted Organizations,DC=APCPR04A003,DC=prod,DC=outlook,DC=com'
發生第二個問題是因為 Exchange Online 已經有具有錯誤中所述 Proxy 位址的物件。
解決方案
若要修正第一個問題,請使用下列 Cmdlet 變更內部部署中的 MEPF 名稱:
Get-MailPublicFolder <MEPF name> | Set-MailPublicFolder -Name <new name for MEPF>
例如:
Get-MailPublicFolder \Marketing | Set-MailPublicFolder -Name Marketing_PF
注意事項
變更 MEPF 的名稱不會影響電子郵件地址或與其相關聯之公用資料夾的實際名稱。
若要修正第二個問題,請遵循下列步驟:
使用下列 Cmdlet 找出具有相同 Proxy 位址的物件:
Get-Recipient |?{$_.EmailAddresses -like "<address mentioned in the error>"}
例如:
Get-Recipient |?{$_.EmailAddresses -like "*X500:/O=BAT2/OU=EXCHANGE ADMINISTRATIVE GROUP (FYDIBOHF23SPDXX)/CN=RECIPIENTS/CN=E1DBD36E5BEF784A97A5CD66299952D8-00008991FDA8*"}
如果傳回的物件不是 MEPF,如果您不想保留該物件,請移除該物件。
如果您只看到以相同 Proxy 傳回的 MEPF 物件,則內部部署中有重複的 MEPF。 尋找重複的 MEPF,然後移除它們。 若要尋找重複的 MEPF,請在內部部署中執行下列 Cmdlet:
Get-MailPublicFolder | ?{ $_.EmailAddresses -like "<email of problem MEPF>"}
例如:
Get-MailPublicFolder | ?{ $_.EmailAddresses -like "*hr*"}
如果傳回多個物件,請確定保留單一物件,並移除其他物件。