Her er en metode til at gennemsøge hele eller dele af dit AD. Afhængigt af hvilken path du indtaster, kan du f.eks. indskrænke metoden til kun at søge i bestemte OU's. Hvis du kun angiver de to DC's som i eksemplet, så søger du i hele AD'et. Sørg derfor at bruge Filter funktionen, så finder den kun de elementer der matcher filteret.
Der står mere om Filter funktionen her:
http://msdn2.microsoft.com/en-us/library/system.directoryservices.directorysearcher.filter.aspxusing System.DirectoryServices;
// Brug: GetAll("
LDAP://DC=domain,DC=local", "(CN=Brugernavn*)");
// Filter er valgfrit...
private void GetAll(string path, string filter)
{
DirectoryEntry entry = new DirectoryEntry(path);
DirectorySearcher mySearcher = new DirectorySearcher(entry);
mySearcher.Filter = filter;
try
{
SearchResultCollection results = mySearcher.FindAll();
Console.WriteLine();
foreach (SearchResult sr in results)
{
Console.WriteLine(sr.Path);
ResultPropertyCollection propColl = sr.Properties;
foreach (string prop in propColl.PropertyNames)
{
Console.Write(" " + prop + ": ");
foreach (object value in propColl[prop])
{
Console.Write(value + "; ");
}
Console.WriteLine();
}
}
}
catch (Exception ex)
{
Console.WriteLine("Exception occured: " + ex.Message);
}
}
Mht. ændring af data i AD'et, så har jeg ikke selv haft brug for det endnu, men du kan finde et par eksempler her:
http://www.codeguru.com/Csharp/Csharp/cs_network/directoryservices/article.php/c6021/