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 安装程序,进行下一步的安装,直至安装完成。