Evaluating Group Membership






Evaluating Group Membership

The IADsGroup::IsMember method takes one argument, the DN of the object to check, just as Add and Remove do. It returns a Boolean; i.e., true or false. That allows you to use it in an If ... Then statement like this:

    Set objGroup = GetObject("LDAP://cn=Managers,ou=Sales," _
      & "dc=mycorp,dc=com")
    If objGroup.IsMember("LDAP://cn=Vicky Launders,ou=Sales," _
      & "dc=mycorp,dc=com") Then
        WScript.Echo "Is a Member!"
    Else
        WScript.Echo "Is NOT a Member!"
    End If

To get a list of members in a group, the IADsGroup::Members method can be used. The IADsGroup::Members function is different from the other IADsGroup methods we have shown so far, since it returns a pointer to an IADsMembers object. Figure shows the two methods IADsMembers support.

The IADsMembers interface

IADsMembers methods

Action

Count

The number of items in the container. If there is a filter set, only the number of items that match the filter are returned.

Filter

A filter, consisting of an array of object class strings, which can restrict the number of objects returned during enumeration of the container.


There are a number of ways of enumerating the members of a group. The For Each ... In ... Next loop is the most common. This is how it works:

    Set objGroup = GetObject("LDAP://cn=Managers,ou=Sales," _
      & "dc=mycorp,dc=com")
    WScript.Echo "Number of members of the group: " & objGroup.Members.Count
    For Each objMember In objGroup.Members
      WScript.Echo objMember.Name
    Next

This script displays the number of members and then prints each member's name. As the For loop executes, objMember ends up holding an IADs object representing each member of the group.

Another useful feature of IADsMembers is the Filter method. It can be used to filter certain object classes during enumeration just like you can with containers. To view only the members of a group that are users, you would modify the previous example to do the following:

    objMembers = objGroup.Members
    objMembers.Filter = Array("User")
    For Each objMember In objMembers
      WScript.Echo objMember.Name
    Next



 Python   SQL   Java   php   Perl 
 game development   web development   internet   *nix   graphics   hardware 
 telecommunications   C++ 
 Flash   Active Directory   Windows