Avatar billede ahrensberg Nybegynder
22. oktober 2007 - 09:50 Der er 9 kommentarer og
1 løsning

Søgning i AD

Hej alle

Jeg sidder og skal trække en liste af computere i en bestemt OU i AD via en ASP.NET side skrevet i C#. Jeg har prøvet på alle mulige måder nu, men kan ikke rigtig få det til at fungere.

Så hermed... hvordan gøres dette?
Avatar billede ahrensberg Nybegynder
22. oktober 2007 - 10:15 #1
Jeg kunne f.eks. godt tænke mig at lave følgende VB-udtræk i C#:

    Dim objContainer, objObject
       
    objContainer = GetObject("LDAP://OU=SERVERS,DC=DOMAIN,DC=NET")
    For Each objObject In objContainer
        Response.Write(objObject.Name & "<br />")
    Next
    objContainer = Nothing
Avatar billede drean Nybegynder
22. oktober 2007 - 10:19 #2
Du kan søge med et filter i en DirectorySearcher på:

samaccounttype=805306369

Også kan du søge i den OU du står i, f.eks:



        try
        {
            DirectoryEntry objOUEntry = new DirectoryEntry("LDAP://<MIN STI i LDAP FORMAT>", "brugernavn", "password");

           
            DirectorySearcher Search = new DirectorySearcher(objOUEntry);
            Search.Filter = ("((samaccounttype=805306369))");
            Search.SearchScope = SearchScope.Subtree;
            Search.Sort.PropertyName = "cn";
            SearchResultCollection Result = Search.FindAll();
           
            foreach (SearchResult computer in Result)
            {
               
                DirectoryEntry objComputer = computer.GetDirectoryEntry();
                Response.Write(objComputer.Properties["cn"].Value.ToString() + "<br />");
            }
        }
        catch (Exception ex)
        {
            Response.Write("<pre>");
            Response.Write(ex.ToString());
            Response.Write("</pre>");
        }
Avatar billede drean Nybegynder
22. oktober 2007 - 10:21 #3
Det stykke kode du har postet viser alle entries i OU Servers, den jeg har lavet søger hele OU plus "sub OU's", og lister kun computere. Hvis du fyrer ovenstående af i roden på dit AD, så vil den liste alle computere.
Avatar billede ahrensberg Nybegynder
22. oktober 2007 - 10:43 #4
Helt perfekt!

Hvad står search-filteret for hvad er det searchscopen gør? "Sub OU's" er nemlig med i udtræket selvom denne ikke er sat.

Hvordan kan jeg desuden se hvilket OU hver enkelt computer ligger i?
Avatar billede ahrensberg Nybegynder
22. oktober 2007 - 10:43 #5
... f.eks. noget lignende: objComputer.Properties["ou"]??
Avatar billede drean Nybegynder
22. oktober 2007 - 10:50 #6
Du skal nok sætte search scope til SearchScope.OneLevel, hvis du ikke vil have den køre igennem dine "sub OU's"...

Du kan bruge objComputer.parent til at få fat i det OU computeren ligger i, f.eks udskriver følgende LDAP pathen til det OU computeren ligger i:

Response.Write(objComputer.Parent.Path.ToString());
Avatar billede ahrensberg Nybegynder
22. oktober 2007 - 11:18 #7
Takker, og til sidst, hvad var det så "samaccounttype=805306369" stod for?
Avatar billede drean Nybegynder
22. oktober 2007 - 11:33 #8
Der er grupper, der er et typenummer for hver type i AD'et :)
Avatar billede ahrensberg Nybegynder
22. oktober 2007 - 12:19 #9
Jamen jeg takker mange gange! :o) Du får hermed point... ;o)
Avatar billede drean Nybegynder
22. oktober 2007 - 14:17 #10
Takker for point :)
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