private static IEnumerable <ADRawEntry> ReadDkmAdObjects(IRootOrganizationRecipientSession session, string dkmContainerName, string rootDomain, StringBuilder detailStatus) { string dkmContainerDN = TestDataCenterDKMAccess.CreateDkmContainerDN(dkmContainerName, rootDomain); ADRawEntry[] dkmObjects = null; ADOperationResult adoperationResult = ADNotificationAdapter.TryRunADOperation(delegate() { dkmObjects = session.Find(new ADObjectId(dkmContainerDN), QueryScope.SubTree, new CustomLdapFilter("(objectClass=contact)"), null, -1, new ADPropertyDefinition[] { ADObjectSchema.Name }); }); if (!adoperationResult.Succeeded) { detailStatus.AppendFormat("Failed to read DKM objects under DN {0} with exception {1}", dkmContainerDN, (adoperationResult.Exception == null) ? "N/A" : adoperationResult.Exception.Message); return(null); } if (dkmObjects.Length == 0) { detailStatus.AppendFormat("Failed to find any DKM objects under DN {0}. Examine the ACL settings on DKM objects to ensure the Exchange Servers group is allowed.", dkmContainerDN); return(null); } return(dkmObjects); }
private ADSystemMailbox FindSystemMailbox(ADSessionSettings settings) { IRootOrganizationRecipientSession session = DirectorySessionFactory.Default.CreateRootOrgRecipientSession(true, ConsistencyMode.IgnoreInvalid, settings, 796, "FindSystemMailbox", "f:\\15.00.1497\\sources\\dev\\data\\src\\storage\\ResourceHealth\\MdbSystemMailboxPinger.cs"); ADRecipient[] adRecipients = null; ADOperationResult adoperationResult = ADNotificationAdapter.TryRunADOperation(delegate() { adRecipients = session.Find(null, QueryScope.SubTree, new ComparisonFilter(ComparisonOperator.Equal, ADObjectSchema.Name, this.systemMailboxName), null, 1); }); if (!adoperationResult.Succeeded) { throw adoperationResult.Exception; } if (adRecipients.Length != 1 || !(adRecipients[0] is ADSystemMailbox)) { throw new ObjectNotFoundException(ServerStrings.AdUserNotFoundException(string.Format("SystemMailbox {0} was not found", this.systemMailboxName))); } return((ADSystemMailbox)adRecipients[0]); }