public static List<string> GetGroupsFromAD()
{
List<string> retVal =new List<string>();
try
{
ContextType contextType = ContextType.Domain;
string strName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
string domainName = strName.Split('\\')[0];
using (PrincipalContext ctx = new PrincipalContext(contextType, domainName))
{
var searchPrinciple = new GroupPrincipal(ctx);
searchPrinciple.IsSecurityGroup = true;
System.DirectoryServices.AccountManagement.PrincipalSearcher search = new PrincipalSearcher();
search.QueryFilter = searchPrinciple;
PrincipalSearchResult<Principal> results = search.FindAll();
StringBuilder sb = new StringBuilder();
foreach (GroupPrincipal groupPrincipal in results)
{
retVal.Add(groupPrincipal.Sid.Value);
}
}
}
catch (Exception ex)
{
Errors.Log(ex);
}
return retVal;
}