public ADGroup RetrieveADGroupWithSecurityIdentifier(SecurityIdentifier SecurityIdentifier, string[] AdditionalProperties = null) { if (SecurityIdentifier == null) throw new ArgumentNullException("SecurityIdentifier"); if (!SecurityIdentifier.IsEqualDomainSid(this.Domain.SecurityIdentifier)) throw new ArgumentException(string.Format("The specified Security Identifier [{0}] does not belong to this domain [{1}]", SecurityIdentifier.ToString(), this.Domain.Name), "SecurityIdentifier"); var sidBinaryString = SecurityIdentifier.ToBinaryString(); string ldapFilter = string.Format(ADGroup.LdapSecurityIdentifierFilterTemplate, sidBinaryString); string[] loadProperites = (AdditionalProperties != null && AdditionalProperties.Length > 0) ? ADGroup.LoadProperties.Concat(AdditionalProperties).ToArray() : ADGroup.LoadProperties; var result = this.SearchEntireDomain(ldapFilter, loadProperites, ActiveDirectory.SingleSearchResult).FirstOrDefault(); if (result == null) return null; else return result.AsADGroup(AdditionalProperties); }