I'm trying to get all the computer names which are in the active directory "Standard" group. The AD tree looks like this:

I tried to get the computers using "memberOf" attribute (I found the attributes on this page: http://www.kouti.com/tables/userattributes.htm). So I have this code:
using (var context = new PrincipalContext(ContextType.Domain, "bbad.lan"))
{
    using (var searcher = new PrincipalSearcher(new UserPrincipal(context)))
    {
        foreach (var result in searcher.FindAll())
        {
            DirectoryEntry entry = result.GetUnderlyingObject() as DirectoryEntry;
            if (entry.Properties["memberOf"].Value == "Computer")
            {
                MessageBox.Show("aaa: " + entry.Properties["Name"].Value.ToString());
            }
        }
    }
}
After debugging this code because it didn't show any message boxes I found out that the "memberOf" attribute returns some strange strings. I used MessageBox.Show(entry.Properties["memberOf"].Value.ToString()); to get the value of "memberOf" attribute. This is what I get:
1. MsgBox: CN=Gäste,CN=Builtin,DC=bbad,DC=lan
2. MsgBox: System.Object[]
etc.
There are much more MsgBoxes but every box is like this.
After looking in our active directory I couldn't figure out the order the entries gets displayed. And I noticed that nothing like "Computer" (see the image) shows up.
Conclusion: I just want to get the computers in bbad.lan > Computer > Standard but the results of my code confuse me so I'm quite perplexed now.
Suggestion appreciated :)
Try the following using the computer principal class:
        try
        {
            PrincipalContext ctx = new PrincipalContext (ContextType.Domain, "ADDomain", "OU=Standard,OU=Computer,DC=bbad,DC=lan");
            PrincipalSearcher searcher  = new PrincipalSearcher(new ComputerPrincipal(ctx));
            foreach (ComputerPrincipal compPrincipal  in searcher.FindAll())
            {
                //DO your logic
            } 
        }
        catch (Exception ex)
        {
            throw;
        }
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With