Abaixo o código para obter todos os usuários do Active Directory (AD) do windows.
Além de printar na tela ele insere em um arquivo texto.
public void ObterUsuarioAD()
{
DirectoryEntry entry = new DirectoryEntry(“LDAP://SERVIDOR-AD”);
DirectorySearcher dSearch = new DirectorySearcher(entry);
dSearch.PageSize = 10000;
dSearch.SizeLimit = 10000;
dSearch.Filter = “(&(objectClass=user))”;
// get all entries from the active directory.
// Last Name, name, initial, homepostaladdress, title, company etc..
foreach (SearchResult sResultSet in dSearch.FindAll())
{
string dados = null;
// Login Name
Console.WriteLine(GetProperty(sResultSet, “cn”));
dados = dados + GetProperty(sResultSet, “cn”);
// First Name
Console.WriteLine(GetProperty(sResultSet, “givenName”));
dados = dados + GetProperty(sResultSet, “givenName”);
// Middle Initials
Console.Write(GetProperty(sResultSet, “initials”));
dados = dados + GetProperty(sResultSet, “initials”);
// Last Name
Console.Write(GetProperty(sResultSet, “sn”));
dados = dados + GetProperty(sResultSet, “sn”);
// Address
string tempAddress = GetProperty(sResultSet, “homePostalAddress”);
dados = dados + GetProperty(sResultSet, “homePostalAddress”);
if (tempAddress != string.Empty)
{
string[] addressArray = tempAddress.Split(‘;’);
string taddr1, taddr2;
taddr1 = addressArray[0];
Console.Write(taddr1);
taddr2 = addressArray[1];
Console.Write(taddr2);
//dados = dados +
}
// title
Console.Write(GetProperty(sResultSet, “title”));
dados = dados + GetProperty(sResultSet, “title”);
// company
Console.Write(GetProperty(sResultSet, “company”));
dados = dados + GetProperty(sResultSet, “company”);
//state
Console.Write(GetProperty(sResultSet, “st”));
dados = dados + GetProperty(sResultSet, “st”);
//city
Console.Write(GetProperty(sResultSet, “l”));
dados = dados + GetProperty(sResultSet, “l”);
//country
Console.Write(GetProperty(sResultSet, “co”));
dados = dados + GetProperty(sResultSet, “co”);
//postal code
Console.Write(GetProperty(sResultSet, “postalCode”));
dados = dados + GetProperty(sResultSet, “postalCode”);
// telephonenumber
Console.Write(GetProperty(sResultSet, “telephoneNumber”));
dados = dados + GetProperty(sResultSet, “telephoneNumber”);
//extention
Console.Write(GetProperty(sResultSet, “otherTelephone”));
dados = dados + GetProperty(sResultSet, “otherTelephone”);
//fax
Console.Write(GetProperty(sResultSet, “facsimileTelephoneNumber”));
dados = dados + GetProperty(sResultSet, “facsimileTelephoneNumber”);
// email address
Console.Write(GetProperty(sResultSet, “mail”));
dados = dados + GetProperty(sResultSet, “mail”);
// Challenge Question
Console.Write(GetProperty(sResultSet, “extensionAttribute1”));
dados = dados + GetProperty(sResultSet, “extensionAttribute1”);
// Challenge Response
Console.Write(GetProperty(sResultSet, “extensionAttribute2”));
dados = dados + GetProperty(sResultSet, “extensionAttribute2”);
//Member Company
Console.Write(GetProperty(sResultSet, “extensionAttribute3”));
dados = dados + GetProperty(sResultSet, “extensionAttribute3”);
// Company Relation ship Exits
Console.Write(GetProperty(sResultSet, “extensionAttribute4”));
dados = dados + GetProperty(sResultSet, “extensionAttribute4”);
//status
Console.Write(GetProperty(sResultSet, “extensionAttribute5”));
dados = dados + GetProperty(sResultSet, “extensionAttribute5”);
// Assigned Sales Person
Console.Write(GetProperty(sResultSet, “extensionAttribute6”));
dados = dados + GetProperty(sResultSet, “extensionAttribute6”);
// Accept T and C
Console.Write(GetProperty(sResultSet, “extensionAttribute7”));
dados = dados + GetProperty(sResultSet, “extensionAttribute7”);
// jobs
Console.Write(GetProperty(sResultSet, “extensionAttribute8”));
dados = dados + GetProperty(sResultSet, “extensionAttribute8”);
String tEamil = GetProperty(sResultSet, “extensionAttribute9”);
dados = dados + GetProperty(sResultSet, “extensionAttribute9”);
// email over night
if (tEamil != string.Empty)
{
string em1, em2, em3;
string[] emailArray = tEamil.Split(‘;’);
//em1 = emailArray[0];
//em2 = emailArray[1];
//em3 = emailArray[2];
//Console.Write(em1 + em2 + em3);
}
// email daily emerging market
Console.Write(GetProperty(sResultSet, “extensionAttribute10”));
dados = dados + GetProperty(sResultSet, “extensionAttribute10”);
if (!string.IsNullOrEmpty(GetProperty(sResultSet, “extensionAttribute10”)))
{
string matricula = GetProperty(sResultSet, “extensionAttribute10”);
}
// email daily corporate market
Console.Write(GetProperty(sResultSet, “extensionAttribute11”));
dados = dados + GetProperty(sResultSet, “extensionAttribute11”);
// AssetMgt Range
Console.Write(GetProperty(sResultSet, “extensionAttribute12”));
dados = dados + GetProperty(sResultSet, “extensionAttribute12”);
// date of account created
Console.Write(GetProperty(sResultSet, “whenCreated”));
dados = dados + GetProperty(sResultSet, “whenCreated”);
// date of account changed
Console.Write(GetProperty(sResultSet, “whenChanged”));
dados = dados + GetProperty(sResultSet, “whenChanged”);
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);
arquivo.WriteLine(dados);
arquivo.Close();
}
}
public static string GetProperty(SearchResult searchResult, string PropertyName)
{
if (searchResult.Properties.Contains(PropertyName))
{
return searchResult.Properties[PropertyName][0].ToString();
}
else
{
return string.Empty;
}
}