Getting the target OU in Active Directory

I am trying to get the groups out of Active Directory - I can get them all, thats no problem
What I am trying to do is get a list of groups out of a target directory
For example LDAP://COMPANY.COM/AN-OU/TARGET-OU
The code I am using is this

    Public Shared Function GetAllGroups() As DataSet
       
        Dim dsGroup As New DataSet()
        Dim dirEntry As DirectoryEntry = New DirectoryEntry("LDAP://COMPANY.com", "USERNAME", "PASS")
        'create instance fo the direcory searcher
        Dim dirSearch As New DirectorySearcher()
        'set the search filter
        dirSearch.SearchRoot = dirEntry
        'deSearch.PropertiesToLoad.Add("cn");
        'dirSearch.Filter = ("(OU=AN-OU,OU=TAGET_OU)")
        dirSearch.Filter = "(objectClass=group)" '(&(objectClass=group)(cn=CS_*)) check on this!!!
        'dirSearch.Filter = "(&(OU=AN_OU,OU=TARGET-OU,DC=COMPANY,DC=com)"
        'dirSearch.SearchScope = SearchScope.Subtree

        'find the first instance
        Dim searchResults As SearchResultCollection = dirSearch.FindAll()
        'Create a new table object within the dataset
        Dim dtGroup As DataTable = dsGroup.Tables.Add("Groups")
        dtGroup.Columns.Add("GroupName")
        'if there are results (there should be some!!), then convert the results
        'into a dataset to be returned.
        If searchResults.Count > 0 Then
            'iterate through collection and populate the table with
            'the Group Name
            For Each Result As SearchResult In searchResults
                'set a new empty row
                Dim drGroup As DataRow = dtGroup.NewRow()
                'populate the column
                drGroup("GroupName") = Result.Properties("cn")(0)
                'append the row to the table of the dataset
                dtGroup.Rows.Add(drGroup)
            Next
        End If
        Return dsGroup
    End Function

Open in new window

LVL 6
r3nderAsked:
Who is Participating?
 
yo_beeDirector of Information TechnologyCommented:
Here is a snippet from one of my codes. I do not have it modified for where you want to pass the values.

 Private Sub SearchAD()

        
        Dim objSchemaContainer
       
        
        objSchemaContainer = GetObject("LDAP://OU=target OU,OU=AN OU,DC=company,DC=com")



        Dim objSearch As New DirectorySearcher()
        objSearch.SearchRoot = New DirectoryEntry(objSchemaContainer)
        objSearch.Filter = "(&(objectCategory=group))"
        objSearch.SearchScope = SearchScope.Subtree
        objSearch.PropertiesToLoad.Add("cn")
        Dim colQueryResults As SearchResultCollection
        colQueryResults = objSearch.FindAll()
        Dim objResult As SearchResult
        For Each objResult In colQueryResults
            ComboBox2.Items.Add(objResult.Properties("cn")(0))
        Next

    End Sub

Open in new window

0
 
yo_beeDirector of Information TechnologyCommented:
First and for most your Invoking of the LDAP:// is correct.

LDAP syntax should be LDAP://dc=company,dc=com  and if you are looking for an OU your would do it like this LDAP://OU=Target,DC=Company,DC=COM

If you are just looking for a group you can use DSQUERY.

You can also use DSQUERY Group  or DSGET Group to output the Distinguished names.
0
 
r3nderAuthor Commented:
I have a hierarchy pic of the OU, but are you saying
Dim dirEntry As DirectoryEntry = New DirectoryEntry("LDAP://OU=Target,DC=Company,DC=COM", "USERNAME", "PASS")
or what
Capture.JPG
0
Creating Active Directory Users from a Text File

If your organization has a need to mass-create AD user accounts, watch this video to see how its done without the need for scripting or other unnecessary complexities.

 
yo_beeDirector of Information TechnologyCommented:
Your ldap syntax should LDAP:// OU=Target OU ,OU=AN OU,DC=company,DC=com

You work backwards. The lowest in the hierarchy to the highest. Where .com is your last in the list.

Have you tried dsquery ?
0
 
r3nderAuthor Commented:
not yet I am trying to figure out with my function how I would use that
0
 
yo_beeDirector of Information TechnologyCommented:
Also why not use the querys saved feature in ADUC.
You can accomplish this and see the query that is being built to meet your needs.
0
 
r3nderAuthor Commented:
I will  have a chance to test it tomorrow - I will let you know - thanks for all your help yo_bee
0
 
yo_beeDirector of Information TechnologyCommented:
No problem
0
 
r3nderAuthor Commented:
Cool - that is a neet tool - I will use it first thing in the morning  - thanks for your wealth of knowledge
0
 
MilesLoganCommented:
With this free tool , you can select the Groups option , then select All groups , then select the OU and choose the Attributes that you need in the report .

http://www.cjwdev.co.uk/Software/ADReportingTool/Info.html
0
 
r3nderAuthor Commented:
Excellect person, knowledgable and the solution was perfect
0
 
yo_beeDirector of Information TechnologyCommented:
@r3nder

Did you even try to apply the VB code snippet, DSQUERY or even my suggestion for ADUC?
0
 
r3nderAuthor Commented:
I apologize yo_bee I had intended that the credit go to you, I have notified the moderators and have asked them to give YOU the points
Once again I appologize
R3nder
@MilesLogan
Sorry man my fault yo_bee did all the work
0
 
yo_beeDirector of Information TechnologyCommented:
It's ok, I was just curious if any of the solutions I suggested worked?

If so which one
0
 
r3nderAuthor Commented:
I  changed the LDAP to what you suggested and changed the filter to what you suggested in the previous code snippet - worked like a charm - I will do my utmost to ensure you get the points - also that part about expert and knowledgable was to you
Thanks Yo_Bee
0
 
yo_beeDirector of Information TechnologyCommented:
Thank you, but if not I have enough. Just glad you confirmed what worked.
0
 
MilesLoganCommented:
all good with me , I get so much help from people here not really an issue with me about points ..

 I will try his option also when I have time .
0
 
yo_beeDirector of Information TechnologyCommented:
I am going to look into the link recommend.
0
 
r3nderAuthor Commented:
Thank you yo_bee
0
 
yo_beeDirector of Information TechnologyCommented:
Where did you get the original script from?
0
 
r3nderAuthor Commented:
I found it on the web - There is another question of mine you might want to chime in on (getting the group GUID at the same time)
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.