Exchange 2016 CU3 安裝失敗解決方法
1. 問題:
由於前期安裝過Exchange 2010 ,服務器非正常刪除,后期人員無法跟進,在新安裝Exchange 2016時准備工作正常完成,但安裝郵件角色報錯,如下錯誤信息如下圖
錯誤截圖

錯誤日志:
運行"$error.Clear();
if (!$RoleIsDatacenter -and !$RoleIsDatacenterDedicated)
{
$arbUsers = @(get-user -Filter {lastname -eq "MSExchApproval 1f05a927-3be2-4fb9-aa03-b59fe3b56f4c"} -IgnoreDefaultScope -ResultSize 1);
if ($arbUsers.Length -ne 0)
{
$mbxname = $arbUsers[0].name;
$mbxs = @( get-mailbox -arbitration -Filter {name -eq $mbxname} -IgnoreDefaultScope -resultSize 1 );
if ( $mbxs.length -eq 0)
{
$dbs = @(get-MailboxDatabase -Server:$RoleFqdnOrName -DomainController $RoleDomainController);
if ($dbs.Length -ne 0)
{
enable-mailbox -Arbitration -identity $arbUsers[0] -database $dbs[0].Identity;
}
}
}
}
"時生成以下錯誤:"Microsoft.Exchange.Data.Directory.ADOperationException: ad1.lab.nb 上的 Active Directory 操作失敗。此錯誤不可重試。其他信息: 試圖修改一個對象,以便包括對其類非法的屬性。。
Active Directory 響應: 0000207D: UpdErr: DSID-0315121C, problem 6002 (OBJ_CLASS_VIOLATION), data -1925338552
---> System.DirectoryServices.Protocols.DirectoryOperationException: 發生對象類沖突。
在 System.DirectoryServices.Protocols.LdapConnection.ConstructResponse(Int32 messageId, LdapOperation operation, ResultAll resultType, TimeSpan requestTimeOut, Boolean exceptionOnTimeOut)
在 System.DirectoryServices.Protocols.LdapConnection.SendRequest(DirectoryRequest request, TimeSpan requestTimeout)
在 Microsoft.Exchange.Data.Directory.PooledLdapConnection.SendRequest(DirectoryRequest request, LdapOperation ldapOperation, Nullable`1 clientSideSearchTimeout, IADLogContext logContext)
在 Microsoft.Exchange.Data.Directory.ADDataSession.ExecuteModificationRequest(ADObject entry, DirectoryRequest request, ADObjectId originalId, Boolean emptyObjectSessionOnException, Boolean isSync)
--- 內部異常堆棧跟蹤的結尾 ---
在 Microsoft.Exchange.Data.Directory.ADDataSession.AnalyzeDirectoryError(PooledLdapConnection connection, DirectoryRequest request, DirectoryException de, Int32 totalRetries, Int32 retriesOnServer)
在 Microsoft.Exchange.Data.Directory.ADDataSession.ExecuteModificationRequest(ADObject entry, DirectoryRequest request, ADObjectId originalId, Boolean emptyObjectSessionOnException, Boolean isSync)
在 Microsoft.Exchange.Data.Directory.ADDataSession.Save(ADObject instanceToSave, IEnumerable`1 properties, Boolean bypassValidation)
在 Microsoft.Exchange.Data.Directory.Recipient.ADRecipientObjectSession.Save(ADRecipient instanceToSave)
在 Microsoft.Exchange.Configuration.Tasks.SetTaskBase`1.InternalProcessRecord()
在 Microsoft.Exchange.Management.RecipientTasks.EnableMailbox.InternalProcessRecord()
在 Microsoft.Exchange.Configuration.Tasks.Task.<ProcessRecord>b__b()
在 Microsoft.Exchange.Configuration.Tasks.Task.InvokeRetryableFunc(String funcName, Action func, Boolean terminatePipelineIfFailed)"。
2. 問題原因:
非正常刪除AD用戶類,造成Exchange擴展無法正常寫入。
3. 解決方法
1. 卸載Exchange 2016 CU3 服務器,然后重新啟動
.\Setup /Mode:Uninstall /IAcceptExchangeServerLicenseTerms
2. 進入ADSI默認命名上下文,導航到User下刪除如下組織單元
CN=DiscoverySearchMailbox {D919BA05-46A6-415f-80AD-7E09334BB852}
CN=Exchange Online-ApplicationAccount
CN=FederatedEmail.4c1f4d8b-8179-4148-93bf-00a95fa1e042
CN=Migration.8f3e7716-2011-43e4-96b1-aba62d229136
CN=SystemMailbox{1f05a927-c981-4cda-bc8f-22177cefef70}
CN=SystemMailbox{8cc370d3-822a-4ab8-a926-bb94bd0641a9}
CN=SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}
CN=SystemMailbox{e0dc1c29-89c3-4034-b678-e6c29d823ed9}
3. ADSI選擇配置,導航到Services,刪除如下組織單元
CN=Microsoft Exchange
CN=Microsoft Exchange Autodiscover
5. 強制AD復制,查看有錯誤
repadmin /syncall
6. 重新進行Exchange 2016 CU3安裝前的環境准備:
.\Setup.exe /PrepareSchema /IAcceptExchangeServerLicenseTerms
.\Setup.exe /PrepareAD /OrganizationName:"lab" /IAcceptExchangeServerLicenseTerms
.\setup.exe /preparedomain /IAcceptExchangeServerLicenseTerms
8. 登錄您的schema master 架構主機所在的DC,打開PowerShell命令行, 記得右鍵-以管理員權限打開
9. 把Exchange 2016 CU3安裝文件拷貝到schema master 所在的DC上去,PowerShell先導航到 "setup\data" 這個文件夾下
10. 執行命令:
dir schema* | foreach {ldifde -i -f $_.name -c "<SchemaContainerDN>" "cn=schema,cn=configuration,dc=lab,dc=nb" -s ad1}
11. 強制AD復制,查看是否有錯誤
repadmin /syncall
12. 運行Exchange 2016 CU3 安裝程序,進行下一步的安裝,直至安裝完成。
