Avatar billede coladrenge Nybegynder
02. marts 2008 - 15:18 Der er 3 kommentarer

Find bruger i AD, ændre værdier og gemme igen

Hej

Jeg har brug for et kode eksempel som søger et helt AD igennem fra roden af AD'et. Henter et bruger objekt frem, ændre nogle værdier i det eksempelvis CN og gemmer objektet igen. Mit problem er at jeg godt kan få det til at fungere hvis jeg ved hvilken OU som brugeren ligger i - men ikke kan få det til at virke hvis jeg kender OU.

Jeg vil gerne have et helt kodeeksempel.
Avatar billede coladrenge Nybegynder
02. marts 2008 - 15:19 #1
der skulle have stået :

Jeg har brug for et kode eksempel som søger et helt AD igennem fra roden af AD'et. Henter et bruger objekt frem, ændre nogle værdier i det eksempelvis CN og gemmer objektet igen. Mit problem er at jeg godt kan få det til at fungere hvis jeg ved hvilken OU som brugeren ligger i - men ikke kan få det til at virke hvis jeg IKKE kender OU.

Jeg vil gerne have et helt kodeeksempel.
Avatar billede Spotgun Seniormester
03. marts 2008 - 11:10 #2
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.aspx

using 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/
Avatar billede Spotgun Seniormester
03. marts 2008 - 12:11 #3
Her er en uddybning af Filter syntaksen:
http://msdn2.microsoft.com/en-us/library/aa746475.aspx
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester