Exchange 2013 的 prepad 执行失败导致管理组未分配任何角色

Exchange 2013 的 prepad 执行失败导致管理组未分配任何角色

一位前系统管理员删除了几个组,其中包括 Exchange 管理安全组。

为了修复错误,他尝试执行 prepad。Prepad 无法正确执行,并出现以下错误:

[01/24/2021 17:30:48.0403] [2] [错误] 访问控制列表的长度超过了允许的最大值。 [01/24/2021 17:30:48.0403] [2] [警告] 发生了意外错误,正在生成 Watson 转储:访问控制列表的长度超过了允许的最大值。 [01/24/2021 17:30:50.0794] 1 任务执行期间发生了以下 1 个错误: [01/24/2021 17:30:50.0810] 1 0. ErrorRecord:访问控制列表的长度超过了允许的最大值。 [01/24/2021 17:30:50.0810] 1 0. ErrorRecord:System.OverflowException:访问控制列表的长度超过了允许的最大值。在 System.Security.AccessControl.RawAcl.InsertAce(Int32 索引,GenericAce ace)在 System.Security.AccessControl.CommonAcl.AddQualifiedAce(SecurityIdentifier sid,AceQualifier 限定符,Int32 accessMask,AceFlags 标志,ObjectAceFlags objectFlags,Guid objectType,Guid inheritedObjectType)在 System.Security.AccessControl.DiscretionaryAcl.AddAccess(AccessControlType accessType,SecurityIdentifier sid,Int32 accessMask,InheritanceFlags inheritingFlags,PropagationFlags propagationFlags,ObjectAceFlags objectFlags,Guid objectType,Guid inheritedObjectType)在 System.Security.AccessControl.DirectoryObjectSecurity.ModifyAccess(AccessControlModification 修改,ObjectAccessRule 规则,布尔值&已修改)位于 System.Security.AccessControl.DirectoryObjectSecurity.AddAccessRule(ObjectAccessRule 规则)位于 Microsoft.Exchange.Management.Tasks.DirectoryCommon.ApplyAcesOnAcl(TaskVerboseLoggingDelegate verboseLogger、TaskWarningLoggingDelegate warningLogger、ErrorLoggerDelegate errorLogger、String objectIdentityString、ActiveDirectorySecurity acl、Boolean remove、ActiveDirectoryAccessRule[] aces)位于 Microsoft.Exchange.Management.Tasks.DirectoryCommon.ApplyAcesOnSd(TaskVerboseLoggingDelegate verboseLogger、TaskWarningLoggingDelegate warningLogger、ErrorLoggerDelegate errorLogger、ADObjectId id、RawSecurityDescriptor rsd、Boolean remove、ActiveDirectoryAccessRule[] aces)位于Microsoft.Exchange.Management.Tasks.DirectoryCommon.SetAces(TaskVerboseLoggingDelegate verboseLogger、TaskWarningLoggingDelegate warningLogger、ErrorLoggerDelegate errorLogger、ADObject obj、Boolean remove、ActiveDirectoryAccessRule[] aces)位于 Microsoft.Exchange.Management.Tasks.InitializeDomainPermissions.InternalProcessRecord() 位于 Microsoft.Exchange.Configuration.Tasks.Task.b__b() 位于 Microsoft.Exchange.Configuration.Tasks.Task.InvokeRetryableFunc(String funcName、Action func、Boolean deterPipelineIfFailed)位于 Microsoft.Exchange.Configuration.Tasks.Task.ProcessTaskStage(TaskStage taskStage、Action initFunc、Action mainFunc、Action completeFunc)位于 Microsoft.Exchange.Configuration.Tasks.Task.ProcessRecord() 位于System.Management.Automation.CommandProcessor.ProcessRecord() [01/24/2021 17:30:50.0810] 1 [错误] 在“$error.Clear(); $createTenantRoot = ($RoleIsDatacenter -or $RoleIsPartnerHosted); $createMsoSyncRoot = $RoleIsDatacenter; 时生成以下错误

#$RoleDatacenterIsManagementForest 仅在数据中心部署中设置;将其缺失解释为 $false [bool]$isManagementForest = ($RoleDatacenterIsManagementForest -eq $true);

if ($RolePrepareAllDomains) { initialize-DomainPermissions -AllDomains:$true -CreateTenantRoot:$createTenantRoot -CreateMsoSyncRoot:$createMsoSyncRoot -IsManagementForest:$isManagementForest; } elseif ($RoleDomain -ne $null) {initialize-DomainPermissions -Domain $RoleDomain -CreateTenantRoot:$createTenantRoot -CreateMsoSyncRoot:$createMsoSyncRoot -IsManagementForest:$isManagementForest; } else {initialize-DomainPermissions -CreateTenantRoot:$createTenantRoot -CreateMsoSyncRoot:$createMsoSyncRoot -IsManagementForest:$isManagementForest; } “已运行:“System.OverflowException:访问控制列表的长度超出允许的最大值。在 System.Security.AccessControl.RawAcl.InsertAce(Int32 索引,GenericAce ace)在 System.Security.AccessControl.CommonAcl.AddQualifiedAce(SecurityIdentifier sid,AceQualifier 限定符,Int32 accessMask,AceFlags 标志,ObjectAceFlags objectFlags,Guid objectType,Guid inheritedObjectType)在 System.Security.AccessControl.DiscretionaryAcl.AddAccess(AccessControlType accessType,SecurityIdentifier sid,Int32 accessMask,InheritanceFlags inheritingFlags,PropagationFlags propagationFlags,ObjectAceFlags objectFlags,Guid objectType,Guid inheritedObjectType)在 System.Security.AccessControl.DirectoryObjectSecurity.ModifyAccess(AccessControlModification 修改,ObjectAccessRule 规则,布尔值&已修改)位于 System.Security.AccessControl.DirectoryObjectSecurity.AddAccessRule(ObjectAccessRule 规则)位于 Microsoft.Exchange.Management.Tasks.DirectoryCommon.ApplyAcesOnAcl(TaskVerboseLoggingDelegate verboseLogger、TaskWarningLoggingDelegate warningLogger、ErrorLoggerDelegate errorLogger、String objectIdentityString、ActiveDirectorySecurity acl、Boolean remove、ActiveDirectoryAccessRule[] aces)位于 Microsoft.Exchange.Management.Tasks.DirectoryCommon.ApplyAcesOnSd(TaskVerboseLoggingDelegate verboseLogger、TaskWarningLoggingDelegate warningLogger、ErrorLoggerDelegate errorLogger、ADObjectId id、RawSecurityDescriptor rsd、Boolean remove、ActiveDirectoryAccessRule[] aces)位于Microsoft.Exchange.Management.Tasks.DirectoryCommon.SetAces(TaskVerboseLoggingDelegate verboseLogger、TaskWarningLoggingDelegate warningLogger、ErrorLoggerDelegate errorLogger、ADObject obj、Boolean remove、ActiveDirectoryAccessRule[] aces)位于 Microsoft.Exchange.Management.Tasks.InitializeDomainPermissions.InternalProcessRecord() 位于 Microsoft.Exchange.Configuration.Tasks.Task.b__b() 位于 Microsoft.Exchange.Configuration.Tasks.Task.InvokeRetryableFunc(String funcName、Action func、Boolean deterPipelineIfFailed)位于 Microsoft.Exchange.Configuration.Tasks.Task.ProcessTaskStage(TaskStage taskStage、Action initFunc、Action mainFunc、Action completeFunc)

最终产品是没有分配角色的重复管理组:

Exchange 控制台,权限

是否有人知道是否有办法将角色分配给新的管理组,或者 prepad 是否有详细或调试开关来检查无法添加 acl 权限的对象?

欢迎任何想法。

答案1

预垫? 你的意思准备 AD

如果是这样,根据日志中的错误和快照中的角色组,日志中的错误似乎是由于 setup.exe 用于生成角色组的语法长度造成的(尤其是组织管理)。

并且有重复的角色组,除了(Organization Management准备完AD后创建的角色组(我猜这个角色组是被误删除的)。根据你的快照,这些重复的组没有分配相应的角色,这意味着你可以删除它们。

对于已删除的角色组组织管理,您可以手动创建一个名为组织管理并在 EAC 中为其分配默认(常规)角色: 分配给此角色组的管理角色(请选择/添加定期作业,你也可以分配一些委派任务如果您想使用特定帐户查看/修改服务器设置。)不要忘记在成员

在此处输入图片描述

答案2

更新:我终于能够更新 Exchange。为了完成此操作,我必须做几件事。我用 DB02 的信息替换 HomeMDB 属性。邮箱确实已填写此信息,但这是针对 DB01 的,它不再使用并且无法安装。我没有意识到这一点,因为服务器仅用于创建用户和通讯组并将它们同步到 O365。这个数据库基本上什么都没有。一位同事还告诉我,需要禁用系统和发现邮箱才能完成更新。这解释了错误的一部分,即“用户的 Active Directory 帐户必须为链接、共享或资源邮箱禁用登录”我将其理解为运行更新的用户或正在使用的服务帐户。

相关内容