Exchange Server Well-Known Object Entry Install Error

Exchange Server kurulumu sırasında veya CU yüklediğiniz zaman hata alabilirsiniz, almış olduğunuz hatanın detaylı bilgisi aşağıdaki gibidir;
Error:
The following error was generated when “$error.Clear();
initialize-ExchangeUniversalGroups -DomainController $RoleDomainController -ActiveDirectorySplitPermissions $RoleActiveDirectorySplitPermissions
” was run: “Microsoft.Exchange.Management.Tasks.InvalidWKObjectException: The well-known object entry B:32:B3DDC6BE2A3BE84B97EB2DCE9477E389:CN=Help Desk\0ADEL:535b6109-7390-4593-b9d1-272911680022,CN=Deleted Objects,DC=XXX,DC=local on the otherWellKnownObjects attribute in the container object CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=Epstein,DC=local points to an invalid DN or a deleted object. Remove the entry, and then rerun the task.
at Microsoft.Exchange.Configuration.Tasks.Task.ThrowError(Exception exception, ErrorCategory errorCategory, Object target, String helpUrl)
at Microsoft.Exchange.Management.Tasks.InitializeExchangeUniversalGroups.CreateGroup(ADOrganizationalUnit usgContainer, String groupName, Int32 groupId, Guid wkGuid, String groupDescription, GroupTypeFlags groupType, Boolean createAsRoleGroup)
at Microsoft.Exchange.Management.Tasks.InitializeExchangeUniversalGroups.CreateRoleGroup(ADOrganizationalUnit usgContainer, RoleGroupDefinition roleGroup)
at Microsoft.Exchange.Management.Tasks.InitializeExchangeUniversalGroups.CreateAndValidateRoleGroups(ADOrganizationalUnit usgContainer, RoleGroupCollection roleGroups)
at Microsoft.Exchange.Management.Tasks.InitializeExchangeUniversalGroups.InternalProcessRecord()
at Microsoft.Exchange.Configuration.Tasks.Task.<ProcessRecord>b__91_1()
at Microsoft.Exchange.Configuration.Tasks.Task.InvokeRetryableFunc(String funcName, Action func, Boolean terminatePipelineIfFailed)”.
Bu hatayı çözmek için hata çıktısını biraz detaylandırmanız gerekmektedir, çünkü detaylandırdığınız zaman silinmiş bir obje olduğunu göreceksiniz.
ADSI üzerinde “well-known object” değeri silindiği için bu uyarıyı almaktasınız.
CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=XX,DC=local yolunu izlerseniz bu obje değerini görebilirsiniz. ADSI üzerinden bu obje için düzenleme yaptığınız zaman izin vermeyecektir, bunun için aşağıdaki powershell’i çalıştırabilirsiniz.
# Get Microsoft Exchange Container $objDE = New-Object System.DirectoryServices.DirectoryEntry $ExchangeDN = [string]::Concat("LDAP://CN=Microsoft Exchange,CN=Services,CN=Configuration,", $objDE.distinguishedName) $objCN = New-Object System.DirectoryServices.DirectoryEntry($ExchangeDN) $gp = [Reflection.Bindingflags]::GetProperty # get otherWellKnownObjects Collection $objCol = $objCN.otherWellKnownObjects $delCount = 0 # Walk though the Collection backwards (always do that when deleting items) for ($i=$objCol.Count-1; $i -ge 0; $i--) { $objWKO = $objCol[$i] $objType = $objWKO.GetType() # Get the distinguishedName $DNString = $objType.InvokeMember("DNString", $gp, $null, $objWKO, $null) $BV = $objType.InvokeMember("BinaryValue", $gp, $null, $objWKO, $null) $Guid = [GUID][System.BitConverter]::ToString($BV).Replace("-", "") Write-Host "DNString: $DNString" Write-Host "Guid: $Guid" # Check if the item was deleted if ($DNString.Contains("0ADEL")) { Write-Host "This is a Deleted Item" -foregroundcolor Red # Remove the item (WARNING: No Confirmation asked) $objCol.RemoveAt($i) Write-Host "Object Removed" -foregroundcolor Red $DelCount++ } } # Did we delete something? if ($DelCount -gt 0) { Write-Host "Commiting Changes" -foregroundcolor Blue # Commit changes, remove this line if you just want to test # If you don't commit you will not delete anything $objCN.SetInfo() }