Em uma necessidade que tive de obter todos os usuários do AD, fiz algumas pesquisas no GOOGLE e encontrei uma boa referência e um código fácil de entender.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.DirectoryServices;
using System.DirectoryServices.AccountManagement;namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string groupName = “Domain Users”;
string domainName = “CORPORATE”; //Informar o nome do dominioPrincipalContext ctx = new PrincipalContext(ContextType.Domain, domainName);
GroupPrincipal grp = GroupPrincipal.FindByIdentity(ctx, IdentityType.SamAccountName, groupName);
string nome_arquivo = “C:/Temp/arquivo.txt”;if (!System.IO.File.Exists(nome_arquivo))
System.IO.File.Create(nome_arquivo).Close();System.IO.TextWriter arquivo = System.IO.File.AppendText(nome_arquivo);
if (grp != null)
{
//int i = 0;
foreach (Principal p in grp.GetMembers(false))
{
Console.WriteLine(p.SamAccountName + ” – ” + p.DisplayName);
arquivo.WriteLine(p.SamAccountName + ” – ” + p.DisplayName);
//i++;//if (i == 100)
//{
// Console.ReadLine();
//}
}arquivo.Close();
grp.Dispose();
ctx.Dispose();
Console.ReadLine();
}
else
{
Console.WriteLine(“\nWe did not find that group in that domain, perhaps the group resides in a different domain?”);
Console.ReadLine();
}
}
}
}